diff --git a/Fuentes/com/tarisan/chipcard/gui/AutomaticCloseDialog.java b/Fuentes/com/tarisan/chipcard/gui/AutomaticCloseDialog.java
new file mode 100644
index 0000000..53aa839
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/AutomaticCloseDialog.java
@@ -0,0 +1,69 @@
+package com.tarisan.chipcard.gui;
+
+
+import javax.swing.JDialog;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+
+/**
+ * @author jjrider
+ */
+public class AutomaticCloseDialog extends JDialog implements ActionListener,Runnable {
+
+ private int intNumeroSegundos=5;
+ private Thread objThread=null;
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos){
+ super();
+ setUndecorated(false);
+ setSize(320,150);
+ this.intNumeroSegundos=intNumeroSegundos;
+ setTitle(strTitle);
+ getContentPane().setLayout(null);
+
+ JLabel label=new JLabel(strMensaje);
+ label.setBounds(40,40,300,20);
+ getContentPane().add(label);
+
+ JButton btnAceptar=new JButton("Aceptar");
+ btnAceptar.setActionCommand("Aceptar");
+ btnAceptar.addActionListener(this);
+ btnAceptar.setBounds(115,80,90,20);
+ getContentPane().add(btnAceptar);
+ objThread=new Thread(this);
+ validate();
+ centerOnScreen(this);
+ objThread.start();
+ show();
+
+ }
+
+ public void actionPerformed(ActionEvent e){
+ hide();
+ }
+
+ public static void centerOnScreen(JDialog dialog){
+ if(dialog==null)
+ return;
+ Dimension dimFrame=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension dimDialog=dialog.getSize();
+ int distanceWidth=dimFrame.width-dimDialog.width;
+ distanceWidth=distanceWidth/2;
+ int distanceHeight=dimFrame.height-dimDialog.height;
+ distanceHeight=distanceHeight/2;
+ dialog.setBounds(distanceWidth,distanceHeight,dimDialog.width,dimDialog.height);
+ }
+
+ public void run(){
+ try{
+ objThread.sleep(intNumeroSegundos*1000);
+ }catch(Exception err){
+ }
+ hide();
+ }
+
+
+
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/ComboCellRenderer.java b/Fuentes/com/tarisan/chipcard/gui/ComboCellRenderer.java
new file mode 100644
index 0000000..fe39a05
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/ComboCellRenderer.java
@@ -0,0 +1,68 @@
+package com.tarisan.chipcard.gui;
+
+import java.awt.Component;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+import java.util.*;
+
+/****
+ * Se encarga de personalizar un combo
+ * @author jjrider
+ *
+ */
+public class ComboCellRenderer extends JLabel implements ListCellRenderer {
+ HashMap hshImagenes=new HashMap();
+
+ private int nHeight=40;
+
+ public ComboCellRenderer() {
+ super("");
+ setOpaque(true);
+ setVerticalTextPosition(JLabel.CENTER);
+ setHorizontalTextPosition(JLabel.RIGHT);
+ setHorizontalAlignment(LEFT);
+ setVerticalAlignment(CENTER);
+ //setFont(new java.awt.Font("Tahoma",java.awt.Font.BOLD,14));
+ //setPreferredSize(new java.awt.Dimension(120,nHeight));
+ //setMinimumSize(new java.awt.Dimension(120,35));
+ }
+
+ public void addIcon(Object sValue,Icon icon){
+ //System.out.println("addIcon:'"+sValue+"'->"+icon.getIconHeight());
+ hshImagenes.put(sValue.toString(),icon);
+ if(icon!=null){
+ nHeight=Math.max(icon.getIconHeight(),nHeight);
+ setPreferredSize(new java.awt.Dimension(Math.max(getWidth(),160),nHeight));
+ }
+ }
+
+ public void removeIcon(String sValue){
+ hshImagenes.remove(sValue);
+ }
+
+ public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus)
+ {
+ if(value!=null){
+ setText(value.toString());
+ //setBackground(isSelected ? Color.GREEN : Color.white);
+ //setForeground(isSelected ? Color.white : Color.black);
+ }
+ if(value!=null){
+ //System.out.println("getListCellRendererComponent:'"+value+"'");
+ Icon icon=(Icon)hshImagenes.get(value.toString());
+ if(icon!=null){
+ setIcon(icon);
+ }else{
+ setIcon(null);
+ }
+ }else{
+ setText("");
+ setIcon(null);
+ }
+ return this;
+ }
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/DateChooser.java b/Fuentes/com/tarisan/chipcard/gui/DateChooser.java
new file mode 100644
index 0000000..bd49a7f
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/DateChooser.java
@@ -0,0 +1,491 @@
+package com.tarisan.chipcard.gui;
+
+/**
+ * @author jjrider
+ */
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
+import javax.swing.border.*;
+
+
+/**
+ * Custom dialog box to enter dates. The DateChooser
+ * class presents a calendar and allows the user to visually select a
+ * day, month and year so that it is impossible to enter an invalid
+ * date.
+ **/
+public class DateChooser extends JDialog
+ implements ItemListener, MouseListener, FocusListener, KeyListener, ActionListener
+{
+ /** Names of the months. */
+ private static final String[] MONTHS =
+ new String[] {
+ "Enero",
+ "Febrero",
+ "Marzo",
+ "Abril",
+ "Mayo",
+ "Junio",
+ "Julio",
+ "Agosto",
+ "Septiembre",
+ "Octubre",
+ "Noviembre",
+ "Diciembre"
+ };
+
+ /** Names of the days of the week. */
+ private static final String[] DAYS =
+ new String[] {
+ "Lun",
+ "Mar",
+ "Mie",
+ "Jue",
+ "Vie",
+ "Sab",
+ "Dom"
+ };
+
+ /** Text color of the days of the weeks, used as column headers in
+ the calendar. */
+ private static final Color WEEK_DAYS_FOREGROUND = Color.black;
+
+ /** Text color of the days' numbers in the calendar. */
+ private static final Color DAYS_FOREGROUND = Color.blue;
+
+ /** Background color of the selected day in the calendar. */
+ private static final Color SELECTED_DAY_FOREGROUND = Color.white;
+
+ /** Text color of the selected day in the calendar. */
+ private static final Color SELECTED_DAY_BACKGROUND = Color.blue;
+
+ /** Empty border, used when the calendar does not have the focus. */
+ private static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder(1,1,1,1);
+
+ /** Border used to highlight the selected day when the calendar
+ has the focus. */
+ private static final Border FOCUSED_BORDER = BorderFactory.createLineBorder(Color.yellow,1);
+
+ /** First year that can be selected. */
+ private static final int FIRST_YEAR = 1900;
+
+ /** Last year that can be selected. */
+ private static final int LAST_YEAR = 2100;
+
+ /** Auxiliary variable to compute dates. */
+ private Calendar calendar;
+
+ /** Calendar, as a matrix of labels. The first row represents the
+ first week of the month, the second row, the second week, and
+ so on. Each column represents a day of the week, the first is
+ Sunday, and the last is Saturday. The label's text is the
+ number of the corresponding day. */
+ private JLabel[][] days;
+
+ /** Day selection control. It is just a panel that can receive the
+ focus. The actual user interaction is driven by the
+ DateChooser class. */
+ private FocusablePanel daysGrid;
+
+ /** Month selection control. */
+ private JComboBox month;
+
+ /** Year selection control. */
+ private JComboBox year;
+
+ /** "Ok" button. */
+ private JButton ok;
+
+ /** "Cancel" button. */
+ private JButton cancel;
+
+ /** Day of the week (0=Sunday) corresponding to the first day of
+ the selected month. Used to calculate the position, in the
+ calendar ({@link #days}), corresponding to a given day. */
+ private int offset;
+
+ /** Last day of the selected month. */
+ private int lastDay;
+
+ /** Selected day. */
+ private JLabel day;
+
+ /** true if the "Ok" button was clicked to close the
+ dialog box, false otherwise. */
+ private boolean okClicked;
+
+
+
+ /**
+ * Custom panel that can receive the focus. Used to implement the
+ * calendar control.
+ **/
+ private static class FocusablePanel extends JPanel
+ {
+ /**
+ * Constructs a new FocusablePanel with the given
+ * layout manager.
+ *
+ * @param layout layout manager
+ **/
+ public FocusablePanel( LayoutManager layout ) {
+ super( layout );
+ }
+
+
+ /**
+ * Always returns true, since
+ * FocusablePanel can receive the focus.
+ *
+ * @return true
+ **/
+ public boolean isFocusTraversable() {
+ return true;
+ }
+ }
+
+
+
+ /**
+ * Initializes this DateChooser object. Creates the
+ * controls, registers listeners and initializes the dialog box.
+ **/
+ private void construct()
+ {
+ calendar = Calendar.getInstance();//new Calendar();//GregorianCalendar();
+
+ month = new JComboBox(MONTHS);
+ month.addItemListener( this );
+
+ year = new JComboBox();
+ for ( int i=FIRST_YEAR; i<=LAST_YEAR; i++ )
+ year.addItem( Integer.toString(i) );
+ year.addItemListener( this );
+
+ days = new JLabel[7][7];
+ for ( int i=0; i<7; i++ ) {
+ days[0][i] = new JLabel(DAYS[i],JLabel.RIGHT);
+ days[0][i].setForeground( WEEK_DAYS_FOREGROUND );
+ }
+ for ( int i=1; i<7; i++ )
+ for ( int j=0; j<7; j++ )
+ {
+ days[i][j] = new JLabel(" ",JLabel.RIGHT);
+ days[i][j].setForeground( DAYS_FOREGROUND );
+ days[i][j].setBackground( SELECTED_DAY_BACKGROUND );
+ days[i][j].setBorder( EMPTY_BORDER );
+ days[i][j].addMouseListener( this );
+ }
+
+ ok = new JButton("Aceptar");
+ ok.addActionListener( this );
+ cancel = new JButton("Cancelar");
+ cancel.addActionListener( this );
+
+ JPanel monthYear = new JPanel();
+ monthYear.add( month );
+ monthYear.add( year );
+
+ daysGrid = new FocusablePanel(new GridLayout(7,7,5,0));
+ daysGrid.addFocusListener( this );
+ daysGrid.addKeyListener( this );
+ for ( int i=0; i<7; i++ )
+ for ( int j=0; j<7; j++ )
+ daysGrid.add( days[i][j] );
+ daysGrid.setBackground( Color.white );
+ daysGrid.setBorder( BorderFactory.createLoweredBevelBorder() );
+ JPanel daysPanel = new JPanel();
+ daysPanel.add( daysGrid );
+
+ JPanel buttons = new JPanel();
+ buttons.add( ok );
+ buttons.add( cancel );
+
+ Container dialog = getContentPane();
+ dialog.add( "North", monthYear );
+ dialog.add( "Center", daysPanel );
+ dialog.add( "South", buttons );
+
+ pack();
+ setResizable( false );
+ UtilGUI.centerOnWindow(this,getOwner());
+ }
+
+
+
+ /**
+ * Gets the selected day, as an int. Parses the text
+ * of the selected label in the calendar to get the day.
+ *
+ * @return the selected day or -1 if there is no day selected
+ **/
+ private int getSelectedDay()
+ {
+ if ( day == null )
+ return -1 ;
+ try {
+ return Integer.parseInt(day.getText());
+ } catch ( NumberFormatException e ) {
+ }
+ return -1;
+ }
+
+
+
+ /**
+ * Sets the selected day. The day is specified as the label
+ * control, in the calendar, corresponding to the day to select.
+ *
+ * @param newDay day to select
+ **/
+ private void setSelected( JLabel newDay )
+ {
+ if ( day != null ) {
+ day.setForeground( DAYS_FOREGROUND );
+ day.setOpaque( false );
+ day.setBorder( EMPTY_BORDER );
+ }
+ day = newDay;
+ day.setForeground( SELECTED_DAY_FOREGROUND );
+ day.setOpaque( true );
+ if ( daysGrid.hasFocus() )
+ day.setBorder( FOCUSED_BORDER );
+ }
+
+
+
+ /**
+ * Sets the selected day. The day is specified as the number of
+ * the day, in the month, to selected. The function compute the
+ * corresponding control to select.
+ *
+ * @param newDay day to select
+ **/
+ private void setSelected( int newDay )
+ {
+ setSelected( days[(newDay+offset-1)/7+1][(newDay+offset-1)%7] );
+ }
+
+
+
+ /**
+ * Updates the calendar. This function updates the calendar panel
+ * to reflect the month and year selected. It keeps the same day
+ * of the month that was selected, except if it is beyond the last
+ * day of the month. In this case, the last day of the month is
+ * selected.
+ **/
+ private void update()
+ {
+ int iday = getSelectedDay();
+ for ( int i=0; i<7; i++ ) {
+ days[1][i].setText( " " );
+ days[5][i].setText( " " );
+ days[6][i].setText( " " );
+ }
+ calendar.set( Calendar.DATE, 1 );
+ calendar.set( Calendar.MONTH, month.getSelectedIndex()+Calendar.JANUARY );
+ calendar.set( Calendar.YEAR, year.getSelectedIndex()+FIRST_YEAR );
+
+ offset = calendar.get(Calendar.DAY_OF_WEEK)-Calendar.MONDAY;
+ lastDay = calendar.getActualMaximum(Calendar.DATE);
+ for ( int i=0; i lastDay )
+ iday = lastDay;
+ setSelected( iday );
+ }
+ }
+
+
+
+ /**
+ * Called when the "Ok" button is pressed. Just sets a flag and
+ * hides the dialog box.
+ **/
+ public void actionPerformed( ActionEvent e ) {
+ if ( e.getSource() == ok )
+ okClicked = true;
+ hide();
+ }
+
+ /**
+ * Called when the calendar gains the focus. Just re-sets the
+ * selected day so that it is redrawn with the border that
+ * indicate focus.
+ **/
+ public void focusGained( FocusEvent e ) {
+ setSelected( day );
+ }
+
+ /**
+ * Called when the calendar loses the focus. Just re-sets the
+ * selected day so that it is redrawn without the border that
+ * indicate focus.
+ **/
+ public void focusLost( FocusEvent e ) {
+ setSelected( day );
+ }
+
+ /**
+ * Called when a new month or year is selected. Updates the calendar
+ * to reflect the selection.
+ **/
+ public void itemStateChanged( ItemEvent e ) {
+ update();
+ }
+
+ /**
+ * Called when a key is pressed and the calendar has the
+ * focus. Handles the arrow keys so that the user can select a day
+ * using the keyboard.
+ **/
+ public void keyPressed( KeyEvent e ) {
+ int iday = getSelectedDay();
+ switch ( e.getKeyCode() ) {
+ case KeyEvent.VK_LEFT:
+ if ( iday > 1 )
+ setSelected( iday-1 );
+ break;
+ case KeyEvent.VK_RIGHT:
+ if ( iday < lastDay )
+ setSelected( iday+1 );
+ break;
+ case KeyEvent.VK_UP:
+ if ( iday > 7 )
+ setSelected( iday-7 );
+ break;
+ case KeyEvent.VK_DOWN:
+ if ( iday <= lastDay-7 )
+ setSelected( iday+7 );
+ break;
+ }
+ }
+
+ /**
+ * Called when the mouse is clicked on a day in the
+ * calendar. Selects the clicked day.
+ **/
+ public void mouseClicked( MouseEvent e ) {
+ JLabel day = (JLabel)e.getSource();
+ if ( !day.getText().equals(" ") )
+ setSelected( day );
+ daysGrid.requestFocus();
+ }
+
+ public void keyReleased( KeyEvent e ) {}
+ public void keyTyped( KeyEvent e ) {}
+ public void mouseEntered( MouseEvent e ) {}
+ public void mouseExited( MouseEvent e) {}
+ public void mousePressed( MouseEvent e ) {}
+ public void mouseReleased( MouseEvent e) {}
+
+
+
+ /**
+ * Constructs a new DateChooser with the given title.
+ *
+ * @param owner owner dialog
+ *
+ * @param title dialog title
+ **/
+ public DateChooser( Dialog owner, String title )
+ {
+ super( owner, title, true );
+ construct();
+ }
+
+
+
+ /**
+ * Constructs a new DateChooser.
+ *
+ * @param owner owner dialog
+ **/
+ public DateChooser( Dialog owner )
+ {
+ super( owner, true );
+ construct();
+ }
+
+
+
+ /**
+ * Constructs a new DateChooser with the given title.
+ *
+ * @param owner owner frame
+ *
+ * @param title dialog title
+ **/
+ public DateChooser( Frame owner, String title )
+ {
+ super( owner, title, true );
+ construct();
+ }
+
+
+
+ /**
+ * Constructs a new DateChooser.
+ *
+ * @param owner owner frame
+ **/
+ public DateChooser( Frame owner )
+ {
+ super( owner, true );
+ construct();
+ }
+
+
+
+ /**
+ * Selects a date. Displays the dialog box, with a given date as
+ * the selected date, and allows the user select a new date.
+ *
+ * @param date initial date
+ *
+ * @return the new date selected or null if the user
+ * press "Cancel" or closes the dialog box
+ **/
+ public Date select( Date date )
+ {
+ calendar.setTime( date );
+ int _day = calendar.get(Calendar.DATE);
+ int _month = calendar.get(Calendar.MONTH);
+ int _year = calendar.get(Calendar.YEAR);
+
+ year.setSelectedIndex( _year-FIRST_YEAR );
+ month.setSelectedIndex( _month-Calendar.JANUARY );
+ setSelected( _day );
+ okClicked = false;
+ show();
+ if ( !okClicked )
+ return null;
+ calendar.set( Calendar.DATE, getSelectedDay() );
+ calendar.set( Calendar.MONTH, month.getSelectedIndex()+Calendar.JANUARY );
+ calendar.set( Calendar.YEAR, year.getSelectedIndex()+FIRST_YEAR );
+ return calendar.getTime();
+ }
+
+
+
+ /**
+ * Selects new date. Just calls {@link #select(Date)} with the
+ * system date as the parameter.
+ *
+ * @return the same as the function {@link #select(Date)}
+ **/
+ public Date select()
+ {
+ return select(new Date());
+ }
+}
+
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/Detalles.java b/Fuentes/com/tarisan/chipcard/gui/Detalles.java
new file mode 100644
index 0000000..559dbab
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/Detalles.java
@@ -0,0 +1,320 @@
+/*
+ * Created on 28-sep-2004
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package com.tarisan.chipcard.gui;
+
+import java.awt.*;
+
+import javax.swing.*;
+/**
+ * This type was created in VisualAge.
+ */
+public class Detalles extends javax.swing.JInternalFrame implements java.awt.event.ActionListener {
+ private javax.swing.JButton ivjAceptar = null;
+ private javax.swing.JButton ivjDescripcion = null;
+ private javax.swing.JLabel ivjEtiqueta = null;
+ private javax.swing.JPanel ivjJInternalFrameContentPane = null;
+ private javax.swing.JPanel ivjPanel = null;
+ private Editor edit = new Editor();
+ String mensaje = new String();
+ String error = new String();
+ Toolkit t = Toolkit.getDefaultToolkit();
+ Icon icono = (Icon) UIManager.get("OptionPane.errorIcon");
+
+
+/**
+ * Constructor
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public Detalles(String strTitle, String error, String mensaje) {
+ super("Error");
+ this.mensaje = mensaje;
+ this.error = error;
+ initialize();
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ */
+
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ */
+public Detalles(String title, boolean resizable) {
+ super(title, resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ */
+public Detalles(String title, boolean resizable, boolean closable) {
+ super(title, resizable, closable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ */
+public Detalles(String title, boolean resizable, boolean closable, boolean maximizable) {
+ super(title, resizable, closable, maximizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ * @param iconifiable boolean
+ */
+public Detalles(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) {
+ super(title, resizable, closable, maximizable, iconifiable);
+}
+
+
+/**
+ * Comment
+ */
+public void aceptar_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ try
+ {
+ this.setClosed(true);
+ }
+ catch (java.beans.PropertyVetoException w)
+ {
+ //System.out.println("hola");
+ }
+ return;
+}
+
+public void actionPerformed(java.awt.event.ActionEvent e) {
+ // user code begin {1}
+ // user code end
+ if ((e.getSource() == getAceptar()) ) {
+ connEtoC2(e);
+ }
+
+ if ((e.getSource() == getDescripcion()) ) {
+ connEtoC3(e);
+ }
+ // user code begin {2}
+ // user code end
+}
+
+/**
+ * connEtoC2: (Aceptar.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.aceptar_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+
+private void connEtoC2(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.aceptar_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+
+/**
+ * connEtoC3: (Descripcion.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.descripcion_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void connEtoC3(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.descripcion_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+/**
+ * Comment
+ */
+public void descripcion_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ if(this.getSize().height == 110)
+ {
+ ivjDescripcion.setText("\u00AB Descripcin");
+ this.setSize(this.getSize().width,193);
+ edit.append(mensaje, new Color(0xFF0000));
+ }
+ else
+ {
+ ivjDescripcion.setText("Descripcin \u00BB");
+ this.setSize(this.getSize().width,110);
+ edit.remove();
+ }
+ return;
+}
+/**
+ * Return the Aceptar property value.
+ * @return javax.swing.JButton
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JButton getAceptar() {
+ if (ivjAceptar == null) {
+ try {
+ ivjAceptar = new javax.swing.JButton();
+ ivjAceptar.setName("Aceptar");
+ ivjAceptar.setText("Aceptar");
+ ivjAceptar.setBounds(33, 56, 85, 17);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjAceptar;
+}
+
+private javax.swing.JButton getDescripcion() {
+ if (ivjDescripcion == null) {
+ try {
+ ivjDescripcion = new javax.swing.JButton();
+ ivjDescripcion.setName("Descripcion");
+ ivjDescripcion.setText("Descripcin \u00BB");
+ ivjDescripcion.setBounds(170, 56, 115, 17);
+ ivjDescripcion.setActionCommand("Descripcion");
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjDescripcion;
+}
+/**
+ * Return the Etiqueta property value.
+ * @return javax.swing.JLabel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JLabel getEtiqueta() {
+ if (ivjEtiqueta == null) {
+ try {
+ ivjEtiqueta = new javax.swing.JLabel();
+ ivjEtiqueta.setName("Etiqueta");
+ ivjEtiqueta.setIcon(icono);
+ ivjEtiqueta.setText(error);
+ ivjEtiqueta.setBounds(15, 14, 258, 28);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjEtiqueta;
+}
+/**
+ * Return the JInternalFrameContentPane property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JPanel getJInternalFrameContentPane() {
+ if (ivjJInternalFrameContentPane == null) {
+ try {
+ ivjJInternalFrameContentPane = new javax.swing.JPanel();
+ ivjJInternalFrameContentPane.setName("JInternalFrameContentPane");
+ ivjJInternalFrameContentPane.setLayout(null);
+ getJInternalFrameContentPane().add(getAceptar(), getAceptar().getName());
+ getJInternalFrameContentPane().add(getEtiqueta(), getEtiqueta().getName());
+ getJInternalFrameContentPane().add(getPanel(), getPanel().getName());
+ getJInternalFrameContentPane().add(getDescripcion(), getDescripcion().getName());
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjJInternalFrameContentPane;
+}
+/**
+ * Return the Panel property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JPanel getPanel() {
+
+ if (ivjPanel == null) {
+ try {
+ ivjPanel = new javax.swing.JPanel();
+ ivjPanel.setName("Panel");
+ ivjPanel.setLayout(new BorderLayout());
+ ivjPanel.setBounds(12, 91, 282, 50);
+ ivjPanel.add("Center",edit);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjPanel;
+}
+/**
+ * Called whenever the part throws an exception.
+ * @param exception java.lang.Throwable
+ */
+private void handleException(Throwable exception) {
+
+ /* Uncomment the following lines to print uncaught exceptions to stdout */
+ // System.out.println("--------- UNCAUGHT EXCEPTION ---------");
+ // exception.printStackTrace(System.out);
+}
+/**
+ * Initializes connections
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initConnections() {
+ // user code begin {1}
+ // user code end
+ getAceptar().addActionListener(this);
+ getDescripcion().addActionListener(this);
+}
+/**
+ * Initialize the class.
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initialize() {
+ // user code begin {1}
+ // user code end
+ setName("Detalles");
+ setBounds((t.getScreenSize().width-317)/2,(t.getScreenSize().height-110)/2, 317, 110);
+ setContentPane(getJInternalFrameContentPane());
+ initConnections();
+ // user code begin {2}
+ // user code end
+}
+/**
+ * main entrypoint - starts the part when it is run as an application
+ * @param args java.lang.String[]
+ */
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/DetallesDialog.java b/Fuentes/com/tarisan/chipcard/gui/DetallesDialog.java
new file mode 100644
index 0000000..b1afcf1
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/DetallesDialog.java
@@ -0,0 +1,351 @@
+/*
+ * Created on 28-sep-2004
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package com.tarisan.chipcard.gui;
+
+import java.awt.*;
+
+import javax.swing.*;
+
+public class DetallesDialog extends javax.swing.JDialog implements Runnable,java.awt.event.ActionListener {
+ private javax.swing.JButton ivjAceptar = null;
+ private javax.swing.JButton ivjDescripcion = null;
+ private javax.swing.JLabel ivjEtiqueta = null;
+ private javax.swing.JPanel ivjJInternalFrameContentPane = null;
+ private javax.swing.JPanel ivjPanel = null;
+ private Editor edit = new Editor();
+ String mensaje = new String();
+ String error = new String();
+ Toolkit t = Toolkit.getDefaultToolkit();
+ Icon icono = (Icon) UIManager.get("OptionPane.errorIcon");
+
+ private Thread objThread=null;
+ private int intNumeroSegundos=-1;
+/**
+ * Constructor
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public DetallesDialog(JFrame f,String strTitle, String error, String mensaje) {
+ this( f, strTitle, error, mensaje, null);
+}
+public DetallesDialog(JFrame f,String strTitle, String error, String mensaje, Icon icon) {
+
+ super(f,strTitle);
+ this.mensaje = mensaje;
+ this.error = error;
+ if(icon!=null)
+ icono = icon;
+ initialize();
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ */
+
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ */
+public DetallesDialog(JFrame f,String title, boolean resizable) {
+ super(f,title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ */
+public DetallesDialog(JFrame f,String title, boolean resizable, boolean closable) {
+ super(f,title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ */
+public DetallesDialog(JFrame f,String title, boolean resizable, boolean closable, boolean maximizable) {
+ super(f,title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ * @param iconifiable boolean
+ */
+public DetallesDialog(JFrame f,String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) {
+ super(f,title);
+ setResizable(resizable);
+}
+
+// Center a dialog on screen
+public static void centerDialog(Window frame) {
+ Dimension dialogSize = frame.getSize();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ frame.setLocation(screenSize.width/2 - dialogSize.width/2,
+ screenSize.height/2 - dialogSize.height/2);
+}
+/**
+ * Comment
+ */
+public void aceptar_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ try
+ {
+ dispose();
+ }
+ catch (Exception w)
+ {
+ //System.out.println("hola");
+ }
+ return;
+}
+
+public void setAutomaticClose(int intSeconds){
+ intNumeroSegundos=intSeconds;
+ objThread=new Thread(this);
+ objThread.start();
+}
+
+public void actionPerformed(java.awt.event.ActionEvent e) {
+ // user code begin {1}
+ // user code end
+ if ((e.getSource() == getAceptar()) ) {
+ connEtoC2(e);
+ }
+
+ if ((e.getSource() == getDescripcion()) ) {
+ connEtoC3(e);
+ }
+ // user code begin {2}
+ // user code end
+}
+
+/**
+ * connEtoC2: (Aceptar.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.aceptar_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+
+private void connEtoC2(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.aceptar_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+
+/**
+ * connEtoC3: (Descripcion.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.descripcion_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void connEtoC3(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.descripcion_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+/**
+ * Comment
+ */
+public void descripcion_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ if(this.getSize().height < 200)
+ {
+ ivjDescripcion.setText("\u00AB Descripcin");
+ this.setSize(this.getSize().width,200);
+ edit.append(mensaje, new Color(0xFF0000));
+ }
+ else
+ {
+ ivjDescripcion.setText("Descripcin \u00BB");
+ this.setSize(this.getSize().width,110);
+ edit.remove();
+ }
+ validate();
+ repaint();
+ return;
+}
+/**
+ * Return the Aceptar property value.
+ * @return javax.swing.JButton
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public javax.swing.JButton getAceptar() {
+ if (ivjAceptar == null) {
+ try {
+ ivjAceptar = new javax.swing.JButton();
+ ivjAceptar.setName("Aceptar");
+ ivjAceptar.setText("Aceptar");
+ ivjAceptar.setBounds(33, 56, 85, 17);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjAceptar;
+}
+
+private javax.swing.JButton getDescripcion() {
+ if (ivjDescripcion == null) {
+ try {
+ ivjDescripcion = new javax.swing.JButton();
+ ivjDescripcion.setName("Descripcion");
+ ivjDescripcion.setText("Descripcin \u00BB");
+ ivjDescripcion.setBounds(170, 56, 115, 17);
+ ivjDescripcion.setActionCommand("Descripcion");
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjDescripcion;
+}
+/**
+ * Return the Etiqueta property value.
+ * @return javax.swing.JLabel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JLabel getEtiqueta() {
+ if (ivjEtiqueta == null) {
+ try {
+ ivjEtiqueta = new javax.swing.JLabel();
+ ivjEtiqueta.setName("Etiqueta");
+ ivjEtiqueta.setIcon(icono);
+ ivjEtiqueta.setText(error);
+ ivjEtiqueta.setBounds(15, 14, 258, 28);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjEtiqueta;
+}
+/**
+ * Return the JInternalFrameContentPane property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public javax.swing.JPanel getJInternalFrameContentPane() {
+ if (ivjJInternalFrameContentPane == null) {
+ try {
+ ivjJInternalFrameContentPane = new javax.swing.JPanel();
+ ivjJInternalFrameContentPane.setName("JInternalFrameContentPane");
+ ivjJInternalFrameContentPane.setLayout(null);
+ getJInternalFrameContentPane().add(getAceptar(), getAceptar().getName());
+ getJInternalFrameContentPane().add(getEtiqueta(), getEtiqueta().getName());
+ getJInternalFrameContentPane().add(getPanel(), getPanel().getName());
+ getJInternalFrameContentPane().add(getDescripcion(), getDescripcion().getName());
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjJInternalFrameContentPane;
+}
+/**
+ * Return the Panel property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JPanel getPanel() {
+
+ if (ivjPanel == null) {
+ try {
+ ivjPanel = new javax.swing.JPanel();
+ ivjPanel.setName("Panel");
+ ivjPanel.setLayout(new BorderLayout());
+ ivjPanel.setBounds(12, 91, 282, 50);
+ ivjPanel.add("Center",edit);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjPanel;
+}
+/**
+ * Called whenever the part throws an exception.
+ * @param exception java.lang.Throwable
+ */
+private void handleException(Throwable exception) {
+
+ /* Uncomment the following lines to print uncaught exceptions to stdout */
+ // System.out.println("--------- UNCAUGHT EXCEPTION ---------");
+ // exception.printStackTrace(System.out);
+}
+/**
+ * Initializes connections
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initConnections() {
+ // user code begin {1}
+ // user code end
+ getAceptar().addActionListener(this);
+ getDescripcion().addActionListener(this);
+}
+/**
+ * Initialize the class.
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initialize() {
+ // user code begin {1}
+ // user code end
+ setName("Detalles");
+ setBounds((t.getScreenSize().width-317)/2,(t.getScreenSize().height-110)/2, 317, 110);
+ setContentPane(getJInternalFrameContentPane());
+ initConnections();
+ // user code begin {2}
+ // user code end
+}
+
+public void run(){
+ try{
+ objThread.sleep(intNumeroSegundos*1000);
+ }catch(Exception err){
+ }
+ dispose();
+}
+/**
+ * main entrypoint - starts the part when it is run as an application
+ * @param args java.lang.String[]
+ */
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/DetallesFrame.java b/Fuentes/com/tarisan/chipcard/gui/DetallesFrame.java
new file mode 100644
index 0000000..1ba57de
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/DetallesFrame.java
@@ -0,0 +1,324 @@
+package com.tarisan.chipcard.gui;
+
+import java.awt.*;
+
+import javax.swing.*;
+/**
+ * This type was created in VisualAge.
+ */
+public class DetallesFrame extends javax.swing.JFrame implements java.awt.event.ActionListener {
+ private javax.swing.JButton ivjAceptar = null;
+ private javax.swing.JButton ivjDescripcion = null;
+ private javax.swing.JLabel ivjEtiqueta = null;
+ private javax.swing.JPanel ivjJInternalFrameContentPane = null;
+ private javax.swing.JPanel ivjPanel = null;
+ private Editor edit = new Editor();
+ String mensaje = new String();
+ String error = new String();
+ Toolkit t = Toolkit.getDefaultToolkit();
+ Icon icono = (Icon) UIManager.get("OptionPane.errorIcon");
+
+
+/**
+ * Constructor
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public DetallesFrame(String strTitle, String error, String mensaje) {
+ super("Error");
+ this.mensaje = mensaje;
+ this.error = error;
+ initialize();
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ */
+
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ */
+public DetallesFrame(String title, boolean resizable) {
+ super(title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ */
+public DetallesFrame(String title, boolean resizable, boolean closable) {
+ super(title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ */
+public DetallesFrame(String title, boolean resizable, boolean closable, boolean maximizable) {
+ super(title);
+ setResizable(resizable);
+}
+/**
+ * Detalles constructor comment.
+ * @param title java.lang.String
+ * @param resizable boolean
+ * @param closable boolean
+ * @param maximizable boolean
+ * @param iconifiable boolean
+ */
+public DetallesFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) {
+ super(title);
+ setResizable(resizable);
+}
+
+// Center a dialog on screen
+public static void centerDialog(Window frame) {
+ Dimension dialogSize = frame.getSize();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ frame.setLocation(screenSize.width/2 - dialogSize.width/2,
+ screenSize.height/2 - dialogSize.height/2);
+}
+/**
+ * Comment
+ */
+public void aceptar_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ try
+ {
+ dispose();
+ }
+ catch (Exception w)
+ {
+ //System.out.println("hola");
+ }
+ return;
+}
+
+public void actionPerformed(java.awt.event.ActionEvent e) {
+ // user code begin {1}
+ // user code end
+ if ((e.getSource() == getAceptar()) ) {
+ connEtoC2(e);
+ }
+
+ if ((e.getSource() == getDescripcion()) ) {
+ connEtoC3(e);
+ }
+ // user code begin {2}
+ // user code end
+}
+
+/**
+ * connEtoC2: (Aceptar.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.aceptar_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+
+private void connEtoC2(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.aceptar_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+
+/**
+ * connEtoC3: (Descripcion.action.actionPerformed(java.awt.event.ActionEvent) --> Detalles.descripcion_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
+ * @param arg1 java.awt.event.ActionEvent
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void connEtoC3(java.awt.event.ActionEvent arg1) {
+ try {
+ // user code begin {1}
+ // user code end
+ this.descripcion_ActionPerformed(arg1);
+ // user code begin {2}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {3}
+ // user code end
+ handleException(ivjExc);
+ }
+}
+/**
+ * Comment
+ */
+public void descripcion_ActionPerformed(java.awt.event.ActionEvent actionEvent) {
+ if(this.getSize().height == 110)
+ {
+ ivjDescripcion.setText("\u00AB Descripcin");
+ this.setSize(this.getSize().width,193);
+ edit.append(mensaje, new Color(0xFF0000));
+ }
+ else
+ {
+ ivjDescripcion.setText("Descripcin \u00BB");
+ this.setSize(this.getSize().width,110);
+ edit.remove();
+ }
+ return;
+}
+/**
+ * Return the Aceptar property value.
+ * @return javax.swing.JButton
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JButton getAceptar() {
+ if (ivjAceptar == null) {
+ try {
+ ivjAceptar = new javax.swing.JButton();
+ ivjAceptar.setName("Aceptar");
+ ivjAceptar.setText("Aceptar");
+ ivjAceptar.setBounds(33, 56, 85, 17);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjAceptar;
+}
+
+private javax.swing.JButton getDescripcion() {
+ if (ivjDescripcion == null) {
+ try {
+ ivjDescripcion = new javax.swing.JButton();
+ ivjDescripcion.setName("Descripcion");
+ ivjDescripcion.setText("Descripcin \u00BB");
+ ivjDescripcion.setBounds(170, 56, 115, 17);
+ ivjDescripcion.setActionCommand("Descripcion");
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjDescripcion;
+}
+/**
+ * Return the Etiqueta property value.
+ * @return javax.swing.JLabel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JLabel getEtiqueta() {
+ if (ivjEtiqueta == null) {
+ try {
+ ivjEtiqueta = new javax.swing.JLabel();
+ ivjEtiqueta.setName("Etiqueta");
+ ivjEtiqueta.setIcon(icono);
+ ivjEtiqueta.setText(error);
+ ivjEtiqueta.setBounds(15, 14, 258, 28);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjEtiqueta;
+}
+/**
+ * Return the JInternalFrameContentPane property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+public javax.swing.JPanel getJInternalFrameContentPane() {
+ if (ivjJInternalFrameContentPane == null) {
+ try {
+ ivjJInternalFrameContentPane = new javax.swing.JPanel();
+ ivjJInternalFrameContentPane.setName("JInternalFrameContentPane");
+ ivjJInternalFrameContentPane.setLayout(null);
+ getJInternalFrameContentPane().add(getAceptar(), getAceptar().getName());
+ getJInternalFrameContentPane().add(getEtiqueta(), getEtiqueta().getName());
+ getJInternalFrameContentPane().add(getPanel(), getPanel().getName());
+ getJInternalFrameContentPane().add(getDescripcion(), getDescripcion().getName());
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjJInternalFrameContentPane;
+}
+/**
+ * Return the Panel property value.
+ * @return javax.swing.JPanel
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private javax.swing.JPanel getPanel() {
+
+ if (ivjPanel == null) {
+ try {
+ ivjPanel = new javax.swing.JPanel();
+ ivjPanel.setName("Panel");
+ ivjPanel.setLayout(new BorderLayout());
+ ivjPanel.setBounds(12, 91, 282, 50);
+ ivjPanel.add("Center",edit);
+ // user code begin {1}
+ // user code end
+ } catch (java.lang.Throwable ivjExc) {
+ // user code begin {2}
+ // user code end
+ handleException(ivjExc);
+ }
+ };
+ return ivjPanel;
+}
+/**
+ * Called whenever the part throws an exception.
+ * @param exception java.lang.Throwable
+ */
+private void handleException(Throwable exception) {
+
+ /* Uncomment the following lines to print uncaught exceptions to stdout */
+ // System.out.println("--------- UNCAUGHT EXCEPTION ---------");
+ // exception.printStackTrace(System.out);
+}
+/**
+ * Initializes connections
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initConnections() {
+ // user code begin {1}
+ // user code end
+ getAceptar().addActionListener(this);
+ getDescripcion().addActionListener(this);
+}
+/**
+ * Initialize the class.
+ */
+/* WARNING: THIS METHOD WILL BE REGENERATED. */
+private void initialize() {
+ // user code begin {1}
+ // user code end
+ setName("Detalles");
+ setBounds((t.getScreenSize().width-317)/2,(t.getScreenSize().height-110)/2, 317, 110);
+ setContentPane(getJInternalFrameContentPane());
+ initConnections();
+ // user code begin {2}
+ // user code end
+}
+/**
+ * main entrypoint - starts the part when it is run as an application
+ * @param args java.lang.String[]
+ */
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/Editor.java b/Fuentes/com/tarisan/chipcard/gui/Editor.java
new file mode 100644
index 0000000..d94152b
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/Editor.java
@@ -0,0 +1,127 @@
+/*
+ * Created on 28-sep-2004
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package com.tarisan.chipcard.gui;
+
+ import java.awt.*;
+ import javax.swing.*;
+ import javax.swing.text.*;
+
+ public class Editor extends JScrollPane
+ {
+ EditorTexto edit = new EditorTexto();;
+ public Editor()
+ {
+ super();
+ setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_AS_NEEDED);
+ getViewport().add(edit);
+ }
+ public void remove()
+ {
+ edit.remove();
+ }
+
+ public void append(String cadena, Color color)
+ {
+ edit.append(cadena+"\r",color);
+ }
+ public class EditorTexto extends JTextPane
+ {
+ Style Linea,Titulo; // Estilos
+ Style s;
+ StyleContext sc; // Contenedor de estilos
+ DefaultStyledDocument doc; // Plantilla de Documento
+ Color color= new Color(0) ; // color texto chat
+
+ public void remove()
+ {
+ try
+ {
+ doc.remove(0,doc.getLength());
+ }
+ catch(BadLocationException x)
+ {
+ //System.out.println("no s");
+ }
+ }
+ public EditorTexto()
+ {
+ super();
+ sc = new StyleContext();
+ doc= new DefaultStyledDocument(sc);
+ Editable(false);
+ DeficionEstilos();
+ setDocument(doc);
+ }
+ public void Editable(boolean flag) // Estado de Edicion del NewChat
+ {
+ if(!flag)
+ {
+ setEditable(false);
+ setCaretColor(Color.white);
+ setSelectionColor(Color.BLUE);
+ }
+ else
+ {
+ setEditable(true);
+ }
+ }
+ public void append(String cadena, Color color)
+ {
+
+ Style tmp;
+
+ tmp = sc.getStyle("tmp"+ color /*Integer.toString(color)*/);
+
+ if(tmp == null) // el estilo no existe lo aadimos
+ {
+ tmp = sc.getStyle("Linea");
+ sc.addStyle("tmp"+color,tmp);
+ StyleConstants.setForeground(tmp, color);
+ }
+ else
+ {
+ StyleConstants.setForeground(tmp, color);
+ }
+ try
+ {
+ doc.insertString(doc.getLength(), cadena,tmp);
+ }
+ catch (BadLocationException e)
+ {
+ System.err.println("Internal error: " + e);
+ }
+ }
+ public void append(String cadena, String Estilo)
+ {
+ try
+ {
+ doc.insertString(doc.getLength(), cadena,null);
+ doc.setLogicalStyle(doc.getLength()-1, sc.getStyle(Estilo));
+ }
+ catch (BadLocationException e)
+ {
+ System.err.println("Internal error: " + e);
+ }
+
+ }
+ public void DeficionEstilos()
+ {
+
+ // Estilo de Linea
+ Linea = sc.getStyle(StyleContext.DEFAULT_STYLE);
+ Linea = sc.addStyle("Linea", Linea);
+ StyleConstants.setFontFamily(Linea, "Helvetica");
+ StyleConstants.setBold(Linea, true);
+ StyleConstants.setAlignment(Linea, StyleConstants.ALIGN_LEFT);
+ StyleConstants.setSpaceAbove(Linea, 10);
+ StyleConstants.setSpaceBelow(Linea, 10);
+ StyleConstants.setFontSize(Linea, 12);
+ StyleConstants.setForeground(Linea, new Color(255,255,255));
+ }
+ }
+ }
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/chipcard/gui/IconizableObject.java b/Fuentes/com/tarisan/chipcard/gui/IconizableObject.java
new file mode 100644
index 0000000..45ecfa6
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/IconizableObject.java
@@ -0,0 +1,6 @@
+package com.tarisan.chipcard.gui;
+
+public interface IconizableObject {
+
+ public javax.swing.Icon getIcon();
+}
diff --git a/Fuentes/com/tarisan/chipcard/gui/ImageComboBox.java b/Fuentes/com/tarisan/chipcard/gui/ImageComboBox.java
new file mode 100644
index 0000000..97b6620
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/ImageComboBox.java
@@ -0,0 +1,46 @@
+package com.tarisan.chipcard.gui;
+import javax.swing.*;
+
+public class ImageComboBox extends JComboBox{
+ private ComboCellRenderer renderer=new ComboCellRenderer();
+ private String sIconPath="";
+
+ //private int nHeight=40;
+
+ public ImageComboBox(){
+ super();
+ setRenderer(renderer);
+ /*setFont(new java.awt.Font("Tahoma",java.awt.Font.BOLD,14));
+ setPreferredSize(new java.awt.Dimension(120,nHeight));
+ setMinimumSize(new java.awt.Dimension(120,35));
+ */
+ }
+
+ public void setIconPath(String s){
+ sIconPath=s;
+ }
+
+ public void addItem(Object anObject){
+ super.addItem(anObject);
+ Icon icon=null;
+ if(anObject instanceof IconizableObject){
+ icon=((IconizableObject)anObject).getIcon();
+ //nHeight=Math.max(icon.getIconHeight(),nHeight);
+ //setPreferredSize(new java.awt.Dimension(Math.max(getWidth(),120),nHeight));
+ validate();
+ }
+ renderer.addIcon(anObject,icon);
+ }
+
+
+ public void removeItemAt(int nIndex){
+ Object obj=this.getItemAt(nIndex);
+ renderer.removeIcon(obj.toString());
+ if(nIndex>0)
+ renderer.remove(nIndex);
+ }
+
+
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/gui/ProgressDialog.java b/Fuentes/com/tarisan/chipcard/gui/ProgressDialog.java
new file mode 100644
index 0000000..868de66
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/ProgressDialog.java
@@ -0,0 +1,49 @@
+package com.tarisan.chipcard.gui;
+
+import java.awt.Dimension;
+
+import javax.swing.*;
+import javax.swing.JLabel;
+import javax.swing.JProgressBar;
+
+public class ProgressDialog extends JFrame {
+
+ JProgressBar progressBar=null;
+ JLabel jlabel=null;
+
+ public ProgressDialog(String strTitle){
+ super(strTitle);
+ setSize(400,70);
+ addComponents(strTitle);
+ setVisible(true);
+ show();
+ UtilGUI.centerOnScreen(this);
+
+ }
+
+ private void addComponents(String strTitle){
+ getContentPane().setLayout(new java.awt.BorderLayout());
+ jlabel=new JLabel(strTitle);
+ getContentPane().add(jlabel,java.awt.BorderLayout.SOUTH);
+ progressBar=new JProgressBar(0, 100);
+ progressBar.setPreferredSize(new Dimension(400,60));
+ progressBar.setValue(0);
+ progressBar.setStringPainted(true);
+ getContentPane().add(progressBar,java.awt.BorderLayout.CENTER);
+ }
+
+ public void setProgressState(int intValue){
+ String str=null;
+ setProgressState(intValue,str);
+ }
+
+ public void setProgressState(int intValue,String strTexto){
+ setVisible(true);
+ progressBar.setValue(intValue);
+ if(strTexto!=null){
+ jlabel.setText(strTexto);
+ }
+ validate();
+ repaint();
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/chipcard/gui/UtilGUI.java b/Fuentes/com/tarisan/chipcard/gui/UtilGUI.java
new file mode 100644
index 0000000..ca27426
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/UtilGUI.java
@@ -0,0 +1,71 @@
+package com.tarisan.chipcard.gui;
+
+import java.awt.*;
+
+import javax.swing.*;
+
+/**
+ * @author jjrider
+ *
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class UtilGUI {
+
+// Center a dialog on screen
+ public static void centerDialog(Window frame) {
+ Dimension dialogSize = frame.getSize();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ frame.setLocation(screenSize.width/2 - dialogSize.width/2,
+ screenSize.height/2 - dialogSize.height/2);
+ }
+
+ public static void centerOnWindow(Window dialog, Window frame){
+ if(dialog==null)
+ return;
+ if(frame==null)
+ return;
+ Dimension dimDialog=dialog.getSize();
+ Dimension dimFrame=frame.getSize();
+ /*int intFrameX=frame.getX();
+ int intFrameY=frame.getY();*/
+ int distanceWidth=dimFrame.width-dimDialog.width;
+ distanceWidth=distanceWidth/2;
+ int distanceHeight=dimFrame.height-dimDialog.height;
+ distanceHeight=distanceHeight/2;
+ dialog.setBounds(frame.getX()+distanceWidth,frame.getY()+distanceHeight,dimDialog.width,dimDialog.height);
+ }
+
+ public static void centerOnScreen(Window dialog){
+ if(dialog==null)
+ return;
+ Dimension dimFrame=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension dimDialog=dialog.getSize();
+ int distanceWidth=dimFrame.width-dimDialog.width;
+ distanceWidth=distanceWidth/2;
+ int distanceHeight=dimFrame.height-dimDialog.height;
+ distanceHeight=distanceHeight/2;
+ dialog.setBounds(distanceWidth,distanceHeight,dimDialog.width,dimDialog.height);
+ }
+
+ public static Icon getIconForType(int iconType) {
+ try{
+ switch (iconType) {
+ case JOptionPane.ERROR_MESSAGE:
+ return UIManager.getIcon("OptionPane.errorIcon");
+ case JOptionPane.INFORMATION_MESSAGE:
+ return UIManager.getIcon("OptionPane.informationIcon");
+ case JOptionPane.WARNING_MESSAGE:
+ return UIManager.getIcon("OptionPane.warningIcon");
+ case JOptionPane.QUESTION_MESSAGE:
+ return UIManager.getIcon("OptionPane.questionIcon");
+ }
+ }catch(Exception err){}
+ return null;
+ }
+
+ public static String getInputValue(Component parentComponent,Object message){
+ return JOptionPane.showInputDialog(parentComponent,message);
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/gui/VentanaProgreso.java b/Fuentes/com/tarisan/chipcard/gui/VentanaProgreso.java
new file mode 100644
index 0000000..f8c01d2
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/VentanaProgreso.java
@@ -0,0 +1,57 @@
+package com.tarisan.chipcard.gui;
+
+import java.awt.Dimension;
+
+import javax.swing.*;
+import javax.swing.JProgressBar;
+
+/**
+ * @author jjrider
+*/
+public class VentanaProgreso extends JDialog {
+
+ JProgressBar progressBar=null;
+ JLabel jlabel=null;
+
+ public VentanaProgreso(JFrame objFrame,String strTitle){
+ super(objFrame,strTitle, false);
+ setSize(400,70);
+ addComponents(strTitle);
+ setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
+ setVisible(true);
+ }
+
+ private void addComponents(String strTitle){
+ getContentPane().setLayout(new java.awt.BorderLayout());
+ jlabel=new JLabel(strTitle);
+ getContentPane().add(jlabel,java.awt.BorderLayout.SOUTH);
+ progressBar=new JProgressBar(0, 100);
+ progressBar.setPreferredSize(new Dimension(400,60));
+ //progressBar.setBackground(new java.awt.Color(0,0,0));
+ progressBar.setValue(0);
+ progressBar.setStringPainted(true);
+ getContentPane().add(progressBar,java.awt.BorderLayout.CENTER);
+ }
+
+ public void setProgressState(int intValue){
+ String str=null;
+ setProgressState(intValue,str);
+ }
+
+ public void setProgressState(int intValue,String strTexto){
+ progressBar.setValue(intValue);
+ if(strTexto!=null){
+ jlabel.setText(strTexto);
+ }
+ validate();
+ repaint();
+ }
+
+ protected void finalize() throws Throwable{
+ try {
+ hide();
+ }catch(Throwable th){}
+ super.finalize();
+ }
+}
+
diff --git a/Fuentes/com/tarisan/chipcard/gui/hiloDialogo.java b/Fuentes/com/tarisan/chipcard/gui/hiloDialogo.java
new file mode 100644
index 0000000..6a1600b
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/gui/hiloDialogo.java
@@ -0,0 +1,49 @@
+package com.tarisan.chipcard.gui;
+
+import javax.swing.*;
+/**
+ * @author jjrider
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class hiloDialogo extends Thread {//implements Runnable{
+ int intDialogType=0;
+ String strMessage="";
+ String strTitle="";
+ private JFrame jframe=null;
+ String options[]={"Si","No"};
+ java.awt.event.ActionListener actionListener=null;
+
+ public hiloDialogo(JFrame f,String t,String m, int d){
+ this(f, t, m, d,null);
+ }
+ public hiloDialogo(JFrame f,String t,String m, int d,java.awt.event.ActionListener a){
+ super();
+ jframe=f;
+ intDialogType=d;
+ strMessage=m;
+ strTitle=t;
+ actionListener=a;
+ start();
+ }
+
+ public void run(){
+ //jframe.setVisible(true);
+ if(jframe!=null)
+ jframe.setFocusable(true);
+ if(actionListener==null)
+ JOptionPane.showMessageDialog(jframe,strMessage,strTitle,intDialogType);
+ else
+ confirmDialog();
+ }
+
+ public void confirmDialog(){
+ int intRetorno=JOptionPane.showOptionDialog(null, strMessage, strTitle, JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null,options, options[1]);
+ if(actionListener!=null){
+ actionListener.actionPerformed(new java.awt.event.ActionEvent(this,intRetorno,null));
+ }
+
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AboutBox.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AboutBox.java
new file mode 100644
index 0000000..2722bb4
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AboutBox.java
@@ -0,0 +1,55 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import javax.swing.*;
+import javax.swing.border.EmptyBorder;
+
+public class AboutBox extends JFrame {
+ public static final ImageIcon fondo=new ImageIcon(WebServiceTrayIcon.loadImage("acercade02.gif"));
+ // Create new about box given parent frame
+ public AboutBox() {
+ // Make modal dialog given parent and title
+ super("Acerca de");
+ this.setUndecorated(true);
+ // Layout stuff
+ JLabel panel = new JLabel();
+ //panel.setBackground();
+ //panel.setI
+ panel.setIcon(fondo);
+ panel.setSize(new Dimension(fondo.getIconWidth(),fondo.getIconHeight()));
+ panel.setLayout(null);
+ JPanel container=new JPanel();
+ container.setBounds(195,15,185,220);
+ panel.add(container);
+ container.setLayout(new BorderLayout());
+ JPanel txt = new JPanel();
+ txt.setLayout(new GridLayout(0,1));
+ addWindowListener(new CloseWindowListener());
+ container.setBorder(new EmptyBorder(4,4,4,4));
+ setContentPane(panel);
+ panel.validate();
+ pack();
+
+ }
+
+
+ // Close listener for OK button
+ private class CloseListener implements ActionListener {
+
+ public void actionPerformed(ActionEvent evt) {
+ dispose();
+ }
+ }
+
+ // Close listener for windows button
+ private class CloseWindowListener extends WindowAdapter {
+
+ public void windowClosing(WindowEvent evt) {
+ dispose();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesFrame.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesFrame.java
new file mode 100644
index 0000000..f388aec
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesFrame.java
@@ -0,0 +1,245 @@
+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 anulacin");
+ 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 algn 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 anulacin 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 anulacin 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 cdigo "
+ + errorMes.getErrorCode()
+ + ".\nDescripcin:"
+ + 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.\nDescripcin:" + err.getMessage());
+ }
+ } else {
+ //Se debera 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);
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesPanel.java
new file mode 100644
index 0000000..222c8be
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AnulacionesPanel.java
@@ -0,0 +1,126 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.util.Vector;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import com.tarisan.chipcard.gui.ImageComboBox;
+
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.UsuarioTVS;
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.UsuarioTVSBean;
+
+public class AnulacionesPanel extends JPanel {
+
+ private ImageComboBox cmbImageComboUsuarios = new ImageComboBox();
+ private JComboBox cmbURLService = new JComboBox();
+
+ private JTextField jtxtTimestamp = new JTextField();
+
+ public AnulacionesPanel() {
+ 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 de anulacin 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("Usuario:");
+ add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ add(cmbImageComboUsuarios, gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx = 0;
+ label = new javax.swing.JLabel("Timestamp:");
+ add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ //JScrollPane listScrollPane3 = new JScrollPane(txtDatosCliente);
+ //listScrollPane3.setPreferredSize(maxSize);
+ add(jtxtTimestamp, gridBagConstraints);
+
+ }
+
+ 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 getCmbImageComboUsuarios() {
+ return cmbImageComboUsuarios;
+ }
+
+ /**
+ * @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 getJtxtTimestamp() {
+ return jtxtTimestamp;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AutomaticCloseDialog.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AutomaticCloseDialog.java
new file mode 100644
index 0000000..b2e9a68
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/AutomaticCloseDialog.java
@@ -0,0 +1,190 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+
+import javax.swing.JDialog;
+
+import com.tarisan.chipcard.gui.*;
+
+import javax.swing.*;
+import java.util.*;
+import java.awt.*;
+import java.awt.event.*;
+
+/**
+ * @author jjrider
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class AutomaticCloseDialog extends JDialog implements ActionListener,Runnable {
+
+ private int intNumeroSegundos=5;
+ private Thread objThread=null;
+ private Window objWindow=this;
+ private ActionListener externActionListener=null;
+ private int intTypeOfMessage=-1;
+ JPanel pnl=new JPanel();
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos){
+ this(strTitle,strMensaje,intNumeroSegundos,null);
+ }
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame){
+ this(strTitle,strMensaje,intNumeroSegundos,parentFrame,JOptionPane.INFORMATION_MESSAGE);
+ }
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage){
+ this(strTitle,strMensaje,intNumeroSegundos,parentFrame,intTypeOfMessage,true);
+ }
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage,ActionListener listener){
+ this(strTitle,strMensaje,intNumeroSegundos,parentFrame,intTypeOfMessage,true,listener);
+ }
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage, boolean blnModal){
+ this(strTitle, strMensaje, intNumeroSegundos, parentFrame, intTypeOfMessage, blnModal,null);
+ }
+
+ public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage, boolean blnModal,ActionListener listener){
+ super(parentFrame);
+ setUndecorated(false);
+ this.setModal(true);
+ this.intNumeroSegundos=intNumeroSegundos;
+ this.intTypeOfMessage=intTypeOfMessage;
+ setTitle(strTitle);
+
+ setContentPane(pnl);
+ getContentPane().setLayout(new GridBagLayout());
+ int columna=0;
+ int fila=0;
+ externActionListener=listener;
+
+ //getContentPane().setLayout(new BorderLayout());
+ JPanel panel=new JPanel();
+ panel.setLayout(new BorderLayout());
+ //Un tamao por defecto...
+ setSize(300,200);
+
+
+ JLabel label=null;
+ Icon icon=getIconForType(intTypeOfMessage);
+ if(icon!=null){
+ label=new JLabel(icon);
+ label.setBounds(10,40,20,20);
+ getContentPane().add(label, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.NONE,new Insets(10,10,10,10),0,0));
+ columna++;
+ }
+ JPanel panelLabels=new JPanel();
+ panelLabels.setLayout(new GridBagLayout());
+ StringTokenizer st=new StringTokenizer(strMensaje,"\n");
+ int intNumLabels=0;
+ while(st.hasMoreTokens()) {
+ intNumLabels++;
+ label=new JLabel(st.nextToken());
+ panelLabels.add(label, new java.awt.GridBagConstraints(0,intNumLabels,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.NONE,new Insets(00,00,00,00),0,0));
+ }
+
+ //label.setBounds(40,40,300,20);
+ //panel.add(label,BorderLayout.CENTER);
+ getContentPane().add(panelLabels, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.HORIZONTAL,new Insets(10,10,10,10),0,0));
+ columna=0;
+ fila++;
+
+ /*panelTemp=new JPanel();
+ getContentPane().add(panelTemp, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
+ fila++;*/
+ String strOKText="Aceptar";
+ if(intTypeOfMessage==JOptionPane.QUESTION_MESSAGE)
+ strOKText="Si";
+ JButton btnAceptar=new JButton(strOKText);
+ btnAceptar.setActionCommand("Aceptar");
+ btnAceptar.addActionListener(this);
+ btnAceptar.setPreferredSize(new Dimension(90,20));
+ btnAceptar.setMaximumSize(new Dimension(90,20));
+ if(externActionListener==null){
+ getContentPane().add(btnAceptar, new java.awt.GridBagConstraints(columna,fila,2,1,1.0,1.0,java.awt.GridBagConstraints.CENTER,java.awt.GridBagConstraints.NONE,new Insets(10,0,10,0),0,0));
+ }else{
+ JPanel panelButtons=new JPanel();
+ panelButtons.setLayout(new FlowLayout());
+ panelButtons.add(btnAceptar);
+ String strCancelText="Cancelar";
+ if(intTypeOfMessage==JOptionPane.QUESTION_MESSAGE)
+ strCancelText="No";
+ JButton btnCancelar=new JButton(strCancelText);
+ btnCancelar.setActionCommand("Cancelar");
+ btnCancelar.addActionListener(this);
+ btnCancelar.setPreferredSize(new Dimension(90,20));
+ btnCancelar.setMaximumSize(new Dimension(90,20));
+ panelButtons.add(btnCancelar);
+ getContentPane().add(panelButtons, new java.awt.GridBagConstraints(columna,fila,2,1,1.0,1.0,java.awt.GridBagConstraints.CENTER,java.awt.GridBagConstraints.NONE,new Insets(10,0,10,0),0,0));
+ if(this.intNumeroSegundos<30)
+ this.intNumeroSegundos=30;
+ }
+
+
+ validate();
+ pack();
+ centerOn(objWindow,parentFrame);
+ if(this.intNumeroSegundos>0){
+ objThread=new Thread(this);
+ objThread.start();
+ }
+ objWindow.show();
+ objWindow.requestFocus();
+ objWindow.toFront();
+ }
+
+ public void actionPerformed(ActionEvent e){
+ objWindow.hide();
+ try{objThread.stop();}catch(Exception err){}
+ if(externActionListener!=null){
+ externActionListener.actionPerformed(e);
+ }
+
+ }
+
+ public static void centerOn(Window dialog,JFrame frame){
+ if(dialog==null)
+ return;
+ Dimension dimFrame=null;
+ if(frame==null)
+ UtilGUI.centerOnScreen(dialog);
+ else
+ UtilGUI.centerOnWindow(dialog,frame);
+ }
+
+ public void run(){
+ if(intNumeroSegundos>0){
+ try{
+ while(!objWindow.isShowing()){
+ objThread.sleep(100);
+ }
+ for(int i=0;i0){
+ //Se aaden 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 cdigo "+errorMes.getErrorCode()+".\nDescripcin:"+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;i0){
+ for(int i=0;i0){
+ for(int i=0;i0){
+ for(int i=0;i803446000000081111111001
+ //System.out.println("Se va a guardar la peticion: "+getMessagesDir()+sID+"_"+secuencial+"_Response.xml");
+ OutputStream fout=new BufferedOutputStream(new FileOutputStream(new File(getMessagesDir(),sID+"_"+secuencial+"_Response.xml")));
+ saveXMLToFile(fout,sResponse);
+ }catch(Exception err){err.printStackTrace();}
+ }
+
+
+
+ private void saveXMLToFile(OutputStream fout,String sXML){
+ try{
+ byte bRes[]=sXML.getBytes();
+ fout.write(bRes);
+ fout.close();
+ }catch(Exception err){err.printStackTrace();}
+ }
+
+ private java.io.File getMessagesDir(){
+ if(fMessagesDir==null){
+ fMessagesDir=new File("./messages/");
+ }
+ if(!fMessagesDir.exists()){
+ fMessagesDir.mkdirs();
+ }
+ return fMessagesDir;
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasFrame.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasFrame.java
new file mode 100644
index 0000000..560d629
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasFrame.java
@@ -0,0 +1,66 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+import com.tarisan.chipcard.gui.*;
+
+import java.awt.event.*;
+
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class CompaniasSanitariasFrame extends JFrame{
+ private CompaniasSanitariasPanel jpCompaniasPanel=new CompaniasSanitariasPanel();
+ private JButton btnAceptar=null;
+
+ public CompaniasSanitariasFrame(){
+ setTitle("Compaias Sanitarias");
+ 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(jpCompaniasPanel, gridBagConstraints);
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy++;
+ JPanel jpButtons=new JPanel();
+
+ jpButtons.setLayout(new java.awt.FlowLayout());
+ jpButtons.add(getButtonAceptar());
+ //jpButtons.add(getButtonEliminar());
+ pn.add(jpButtons,gridBagConstraints);
+ getContentPane().add(pn, java.awt.BorderLayout.CENTER);
+ jpCompaniasPanel.update();
+ 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(new ActionListener(){
+ public void actionPerformed(ActionEvent evt){
+ setVisible(false);
+ dispose();
+ }
+ });
+ }
+ return btnAceptar;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasPanel.java
new file mode 100644
index 0000000..9af4084
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/CompaniasSanitariasPanel.java
@@ -0,0 +1,131 @@
+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 java.awt.event.*;
+/***
+ * Panel que muestra info de la companias sanitarias dadas de alta en el sistema
+ * @author jjrider
+ */
+public class CompaniasSanitariasPanel extends JPanel{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1406976629577166382L;
+ private JPanel jpPrincipal=new JPanel();
+ private ImageComboBox cmbImageComboCompanias=new ImageComboBox();
+
+ private JLabel jlblCodigoCompania=new javax.swing.JLabel("");
+
+ public CompaniasSanitariasPanel(){
+ super();
+ init();
+ }
+
+ private void init(){
+ setLayout(new BorderLayout());
+ initProductsPane();
+ 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(jpPrincipal, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ add(pn, java.awt.BorderLayout.CENTER);
+
+ cmbImageComboCompanias.addActionListener(new ActionListener(){
+ public void actionPerformed(ActionEvent evt){
+ //System.out.println();
+ CompaniaSanitaria p=(CompaniaSanitaria)cmbImageComboCompanias.getSelectedItem();
+ showCompaniaSanitaria(p);
+ }
+ });
+
+
+ }
+
+
+ private void showCompaniaSanitaria(CompaniaSanitaria p){
+ if(p!=null){
+ getComboCompanias().setSelectedItem(p);
+ String sCode=String.valueOf(p.getCodigoCompania());
+ getJlblCodigoCompania().setText(sCode);
+ }
+ }
+
+
+ private void initProductsPane(){
+ jpPrincipal.setLayout(new java.awt.GridBagLayout());
+ jpPrincipal.setBorder(new javax.swing.border.TitledBorder("Compañías Sanitarias"));
+ 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++;
+
+ JLabel label=new javax.swing.JLabel("Nombre Compañía:");
+ jpPrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPrincipal.add(cmbImageComboCompanias, gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx=0;
+
+ label=new javax.swing.JLabel("Código Compañía:");
+ jpPrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPrincipal.add(jlblCodigoCompania, gridBagConstraints);
+
+ }
+
+
+ public void update(){
+ //if(cmbImageComboCompanias)
+ cmbImageComboCompanias.removeAllItems();
+ CompaniaSanitariaBean b=new CompaniaSanitariaBean();
+ Vector v=b.getCompaniasSanitarias();
+ for(int i=0;i0");
+ lista=new ArrayList();
+ objTableModel=new ArrayListTableModel(lista);
+ table = new JTable(objTableModel);
+ table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ table.setVisible(true);
+ TableColumn column = null;
+ for(int i=0;i0)
+ paciente.setTarjeta(sTarjeta);
+ String sAlta=txtAltaTarjeta.getText().trim();
+ if(sAlta.length()>0)
+ paciente.setFAlta(sAlta);
+ String sBaja=txtCaducidadTarjeta.getText().trim();
+ if(sBaja.length()>0)
+ paciente.setFBaja(sBaja);
+ String sCobertura=txtCoberturaTarjeta.getText().trim();
+ if(sCobertura.length()>0)
+ paciente.setCobertura(sCobertura);
+ String sVersion=txtVersionTarjeta.getText().trim();
+ if(sVersion.length()>0)
+ paciente.setVersion(sVersion);
+ setVisible(false);
+ dispose();
+ }
+ });
+ pn.add(jbtnAceptar);
+ pn.add(lblFondo);
+
+ setSize(209,191);
+ UtilGUI.centerOnWindow(this,objParent );
+ showLecturaBanda();
+
+
+ txtLecturaPistaTarjeta.requestFocus();
+ lblFondo.addMouseListener(new MouseAdapter() {
+ public void mouseClicked(MouseEvent evt) {
+ //System.out.println("Mouse clicked");
+ setTipoLectura(!LecturaManual);
+ }
+ });
+ LecturaPistaThread th=new LecturaPistaThread(this);
+ th.start();
+ show();
+ }
+
+ private void showLecturaBanda(){
+ setTipoLectura(false);
+ }
+
+ private void showLecturaManual(){
+ setTipoLectura(true);
+ }
+
+ private void setTipoLectura(boolean LectManual){
+ LecturaManual=LectManual;
+ txtNumeroTarjeta.setVisible(LecturaManual);
+ txtCaducidadTarjeta.setVisible(LecturaManual);
+ txtAltaTarjeta.setVisible(LecturaManual);
+ txtCoberturaTarjeta.setVisible(LecturaManual);
+ txtVersionTarjeta.setVisible(LecturaManual);
+ lblNumeroTarjeta.setVisible(LecturaManual);
+ lblCaducidadTarjeta.setVisible(LecturaManual);
+ lblAltaTarjeta.setVisible(LecturaManual);
+ lblCoberturaTarjeta.setVisible(LecturaManual);
+ lblVersionTarjeta.setVisible(LecturaManual);
+ jbtnAceptar.setVisible(LecturaManual);
+ txtLecturaPistaTarjeta.setVisible(!LecturaManual);
+ if(!LecturaManual){
+ txtLecturaPistaTarjeta.requestFocus();
+ txtNumeroTarjeta.setText("");
+ txtCaducidadTarjeta.setText("");
+ txtAltaTarjeta.setText("");
+ txtCoberturaTarjeta.setText("");
+ txtVersionTarjeta.setText("");
+ }else{
+ txtLecturaPistaTarjeta.setText("");
+ txtNumeroTarjeta.requestFocus();
+ }
+
+ }
+
+ public boolean esLecturaManual(){
+ return LecturaManual;
+ }
+
+
+ public Paciente getPaciente(){
+ return paciente;
+ }
+
+
+
+ public class LecturaPistaThread extends Thread{
+ private JDialog dialog=null;
+
+
+ protected LecturaPistaThread(JDialog dialog){
+ this.dialog=dialog;
+ }
+
+ public void run(){
+ txtLecturaPistaTarjeta.requestFocus();
+ try{
+ Thread.sleep(2000);
+ }catch(Exception err){}
+ while(dialog.isVisible()){
+ if(!esLecturaManual()){
+ txtLecturaPistaTarjeta.requestFocus();
+ }
+ try{
+ try{
+ Thread.sleep(200);
+ }catch(Exception err){}
+ String sPista=new String(txtLecturaPistaTarjeta.getPassword());
+ sPista=sPista.trim();
+ if(sPista.endsWith("?")){
+ try{
+ Thread.sleep(200);
+ }catch(Exception err){}
+ String sPistaConfirmation=new String(txtLecturaPistaTarjeta.getPassword());
+ sPistaConfirmation=sPistaConfirmation.trim();
+ if(sPistaConfirmation.equals(sPista)){
+ paciente.setPista(sPista);
+ setVisible(false);
+ }
+ }
+ }catch(Exception err){
+
+ }
+ }
+ System.out.println("Fin del hilo");
+ }
+
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EasyClient.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EasyClient.java
new file mode 100644
index 0000000..a444e26
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EasyClient.java
@@ -0,0 +1,59 @@
+/*
+ * Creado el 16-jul-07
+ *
+ * Para cambiar la plantilla para este archivo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+import com.tarisan.chipcard.tpvvs.ws.*;
+import es.chipcard.util.*;
+import java.io.*;
+import java.net.URL;
+/**
+ *
+ * @author jjrider
+ */
+public class EasyClient {
+
+ static{
+ File f=new File("./conf/cacerts");
+ //System.out.println(f.getAbsolutePath());
+ System.setProperty("javax.net.ssl.trustStore",f.getAbsolutePath());
+ System.setProperty("javax.net.ssl.trustStorePassword","changeit");
+
+ }
+
+
+ /***
+ * En base a una cadena y la URL, envia la peticion
+ * @param sPeticion
+ * @param url
+ * @return
+ * @throws Exception
+ */
+ public String enviarPeticion(String sPeticion,String url) throws Exception{
+ String sResponse=null;
+ String sUniqueID=calculateUniqueId();
+ try{
+ SerClsChipCardWSPuntoEntradaSoapBindingStub service=new SerClsChipCardWSPuntoEntradaSoapBindingStub();
+ service.setEndPoint(new URL(url) );
+ service.setTimeout(60*1000);
+ sResponse=service.requestService(sPeticion);
+ }catch(Exception err){
+ err.printStackTrace();
+ }
+ return sResponse;
+ }
+
+ private String calculateUniqueId(){
+ SerClsFecha fecha=new SerClsFecha();
+ String sRetorno=fecha.toString("yyyyMMdd_HHmmssSSS");
+ return sRetorno;
+ }
+
+ public static void main(String args[]) throws Exception{
+ EasyClient client=new EasyClient();
+ String sRespuesta=client.enviarPeticion(args[1],args[0]);
+ System.out.println(sRespuesta);
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasFrame.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasFrame.java
new file mode 100644
index 0000000..a2e6897
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasFrame.java
@@ -0,0 +1,66 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+import com.tarisan.chipcard.gui.*;
+
+import java.awt.event.*;
+
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class EspecialidadesSanitariasFrame extends JFrame{
+ private EspecialidadesSanitariasPanel jpEspecialidadesPanel=new EspecialidadesSanitariasPanel();
+ private JButton btnAceptar=null;
+
+ public EspecialidadesSanitariasFrame(){
+ setTitle("Especialidades Sanitarias");
+ 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(jpEspecialidadesPanel, gridBagConstraints);
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy++;
+ JPanel jpButtons=new JPanel();
+
+ jpButtons.setLayout(new java.awt.FlowLayout());
+ jpButtons.add(getButtonAceptar());
+ //jpButtons.add(getButtonEliminar());
+ pn.add(jpButtons,gridBagConstraints);
+ getContentPane().add(pn, java.awt.BorderLayout.CENTER);
+ jpEspecialidadesPanel.update();
+ 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(new ActionListener(){
+ public void actionPerformed(ActionEvent evt){
+ setVisible(false);
+ dispose();
+ }
+ });
+ }
+ return btnAceptar;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasPanel.java
new file mode 100644
index 0000000..8347bed
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/EspecialidadesSanitariasPanel.java
@@ -0,0 +1,130 @@
+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 java.awt.event.*;
+/***
+ * Panel que muestra info de las Especialidades sanitarias dadas de alta en el sistema
+ * @author jjrider
+ */
+public class EspecialidadesSanitariasPanel extends JPanel{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1308026484400302032L;
+ private JPanel jpPrincipal=new JPanel();
+ private ImageComboBox cmbImageComboEspecialidades=new ImageComboBox();
+
+ private JLabel jlblCodigoEspecialidad=new javax.swing.JLabel("");
+
+ public EspecialidadesSanitariasPanel(){
+ super();
+ init();
+ }
+
+ private void init(){
+ setLayout(new BorderLayout());
+ initProductsPane();
+ 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(jpPrincipal, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ add(pn, java.awt.BorderLayout.CENTER);
+
+ cmbImageComboEspecialidades.addActionListener(new ActionListener(){
+ public void actionPerformed(ActionEvent evt){
+ //System.out.println();
+ EspecialidadSanitaria p=(EspecialidadSanitaria)cmbImageComboEspecialidades.getSelectedItem();
+ showEspecialidadSanitaria(p);
+ }
+ });
+
+
+ }
+
+
+ private void showEspecialidadSanitaria(EspecialidadSanitaria p){
+ if(p!=null){
+ getComboEspecialidades().setSelectedItem(p);
+ String sCode=String.valueOf(p.getCodigoEspecialidad());
+ getjlblCodigoEspecialidad().setText(sCode);
+ }
+ }
+
+
+ private void initProductsPane(){
+ jpPrincipal.setLayout(new java.awt.GridBagLayout());
+ jpPrincipal.setBorder(new javax.swing.border.TitledBorder("Especialidades Sanitarias"));
+ 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++;
+
+ JLabel label=new javax.swing.JLabel("Nombre Especialidad:");
+ jpPrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPrincipal.add(getComboEspecialidades(), gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx=0;
+
+ label=new javax.swing.JLabel("Cdigo Especialidad:");
+ jpPrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPrincipal.add(jlblCodigoEspecialidad, gridBagConstraints);
+
+ }
+
+
+ public void update(){
+ getComboEspecialidades().removeAllItems();
+ EspecialidadSanitariaBean b=new EspecialidadSanitariaBean();
+ Vector v=b.getEspecialidadesSanitarias();
+ for(int i=0;i0){
+ WebServiceTrayIcon.showMessage(this,this.getTitle(),"Nuevo terminal creado",JOptionPane.INFORMATION_MESSAGE);
+ }else{
+ WebServiceTrayIcon.showMessage(this,this.getTitle(),"Nuevo terminal no pudo ser creado",JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoTerminalPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoTerminalPanel.java
new file mode 100644
index 0000000..209139d
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoTerminalPanel.java
@@ -0,0 +1,84 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+public class NuevoTerminalPanel extends JPanel{
+ private JPanel jpPanlePrincipal=new JPanel();
+
+
+
+ JTextField jtxtNumeroTerminal=new javax.swing.JTextField("");
+ JCheckBox jchkEsTerminalLaboratorio=new javax.swing.JCheckBox("Terminal de Laboratorio");
+
+ public NuevoTerminalPanel(){
+ super();
+ init();
+ }
+
+
+
+ private void init(){
+ setLayout(new BorderLayout());
+ initPane();
+ 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(jpPanlePrincipal, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ add(pn, java.awt.BorderLayout.CENTER);
+
+
+
+ }
+
+
+ private void initPane(){
+ jpPanlePrincipal.setLayout(new java.awt.GridBagLayout());
+ jpPanlePrincipal.setBorder(new javax.swing.border.TitledBorder("Nuevo Terminal Sanitario"));
+ 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;
+
+ JLabel label=new javax.swing.JLabel("Numero Terminal:");
+ jpPanlePrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jtxtNumeroTerminal.setColumns(8);
+ jpPanlePrincipal.add(jtxtNumeroTerminal, gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx=0;
+ gridBagConstraints.gridwidth = 2;
+ jpPanlePrincipal.add(jchkEsTerminalLaboratorio, gridBagConstraints);
+
+
+
+ }
+
+
+
+
+ /**
+ * @return
+ */
+ public boolean getEsTerminalLaboratorio() {
+ return jchkEsTerminalLaboratorio.isSelected();
+ }
+
+ /**
+ * @return
+ */
+ public String getNumeroTerminal() {
+ return jtxtNumeroTerminal.getText();
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSFrame.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSFrame.java
new file mode 100644
index 0000000..11f2792
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSFrame.java
@@ -0,0 +1,114 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+import com.tarisan.chipcard.gui.*;
+
+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>Generacin de cdigo>Cdigo y comentarios
+ */
+public class NuevoUsuarioTVSFrame extends JFrame implements ActionListener{
+ private NuevoUsuarioTVSPanel jpInternalPanel=new NuevoUsuarioTVSPanel();
+ private JButton btnAceptar=null;
+ private JButton btnCancelar=null;
+
+ public NuevoUsuarioTVSFrame(){
+ setTitle("Nuevo Usuario del TVS");
+ 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(jpInternalPanel, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridwidth=2;
+ gridBagConstraints.anchor = java.awt.GridBagConstraints.CENTER;
+ gridBagConstraints.gridwidth = 1;
+ gridBagConstraints.gridy ++;
+ gridBagConstraints.gridx=0;
+ 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);
+ pack();
+ show();
+ UtilGUI.centerOnScreen(this);
+ }
+
+ public void updateData(){
+ jpInternalPanel.updateTerminals();
+ }
+
+ 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;
+ }
+
+ public void actionPerformed(ActionEvent evt){
+ TerminalSanitario objTer=null;
+ try{
+ objTer=(TerminalSanitario)jpInternalPanel.getTerminalesPanel().getCmbImageComboTerminales().getSelectedItem();
+ }catch(Exception err){
+
+ }
+ if(objTer==null){
+ WebServiceTrayIcon.showMessage(this,this.getTitle(),"El usuario debe estar asociado a un Terminal Sanitario",JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+ String sLogin=jpInternalPanel.getJtxtLogin().getText().trim();
+ String sPass=new String(jpInternalPanel.getJtxtPassword().getPassword());
+
+ UsuarioTVSBean objBean=new UsuarioTVSBean();
+ UsuarioTVS objUser=new UsuarioTVS();
+ objUser.setTerminal(objTer);
+ objUser.setLogin(sLogin);
+ objUser.setPassword(sPass);
+ int nRetorno=objBean.insertInLocal(objUser);
+ if(nRetorno>0){
+ WebServiceTrayIcon.showMessage(this,this.getTitle(),"Nuevo Usuario TVS almacenado",JOptionPane.INFORMATION_MESSAGE);
+ }else{
+ WebServiceTrayIcon.showMessage(this,this.getTitle(),"Usuario TVS no pudo ser almacenado",JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSPanel.java
new file mode 100644
index 0000000..074e4d5
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/NuevoUsuarioTVSPanel.java
@@ -0,0 +1,96 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+public class NuevoUsuarioTVSPanel extends JPanel{
+ private JPanel jpPanlePrincipal=new JPanel();
+ private TerminalesPanel objTerminalesPanel=new TerminalesPanel();
+ private JTextField jtxtLogin=new javax.swing.JTextField("");
+ private JPasswordField jtxtPassword=new javax.swing.JPasswordField("");
+
+ public NuevoUsuarioTVSPanel(){
+ super();
+ init();
+ }
+
+
+
+ private void init(){
+ setLayout(new BorderLayout());
+ initPane();
+ 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(jpPanlePrincipal, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ add(pn, java.awt.BorderLayout.CENTER);
+
+
+ }
+
+
+ private void initPane(){
+ jpPanlePrincipal.setLayout(new java.awt.GridBagLayout());
+ jpPanlePrincipal.setBorder(new javax.swing.border.TitledBorder("Nuevo Usuario del 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 = 2;
+ jpPanlePrincipal.add(getTerminalesPanel(), gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridwidth = 1;
+ JLabel label=new javax.swing.JLabel("Login:");
+ jpPanlePrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jtxtLogin.setColumns(14);
+ jpPanlePrincipal.add(jtxtLogin, gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx=0;
+ label=new javax.swing.JLabel("Password:");
+ jpPanlePrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jtxtLogin.setColumns(8);
+ jpPanlePrincipal.add(jtxtPassword, gridBagConstraints);
+
+ }
+
+ public void updateTerminals(){
+ getTerminalesPanel().update();
+ }
+
+
+ /**
+ * @return
+ */
+ public JTextField getJtxtLogin() {
+ return jtxtLogin;
+ }
+
+ /**
+ * @return
+ */
+ public JPasswordField getJtxtPassword() {
+ return jtxtPassword;
+ }
+
+ /**
+ * @return
+ */
+ public TerminalesPanel getTerminalesPanel() {
+ return objTerminalesPanel;
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/ProgressBarThread.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/ProgressBarThread.java
new file mode 100644
index 0000000..e7827e0
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/ProgressBarThread.java
@@ -0,0 +1,35 @@
+/*
+ * Creado el 20-feb-07
+ *
+ * Para cambiar la plantilla para este archivo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import com.tarisan.chipcard.gui.*;
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class ProgressBarThread extends Thread{
+ VentanaProgreso vProgress=null;
+ private int nMaxSegundos=30;
+
+ public ProgressBarThread(VentanaProgreso objV,int nMax){
+ vProgress=objV;
+ nMaxSegundos=nMax;
+ }
+ public void run(){
+ vProgress.show();
+ int nSegundos=0;
+ while(vProgress.isVisible()){
+ try{
+ vProgress.setProgressState((nSegundos*100)/nMaxSegundos);
+ Thread.currentThread().sleep(1000);
+ nSegundos++;
+ }catch(Exception err){}
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesFrame.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesFrame.java
new file mode 100644
index 0000000..21cdea0
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesFrame.java
@@ -0,0 +1,41 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon;
+
+import java.awt.BorderLayout;
+import javax.swing.*;
+
+import com.tarisan.chipcard.gui.*;
+
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class TerminalesFrame extends JFrame{
+ TerminalesPanel jpTerminalesPanel=new TerminalesPanel();
+
+ public TerminalesFrame(){
+ setTitle("Terminales Sanitarios");
+ 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(jpTerminalesPanel, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ getContentPane().add(pn, java.awt.BorderLayout.CENTER);
+ pack();
+ show();
+ UtilGUI.centerOnScreen(this);
+ jpTerminalesPanel.update();
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesPanel.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesPanel.java
new file mode 100644
index 0000000..f6ea938
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/TerminalesPanel.java
@@ -0,0 +1,123 @@
+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 java.awt.event.*;
+
+public class TerminalesPanel extends JPanel{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7655462092194141627L;
+ private JPanel jpPanlePrincipal=new JPanel();
+ private ImageComboBox cmbImageComboTerminales=new ImageComboBox();
+
+ JLabel jlblEsTerminalLaboratorio=new javax.swing.JLabel("");
+
+ public TerminalesPanel(){
+ super();
+ init();
+ }
+
+
+
+ private void init(){
+ setLayout(new BorderLayout());
+ initProductsPane();
+ 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(jpPanlePrincipal, gridBagConstraints);
+ gridBagConstraints.gridx = 1;
+ add(pn, java.awt.BorderLayout.CENTER);
+
+ cmbImageComboTerminales.addActionListener(new ActionListener(){
+ public void actionPerformed(ActionEvent evt){
+ //System.out.println();
+ TerminalSanitario p=(TerminalSanitario)cmbImageComboTerminales.getSelectedItem();
+ showTerminalSanitario(p);
+ }
+ });
+
+
+ }
+
+
+ private void showTerminalSanitario(TerminalSanitario p){
+ if(p!=null){
+ getCmbImageComboTerminales().setSelectedItem(p);
+ String sTVA=((p.isTVA())?"Si":"No");
+ jlblEsTerminalLaboratorio.setText(sTVA);
+ }
+ }
+
+
+ private void initProductsPane(){
+ jpPanlePrincipal.setLayout(new java.awt.GridBagLayout());
+ jpPanlePrincipal.setBorder(new javax.swing.border.TitledBorder("Terminales Sanitarios"));
+ 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++;
+
+ JLabel label=new javax.swing.JLabel("Numero Terminal:");
+ jpPanlePrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPanlePrincipal.add(cmbImageComboTerminales, gridBagConstraints);
+
+ gridBagConstraints.gridy++;
+ gridBagConstraints.gridx=0;
+
+ label=new javax.swing.JLabel("Terminal Laboratorio:");
+ jpPanlePrincipal.add(label, gridBagConstraints);
+ gridBagConstraints.gridx++;
+ jpPanlePrincipal.add(jlblEsTerminalLaboratorio, gridBagConstraints);
+
+ }
+
+
+ public void update(){
+ //if(cmbImageComboTerminales)
+ cmbImageComboTerminales.removeAllItems();
+ TerminalSanitarioBean b=new TerminalSanitarioBean();
+ Vector v=b.getTerminalesSanitarios();
+ for(int i=0;i0){
+ nProfesionalesInsertados++;
+ }
+ }
+ }
+ }
+ showInformationMessage("Importar Datos","Importados "+nProfesionalesInsertados+" Profesionales Sanitarios");
+ }
+ //Busco ListasDeActos....
+ Element xmlListasDeActos=SerClsXMLUtils.dameElemento(xmlDoc.getDocumentElement(),"ListasDeActos");
+ if(xmlListasDeActos!=null){
+ int nListasDeActosInsertados=0;
+ NodeList nl=xmlListasDeActos.getElementsByTagName("LA");
+ for(int i=0;i0 && nEspe>0 && nCodeLA>0 && sName!=null){
+ ListaActos objLA=new ListaActos();
+ objLA.setCodigoCompania(nComp);
+ objLA.setCodigoEspecialidad(nEspe);
+ objLA.setCodigoListaActos(nCodeLA);
+ objLA.setNombreListaActos(sName);
+ if(getBeanLA().insertInLocal(objLA)>0){
+ nListasDeActosInsertados++;
+ }
+ }
+ }
+ }
+ showInformationMessage("Importar Datos","Importadas "+nListasDeActosInsertados+" Lista de Actos");
+ }
+ //Busco Actos....
+ Element xmlActos=SerClsXMLUtils.dameElemento(xmlDoc.getDocumentElement(),"ActosMedicos");
+ if(xmlActos!=null){
+ int nActosInsertados=0;
+ NodeList nl=xmlActos.getElementsByTagName("AM");
+ for(int i=0;i0 && nTerminal>0 && nComp>0 && nEspe>0 && nCodeLA>0 && sProf!=null && sName!=null){
+ ActoMedico objAM=new ActoMedico();
+ objAM.setCodigoTerminal(nTerminal);
+ objAM.setCodigoCompania(nComp);
+ objAM.setCodigoEspecialidad(nEspe);
+ objAM.setCodigoProf(sProf);
+ objAM.setCodigoLActos(nCodeLA);
+ objAM.setCodigoActo(nActo);
+ objAM.setNombreActo(sName);
+ if(getBeanAM().insertInLocal(objAM)>0){
+ nActosInsertados++;
+ }
+ }
+ }
+ }
+ showInformationMessage("Importar Datos","Importados "+nActosInsertados+" Actos Médicos");
+ }
+ }catch(Exception err){
+ err.printStackTrace();
+ }
+ }
+
+
+
+
+ public static int startsBrowserWithURL(String strURL){
+ int intRetorno=-1;
+ try{
+ Process p=Runtime.getRuntime().exec("explorer "+strURL);
+ intRetorno=0;
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return intRetorno;
+ }
+
+
+ class XMLFileFilter extends javax.swing.filechooser.FileFilter {
+ public boolean accept(File file) {
+ String filename = file.getName();
+ return filename.endsWith(".xml") || file.isDirectory();
+ }
+ public String getDescription() {
+ return "XML(*.xml)";
+ }
+ }
+
+
+
+ /**
+ * Muestra un dialogo con los datos de la respusta a una operacion,
+ * @param objResponse
+ * @param parent
+ */
+ public static void showTransactionInfo(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes objResponse, JFrame parentFrame){
+ String strMensaje="";
+ StringWriter sWriter=new StringWriter();
+ PrintWriter pWriter=new PrintWriter(sWriter);
+ String strTypeOfOperation=objResponse.getTipAut();
+ try{
+ String strTypeOfMessage=objResponse.getTipAut();
+ if(strTypeOfMessage!=null){
+ if(strTypeOfMessage.equals(WSTRConstantes.TIPO_OP_SOLO_TARJETA_REDUC)){
+ pWriter.println("Tipo Operación: "+WSTRConstantes.TIPO_OP_SOLO_TARJETA);
+ }else if(strTypeOfMessage.equals(WSTRConstantes.TIPO_OP_DOC_UNICO_REDUC)){
+ pWriter.println("Tipo Operación: "+WSTRConstantes.TIPO_OP_DOC_UNICO);
+ }else if(strTypeOfMessage.equals(WSTRConstantes.TIPO_OP_VOL_CLINICO_REDUC)){
+ pWriter.println("Tipo Operación: "+WSTRConstantes.TIPO_OP_VOL_CLINICO);
+ }else if(strTypeOfMessage.equals(WSTRConstantes.TIPO_OP_VOL_MEDICO_REDUC)){
+ pWriter.println("Tipo Operación: "+WSTRConstantes.TIPO_OP_VOL_MEDICO);
+ }
+ }
+ pWriter.println("Terminal: "+objResponse.getCodigoTerminal());
+ pWriter.println("Profesional: "+getBeanProfSani().getProfesionalSanitariosByID(objResponse.getCodigoProfesional()));
+ pWriter.println("Compania: "+getBeanCompSani().getCompaniaSanitariaById(objResponse.getCodigoCompania()));
+ int nEspecialidad=objResponse.getCodigoEspecialidad();
+ if(nEspecialidad>0){
+ pWriter.println("Especialidad: "+getBeanEspeSani().getEspecialidadSanitariaById(nEspecialidad));
+ }else{
+ nEspecialidad=4;//ANALISIS CLINICOS
+ }
+ if(objResponse.getCodigoListaActos()>0){
+ pWriter.println("Lista de Actos: "+getBeanLA().getListaActosByCompAndEspeAndIDLActos(objResponse.getCodigoCompania(),nEspecialidad,objResponse.getCodigoListaActos()));
+ }
+ pWriter.flush();
+ pWriter.close();
+ boolean blnOperacionAceptada=false;
+ com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Aut arrAut[]=objResponse.getAut();
+ for(int i=0;i0){
+ pWriter2.println("Acto Médico "+(j+1)+":"+getBeanAM().getActoMedicoByCompAndEspeAndIDLActosAndIDActo(objResponse.getCodigoCompania(),nEspecialidad, objResponse.getCodigoListaActos(), nActoMedicoCode));
+ }
+ }
+ String sDU=arrAut[i].getDocUnico();
+ if(sDU!=null){
+ pWriter2.println("Documento Unico:"+sDU);
+ }
+ String sVolante=arrAut[i].getVolante();
+ if(sVolante!=null){
+ pWriter2.println("Volante:"+sVolante);
+ }
+ String sFechaHoraAut=arrAut[i].getFechaHoraAut();
+ if(sFechaHoraAut!=null){
+ pWriter2.println("Fecha/Hora Autorización:"+sFechaHoraAut);
+ }
+ String sCodigoAut=arrAut[i].getNumRef();
+ if(sCodigoAut!=null){
+ pWriter2.println("Código de Autorización:"+sCodigoAut);
+ }
+ String sURLBoleta=arrAut[i].getUrlBoleta();
+ if(sURLBoleta!=null){
+ pWriter2.println("URL Boleta:"+sURLBoleta);
+ }
+ String sNumFactura=arrAut[i].getNumFactura();
+ if(sNumFactura!=null){
+ pWriter2.println("Numero Factura Asociada:"+sNumFactura);
+ }
+ new AutomaticCloseDialog(parentFrame.getTitle(),sWriter2.toString(),-1,parentFrame, ((arrAut[i].estaAutorizada() || arrAut[i].estaAnulada())?JOptionPane.INFORMATION_MESSAGE:JOptionPane.ERROR_MESSAGE));
+ }
+ }catch(Exception err){err.printStackTrace();}
+ }
+
+ /***
+ * Convierte u nmensaje de respuesta a Autorizacion(AutRes) a una serie de objetos 'Autorizacion'
+ * @param objResponse
+ * @return
+ */
+ public static Vector AutResMes2Autorizacion(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes objResponse){
+ Vector vAutorizaciones=new Vector();
+ Autorizacion objAutorizacion=null;
+ String strTypeOfOperation=objResponse.getTipAut();
+ com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Aut arrAut[]=objResponse.getAut();
+ for(int i=0;i0){
+ objAutorizacion.setID_LACTOS(objResponse.getCodigoListaActos());
+ }
+ objAutorizacion.setID_TER(arrAut[i].getTerminal());
+ objAutorizacion.setID_TIMESTAMP(arrAut[i].getTimestamp());
+ objAutorizacion.setESTADO(arrAut[i].getResponse());
+ objAutorizacion.setDESCRIPCION(arrAut[i].getDescription());
+ int nActoMedicoCode=arrAut[i].getActoMedico(1);
+ if(nActoMedicoCode>0){
+ objAutorizacion.setID_ACTO1(nActoMedicoCode);
+ nActoMedicoCode=arrAut[i].getActoMedico(2);
+ if(nActoMedicoCode>0){
+ objAutorizacion.setID_ACTO2(nActoMedicoCode);
+ nActoMedicoCode=arrAut[i].getActoMedico(3);
+ if(nActoMedicoCode>0){
+ objAutorizacion.setID_ACTO3(nActoMedicoCode);
+ }
+ }
+ }
+ String sDU=arrAut[i].getDocUnico();
+ if(sDU!=null){
+ objAutorizacion.setDU(sDU);
+ }
+ String sVolante=arrAut[i].getVolante();
+ if(sVolante!=null){
+ objAutorizacion.setVOL(sVolante);
+ }
+ String sFechaHoraAut=arrAut[i].getFechaHoraAut();
+ if(sFechaHoraAut!=null){
+ objAutorizacion.setFECHAHORAAUT(sFechaHoraAut);
+ }
+ String sCodigoAut=arrAut[i].getNumRef();
+ if(sCodigoAut!=null){
+ objAutorizacion.setNUMREF(sCodigoAut);
+ }
+ String sURLBoleta=arrAut[i].getUrlBoleta();
+ if(sURLBoleta!=null){
+ objAutorizacion.setURLBOLETA(sURLBoleta);
+ }
+ String sNumFactura=arrAut[i].getNumFactura();
+ if(sNumFactura!=null){
+ objAutorizacion.setNUMFACTURA(sNumFactura);
+ }
+ }catch(Exception err){err.printStackTrace();}
+ vAutorizaciones.add(objAutorizacion);
+ }
+ return vAutorizaciones;
+ }
+
+ /**
+ * @return
+ */
+ public static ActoMedicoBean getBeanAM() {
+ if(beanAM==null){
+ beanAM=new ActoMedicoBean();
+ }
+ return beanAM;
+ }
+
+ /**
+ * @return
+ */
+ public static CompaniaSanitariaBean getBeanCompSani() {
+ if(beanCompSani==null){
+ beanCompSani=new CompaniaSanitariaBean();
+ }
+ return beanCompSani;
+ }
+
+ /**
+ * @return
+ */
+ public static EspecialidadSanitariaBean getBeanEspeSani() {
+ if(beanEspeSani==null){
+ beanEspeSani=new EspecialidadSanitariaBean();
+ }
+ return beanEspeSani;
+ }
+
+ /**
+ * @return
+ */
+ public static ListaActosBean getBeanLA() {
+ if(beanLA==null){
+ beanLA=new ListaActosBean();
+ }
+ return beanLA;
+ }
+
+ /**
+ * @return
+ */
+ public static ProfesionalSanitarioBean getBeanProfSani() {
+ if(beanProfSani==null){
+ beanProfSani=new ProfesionalSanitarioBean();
+ }
+ return beanProfSani;
+ }
+
+ public static void fillURLServices(JComboBox cmbURLService){
+ Vector vValues=SerClsXMLProperties.obtenerValoresPropiedad("URLServicioWeb");
+ if(vValues!=null){
+ for(int i=0;i"+getCodigoActo()+"";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ActoMedicoBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ActoMedicoBean.java
new file mode 100644
index 0000000..de5b0fd
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ActoMedicoBean.java
@@ -0,0 +1,154 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class ActoMedicoBean extends ClsDBBase{
+ public static final String TABLENAME="ACTO_MEDICO";
+
+ public ActoMedicoBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getListaActos(){
+ String sSQL="SELECT * FROM "+TABLENAME;
+ return getActosMedicos(sSQL);
+ }
+
+ public Vector getActosMedicosOf(int nTer,int nComp,int nEspe,String sProf,int codLA){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+" AND ID_PROF="+DataBaseUtil.FormatSQLStringField(sProf)+" AND ID_COMP="+DataBaseUtil.FormatSQLIntegerField(nComp)+" AND ID_ESPE="+DataBaseUtil.FormatSQLIntegerField(nEspe)+" AND ID_LACTOS="+DataBaseUtil.FormatSQLIntegerField(codLA);
+ return getActosMedicos(sSQL);
+ }
+
+ public ActoMedico getActoMedicoByCompAndEspeAndIDLActosAndIDActo(int nIDComp,int nIDEspe, int lactos, int nActo){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE="+nIDEspe+" AND ID_COMP="+nIDComp+" AND ID_LACTOS="+lactos+" AND ID_ACTO="+nActo+"";
+ Vector vActos=getActosMedicos(sSQL);
+ if(vActos!=null){
+ if(vActos.size()>0){
+ return (ActoMedico)vActos.firstElement();
+ }
+ }
+ return null;
+ }
+
+ public Vector getActosMedicosByTerminalAndProfesional(int nTer,String sProf){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+" AND ID_PROF="+DataBaseUtil.FormatSQLStringField(sProf);
+ return getActosMedicos(sSQL);
+ }
+
+ public Vector getProfesionales(int nTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer);
+ return getActosMedicos(sSQL);
+ }
+
+ public Vector getActosMedicosByTerminal(int nTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer);
+ return getActosMedicos(sSQL);
+ }
+
+
+
+
+
+ public Vector getActosMedicosByProf(String sProf){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_PROF="+DataBaseUtil.FormatSQLStringField(sProf);
+ return getActosMedicos(sSQL);
+ }
+
+ private java.util.Vector getActosMedicos(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getActoMedico(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+ private ActoMedico getActoMedico(java.sql.ResultSet rs){
+ ActoMedico obj=new ActoMedico();
+ try{
+ obj.setCodigoTerminal(rs.getInt("ID_TER"));
+ obj.setCodigoCompania(rs.getInt("ID_COMP"));
+ obj.setCodigoEspecialidad(rs.getInt("ID_ESPE"));
+ obj.setCodigoProf(rs.getString("ID_PROF"));
+ obj.setCodigoLActos(rs.getInt("ID_LACTOS"));
+ obj.setCodigoActo(rs.getInt("ID_ACTO"));
+ obj.setNombreActo(rs.getString("NOMBRE_ACTO"));
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+ private void repoblateTable(){
+
+ }
+
+ public int insertInLocal(ActoMedico objActoMedico){
+ return insertInLocal(objActoMedico.getCodigoTerminal(),objActoMedico.getCodigoCompania(),objActoMedico.getCodigoEspecialidad(),objActoMedico.getCodigoProf(),objActoMedico.getCodigoLActos() ,objActoMedico.getCodigoActo(),objActoMedico.getNombreActo());
+ }
+
+ private int insertInLocal(int nIdTer,int sCodComp,int sCodEspe,String sCodProf,int nCodLActos,int nActo,String sNombre){
+ int nRetorno=-1;
+ try{
+ if(nIdTer>0 && sCodComp>0 && sCodEspe>0 && sCodProf!=null && nCodLActos>0 && nActo>0){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_TER," +
+ "ID_COMP," +
+ "ID_ESPE," +
+ "ID_PROF," +
+ "ID_LACTOS," +
+ "ID_ACTO," +
+ "NOMBRE_ACTO" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(nIdTer)+","+
+ DataBaseUtil.FormatSQLIntegerField(sCodComp)+","+
+ DataBaseUtil.FormatSQLIntegerField(sCodEspe)+","+
+ DataBaseUtil.FormatSQLStringField(sCodProf) +","+
+ DataBaseUtil.FormatSQLIntegerField(nCodLActos)+","+
+ DataBaseUtil.FormatSQLIntegerField(nActo)+","+
+ DataBaseUtil.FormatSQLStringField(sNombre) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ int nRetorno= LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_TER\" int NOT NULL," +
+ "\"ID_COMP\" int NOT NULL," +
+ "\"ID_ESPE\" int NOT NULL," +
+ "\"ID_PROF\" VARCHAR(12) NOT NULL," +
+ "\"ID_LACTOS\" int NOT NULL," +
+ "\"ID_ACTO\" int NOT NULL," +
+ "\"NOMBRE_ACTO\" VARCHAR(100) NOT NULL," +
+ " PRIMARY KEY (ID_TER, ID_COMP,ID_ESPE,ID_PROF,ID_LACTOS,ID_ACTO)"+
+ ")"
+ );
+ repoblateTable();
+ return nRetorno;
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Autorizacion.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Autorizacion.java
new file mode 100644
index 0000000..4db71ec
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Autorizacion.java
@@ -0,0 +1,329 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.*;
+/**
+ * Representa una Autorizacion del Sistema
+ * @author jjrider
+ */
+public class Autorizacion {
+
+ private String TIPOOPERACION=null;
+ private int ID_TER=-1;
+ private String ID_TIMESTAMP=null;
+ private String ESTADO=null;
+ private String DESCRIPCION=null;
+ private String FECHA_OP=null;
+ private int ID_COMP=-1;
+ private int ID_ESPE=-1;
+ private String ID_PROF=null;
+ private int ID_LACTOS=-1;
+ private int ID_ACTO1=-1;
+ private int ID_ACTO2=-1;
+ private int ID_ACTO3=-1;
+ private String DU=null;
+ private String VOL=null;
+ private String FECHAHORAAUT=null;
+ private String NUMREF=null;
+ private String NUMFACTURA=null;
+ private String URLBOLETA=null;
+ private Paciente objPaciente=null;
+
+
+
+ public boolean estaAutorizada(){
+ return WSTRConstantes.OP_RESPONSE_AUTORIZADA.equals(getESTADO());
+ }
+
+ public boolean estaDenegada(){
+ return WSTRConstantes.OP_RESPONSE_DENEGADA.equals(getESTADO());
+ }
+
+ public boolean esError(){
+ return WSTRConstantes.OP_RESPONSE_ERROR.equals(getESTADO());
+ }
+
+ public boolean estaAnulada(){
+ return WSTRConstantes.OP_RESPONSE_ANULADA.equals(getESTADO());
+ }
+
+ /**
+ * @return
+ */
+ public String getDU() {
+ return DU;
+ }
+
+ /**
+ * @return
+ */
+ public String getESTADO() {
+ return ESTADO;
+ }
+
+ /**
+ * @return
+ */
+ public String getFECHA_OP() {
+ return FECHA_OP;
+ }
+
+ /**
+ * @return
+ */
+ public String getFECHAHORAAUT() {
+ return FECHAHORAAUT;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_ACTO1() {
+ return ID_ACTO1;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_ACTO2() {
+ return ID_ACTO2;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_ACTO3() {
+ return ID_ACTO3;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_COMP() {
+ return ID_COMP;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_ESPE() {
+ return ID_ESPE;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_LACTOS() {
+ return ID_LACTOS;
+ }
+
+ /**
+ * @return
+ */
+ public String getID_PROF() {
+ return ID_PROF;
+ }
+
+ /**
+ * @return
+ */
+ public int getID_TER() {
+ return ID_TER;
+ }
+
+ /**
+ * @return
+ */
+ public String getID_TIMESTAMP() {
+ return ID_TIMESTAMP;
+ }
+
+ /**
+ * @return
+ */
+ public String getNUMFACTURA() {
+ return NUMFACTURA;
+ }
+
+ /**
+ * @return
+ */
+ public String getNUMREF() {
+ return NUMREF;
+ }
+
+ /**
+ * @return
+ */
+ public String getURLBOLETA() {
+ return URLBOLETA;
+ }
+
+ /**
+ * @return
+ */
+ public String getVOL() {
+ return VOL;
+ }
+
+ /**
+ * @param string
+ */
+ public void setDU(String string) {
+ DU = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setESTADO(String string) {
+ ESTADO = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setFECHA_OP(String string) {
+ FECHA_OP = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setFECHAHORAAUT(String string) {
+ FECHAHORAAUT = string;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_ACTO1(int i) {
+ ID_ACTO1 = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_ACTO2(int i) {
+ ID_ACTO2 = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_ACTO3(int i) {
+ ID_ACTO3 = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_COMP(int i) {
+ ID_COMP = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_ESPE(int i) {
+ ID_ESPE = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_LACTOS(int i) {
+ ID_LACTOS = i;
+ }
+
+ /**
+ * @param string
+ */
+ public void setID_PROF(String string) {
+ ID_PROF = string;
+ }
+
+ /**
+ * @param i
+ */
+ public void setID_TER(int i) {
+ ID_TER = i;
+ }
+
+ /**
+ * @param string
+ */
+ public void setID_TIMESTAMP(String string) {
+ ID_TIMESTAMP = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setNUMFACTURA(String string) {
+ NUMFACTURA = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setNUMREF(String string) {
+ NUMREF = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setURLBOLETA(String string) {
+ URLBOLETA = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setVOL(String string) {
+ VOL = string;
+ }
+
+ /**
+ * @return
+ */
+ public Paciente getPaciente() {
+ return objPaciente;
+ }
+
+ /**
+ * @param paciente
+ */
+ public void setPaciente(Paciente paciente) {
+ objPaciente = paciente;
+ }
+
+ /**
+ * @return
+ */
+ public String getDESCRIPCION() {
+ return DESCRIPCION;
+ }
+
+ /**
+ * @return
+ */
+ public String getTIPOOPERACION() {
+ return TIPOOPERACION;
+ }
+
+ /**
+ * @param string
+ */
+ public void setDESCRIPCION(String string) {
+ DESCRIPCION = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setTIPOOPERACION(String string) {
+ TIPOOPERACION = string;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/AutorizacionesBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/AutorizacionesBean.java
new file mode 100644
index 0000000..a14ac8e
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/AutorizacionesBean.java
@@ -0,0 +1,352 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.*;
+import es.chipcard.util.*;
+
+public class AutorizacionesBean extends ClsDBBase{
+ public static final String TABLENAME="AUTORIZACIONES";
+
+ public AutorizacionesBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+
+
+ public ArrayList getAutorizacionesAsArrayList(){
+ String sSQL="SELECT * FROM "+TABLENAME;
+ return getAutorizacionesAsArrayList(sSQL);
+ }
+
+ public ArrayList getAutorizacionesAsArrayListByTerminal(int nTerminal){
+ String sSQL="SELECT * FROM "+TABLENAME+
+ " WHERE"+
+ " ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTerminal);
+ return getAutorizacionesAsArrayList(sSQL);
+ }
+
+ public ArrayList getAutorizacionesAsArrayListByTerminalAndEstado(int nTerminal,String sEstado){
+ String sSQL="SELECT * FROM "+TABLENAME+
+ " WHERE"+
+ " ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTerminal)+
+ " AND ESTADO="+DataBaseUtil.FormatSQLStringField(sEstado);;
+ return getAutorizacionesAsArrayList(sSQL);
+ }
+
+ public ArrayList getAutorizacionesAsArrayList(String sSQL){
+ ArrayList lista=new ArrayList();
+ java.sql.ResultSet rs=null;
+ sSQL=sSQL+" ORDER BY FECHA_OP DESC";
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ String sArrCampos[]=null;
+ int nNumColumnas=rs.getMetaData().getColumnCount();
+ if(sArrCampos==null){
+ sArrCampos=new String[nNumColumnas];
+ for(int i=0;i0 && sTimestamp!=null){
+ String sSQL="SELECT * FROM "+TABLENAME+
+ " WHERE"+
+ " ID_TER="+DataBaseUtil.FormatSQLIntegerField(nIdTer)+" AND "+
+ " ID_TIMESTAMP="+DataBaseUtil.FormatSQLStringField(sTimestamp) ;
+ Vector vAuts=getAutorizaciones(sSQL);
+ objAutorizacion=(Autorizacion)vAuts.firstElement();
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return objAutorizacion;
+ }
+
+ /***
+ * Devuelve todas las Autorizacioens realizadas por un Terminal
+ * @param nIdTer
+ * @return
+ */
+ public Vector getAutorizacionesByTerminal(int nIdTer){
+ Vector v=new Vector();;
+ try{
+ if(nIdTer>0){
+ String sSQL="SELECT * FROM "+TABLENAME+
+ " WHERE"+
+ " ID_TER="+DataBaseUtil.FormatSQLIntegerField(nIdTer);
+ v=getAutorizaciones(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return v;
+ }
+
+ /***
+ * Devuelve todas las Autorizacioens realizadas por un Terminal
+ * @param nIdTer
+ * @return
+ */
+ public Vector getAutorizacionesAutorizadasByTerminal(int nIdTer){
+ Vector v=new Vector();;
+ try{
+ if(nIdTer>0){
+ String sSQL="SELECT * FROM "+TABLENAME+
+ " WHERE"+
+ " ID_TER="+DataBaseUtil.FormatSQLIntegerField(nIdTer)+
+ " AND ESTADO="+DataBaseUtil.FormatSQLStringField(com.tarisan.chipcard.tpvvs.webservicetrayicon.WSTRConstantes.OP_RESPONSE_AUTORIZADA);
+ v=getAutorizaciones(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return v;
+ }
+
+ private java.util.Vector getAutorizaciones(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getAutorizacion(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+
+
+ private Autorizacion getAutorizacion(java.sql.ResultSet rs){
+ Autorizacion obj=new Autorizacion();
+ try{
+ obj.setID_TER(rs.getInt("ID_TER"));
+ obj.setID_TIMESTAMP(rs.getString("ID_TIMESTAMP"));
+ obj.setESTADO(rs.getString("ESTADO"));
+ Paciente paciente=new Paciente();
+ paciente.setTarjeta(rs.getString("TARJETA"));
+ paciente.setFAlta(rs.getString("FALTA_TAR"));
+ paciente.setFBaja(rs.getString("FBAJA_TAR"));
+ paciente.setCobertura(rs.getString("COBERTURA_TAR"));
+ paciente.setVersion(rs.getString("VERSION_TAR"));
+ obj.setPaciente(paciente);
+ obj.setFECHA_OP(rs.getString("FECHA_OP"));
+ obj.setID_COMP(rs.getInt("ID_COMP"));
+ obj.setID_ESPE(rs.getInt("ID_ESPE"));
+ obj.setID_PROF(rs.getString("ID_PROF"));
+ obj.setID_LACTOS(rs.getInt("ID_LACTOS"));
+ obj.setID_ACTO1(rs.getInt("ID_ACTO1"));
+ obj.setID_ACTO2(rs.getInt("ID_ACTO2"));
+ obj.setID_ACTO3(rs.getInt("ID_ACTO3"));
+ obj.setDU(rs.getString("DU"));
+ obj.setVOL(rs.getString("VOL"));
+ obj.setFECHAHORAAUT(rs.getString("FECHAHORAAUT"));
+ obj.setNUMREF(rs.getString("NUMREF"));
+ obj.setNUMFACTURA(rs.getString("NUMFACTURA"));
+ obj.setURLBOLETA(rs.getString("URLBOLETA"));
+ obj.setNUMFACTURA(rs.getString("NUMFACTURA"));
+ Paciente pac=new Paciente();
+ pac.setTarjeta(rs.getString("TARJETA"));
+ pac.setFAlta(rs.getString("FALTA_TAR"));
+ pac.setFBaja(rs.getString("FBAJA_TAR"));
+ pac.setCobertura(rs.getString("COBERTURA_TAR"));
+ pac.setVersion(rs.getString("VERSION_TAR"));
+ obj.setPaciente(pac);
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+ private void repoblateTable(){
+
+ }
+
+ public int insertInLocal(Autorizacion aut){
+ String sTarjeta=null,sFAltaTarjeta=null,sFBajaTarjeta=null,sCobTarjeta=null,sVerTarjeta=null;
+ if(aut.getPaciente()!=null){
+ sTarjeta=aut.getPaciente().getTarjeta();
+ sFAltaTarjeta=aut.getPaciente().getFAlta();
+ sFBajaTarjeta=aut.getPaciente().getFBaja();
+ sCobTarjeta=aut.getPaciente().getCobertura();
+ sVerTarjeta=aut.getPaciente().getVersion();
+ }
+ return insertInLocal(aut.getID_TER(),aut.getID_TIMESTAMP(),aut.getTIPOOPERACION(),aut.getESTADO(),aut.getDESCRIPCION(),sTarjeta,sFAltaTarjeta,sFBajaTarjeta,sCobTarjeta,sVerTarjeta,aut.getID_COMP(),aut.getID_ESPE(),aut.getID_PROF(),aut.getID_LACTOS(),aut.getID_ACTO1(),aut.getID_ACTO2(),aut.getID_ACTO3(),aut.getDU(),aut.getVOL(),aut.getFECHAHORAAUT(),aut.getNUMREF(),aut.getNUMFACTURA(),aut.getURLBOLETA());
+ }
+
+ private int insertInLocal(int nIdTer,String sTimestamp,String sTipoAut,String sEstado,String sDesc,String sTarjeta,String sFAltaTarjeta,String sFBajaTarjeta,String sCobTarjeta,String sVerTarjeta,int sCodComp,int sCodEspe,String sCodProf,int nCodLActos,int nActo1,int nActo2,int nActo3,String sDU,String sVol,String sFechaHoraAut,String sNumRef,String sNumFactura,String sURLBoleta){
+ int nRetorno=-1;
+ try{
+ if(nIdTer>0 && sTimestamp!=null){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_TER," +
+ "ID_TIMESTAMP," +
+ "AUTTYPE," +
+ "ESTADO," +
+ "DESCRIPCION," +
+ "FECHA_OP," +
+ "TARJETA," +
+ "FALTA_TAR," +
+ "FBAJA_TAR," +
+ "COBERTURA_TAR," +
+ "VERSION_TAR," +
+ "ID_COMP," +
+ "ID_ESPE," +
+ "ID_PROF," +
+ "ID_LACTOS," +
+ "ID_ACTO1," +
+ "ID_ACTO2," +
+ "ID_ACTO3," +
+ "DU," +
+ "VOL," +
+ "FECHAHORAAUT," +
+ "NUMREF," +
+ "NUMFACTURA," +
+ "URLBOLETA"+
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(nIdTer)+","+
+ DataBaseUtil.FormatSQLStringField(sTimestamp) +","+
+ DataBaseUtil.FormatSQLStringField(sTipoAut) +","+
+ DataBaseUtil.FormatSQLStringField(sEstado) +","+
+ DataBaseUtil.FormatSQLStringField(sDesc) +","+
+ "CURRENT_TIMESTAMP,"+
+ DataBaseUtil.FormatSQLStringField(sTarjeta) +","+
+ DataBaseUtil.FormatSQLStringField(sFAltaTarjeta) +","+
+ DataBaseUtil.FormatSQLStringField(sFBajaTarjeta) +","+
+ DataBaseUtil.FormatSQLStringField(sCobTarjeta) +","+
+ DataBaseUtil.FormatSQLStringField(sVerTarjeta) +","+
+ DataBaseUtil.FormatSQLIntegerField(sCodComp)+","+
+ DataBaseUtil.FormatSQLIntegerField(sCodEspe)+","+
+ DataBaseUtil.FormatSQLStringField(sCodProf) +","+
+ DataBaseUtil.FormatSQLIntegerField(nCodLActos)+","+
+ DataBaseUtil.FormatSQLIntegerField(nActo1)+","+
+ DataBaseUtil.FormatSQLIntegerField(nActo2)+","+
+ DataBaseUtil.FormatSQLIntegerField(nActo3)+","+
+ DataBaseUtil.FormatSQLStringField(sDU) +","+
+ DataBaseUtil.FormatSQLStringField(sVol) +","+
+ DataBaseUtil.FormatSQLStringField(sFechaHoraAut) +","+
+ DataBaseUtil.FormatSQLStringField(sNumRef) +","+
+ DataBaseUtil.FormatSQLStringField(sNumFactura) +","+
+ DataBaseUtil.FormatSQLStringField(sURLBoleta) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+ /****
+ * Actualiza en la BD Local una Autorizacion
+ * @param aut
+ * @return
+ */
+ public int updateInLocal(Autorizacion aut){
+ return updateInLocal(aut.getID_TER(),aut.getID_TIMESTAMP(),aut.getESTADO(),aut.getDESCRIPCION());
+ }
+
+ /****
+ * @param nIdTer
+ * @param sTimestamp
+ * @param sEstado
+ * @param sDesc
+ * @return
+ */
+ private int updateInLocal(int nIdTer,String sTimestamp,String sEstado,String sDesc){
+ int nRetorno=-1;
+ try{
+ if(nIdTer>0 && sTimestamp!=null){
+ String sSQL="UPDATE "+TABLENAME+" SET " +
+ "ESTADO=" + DataBaseUtil.FormatSQLStringField(sEstado)+
+ ",DESCRIPCION="+ DataBaseUtil.FormatSQLStringField(sDesc)+
+ ",FECHA_OP=CURRENT_TIMESTAMP " +
+ "WHERE "+
+ "ID_TER="+DataBaseUtil.FormatSQLIntegerField(nIdTer)+" AND "+
+ "ID_TIMESTAMP="+DataBaseUtil.FormatSQLStringField(sTimestamp) ;
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ int nRetorno= LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_TER\" int NOT NULL," +
+ "\"ID_TIMESTAMP\" VARCHAR(26) NOT NULL," +
+ "\"AUTTYPE\" VARCHAR(2) NOT NULL," +
+ "\"ESTADO\" VARCHAR(26)," +
+ "\"DESCRIPCION\" VARCHAR(256) NOT NULL," +
+ "\"FECHA_OP\" TIMESTAMP NOT NULL," +
+ "\"TARJETA\" VARCHAR(28)," +
+ "\"FALTA_TAR\" VARCHAR(4)," +
+ "\"FBAJA_TAR\" VARCHAR(4)," +
+ "\"COBERTURA_TAR\" VARCHAR(4)," +
+ "\"VERSION_TAR\" VARCHAR(4)," +
+ "\"ID_COMP\" int," +
+ "\"ID_ESPE\" int," +
+ "\"ID_PROF\" VARCHAR(12)," +
+ "\"ID_LACTOS\" int," +
+ "\"ID_ACTO1\" int," +
+ "\"ID_ACTO2\" int," +
+ "\"ID_ACTO3\" int," +
+ "\"DU\" VARCHAR(18)," +
+ "\"VOL\" VARCHAR(18)," +
+ "\"FECHAHORAAUT\" VARCHAR(12)," +
+ "\"NUMREF\" VARCHAR(10)," +
+ "\"NUMFACTURA\" VARCHAR(16)," +
+ "\"URLBOLETA\" VARCHAR(512)," +
+ " PRIMARY KEY (ID_TER, ID_TIMESTAMP)"+
+ ")"
+ );
+ //Creo indices
+ LocalDatabaseControl.getInstance().executeUpdate("CREATE INDEX FECHA_OPIndex ON "+TABLENAME+"(FECHA_OP)");
+ LocalDatabaseControl.getInstance().executeUpdate("CREATE INDEX ID_PROFIndex ON "+TABLENAME+"(ID_PROF)");
+ LocalDatabaseControl.getInstance().executeUpdate("CREATE INDEX TARJETAIndex ON "+TABLENAME+"(TARJETA)");
+ LocalDatabaseControl.getInstance().executeUpdate("CREATE INDEX TER_ESTADO_Index ON "+TABLENAME+"(ID_TER,ESTADO)");
+
+ repoblateTable();
+ return nRetorno;
+ }
+
+ public static void main(String args[]){
+ System.setProperty("configFiles","./conf/");
+ AutorizacionesBean bean=new AutorizacionesBean();
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ClsDBBase.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ClsDBBase.java
new file mode 100644
index 0000000..eb3d92f
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ClsDBBase.java
@@ -0,0 +1,47 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.sql.ResultSet;
+import es.chipcard.util.*;
+
+/*****
+ * Clase base de los objetos de acceso a Datos
+ * @author jjrider
+ *
+ */
+public abstract class ClsDBBase {
+ private static java.util.HashMap hshExistTable=new java.util.HashMap();
+
+ public ClsDBBase(){
+ checkExists();
+ }
+
+ public void checkExists(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public abstract String getTableName();
+
+ protected abstract int createLocalTable();
+
+ public boolean tableExistLocally(){
+ if(hshExistTable.containsKey(getTableName()))
+ return true;
+ boolean blnRetorno=false;
+ ResultSet rs=LocalDatabaseControl.getInstance().getQuery("SELECT * FROM SYS.SYSTABLES WHERE TABLENAME='"+getTableName()+"'");
+ if(rs!=null){
+ try{
+ if(rs.next()){
+ blnRetorno=true;
+ hshExistTable.put(getTableName(),getTableName());
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ LocalDatabaseControl.forceClose(rs);
+ return blnRetorno;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitaria.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitaria.java
new file mode 100644
index 0000000..8794345
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitaria.java
@@ -0,0 +1,44 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+public class CompaniaSanitaria {
+
+ private String sNombreCompania=null;
+ private int nCodigoCompania=-1;
+
+ /**
+ * @return
+ */
+ public int getCodigoCompania() {
+ return nCodigoCompania;
+ }
+
+ /**
+ * @return
+ */
+ public String getNombreCompania() {
+ return sNombreCompania;
+ }
+
+ /**
+ * @param string
+ */
+ public void setCodigoCompania(int n) {
+ nCodigoCompania = n;
+ }
+
+ /**
+ * @param string
+ */
+ public void setNombreCompania(String string) {
+ sNombreCompania = string;
+ }
+
+ public String toString(){
+ return getCodigoCompania()+" - "+getNombreCompania();
+ }
+
+ public String toXML(){
+ return ""+getCodigoCompania()+"";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitariaBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitariaBean.java
new file mode 100644
index 0000000..a794fda
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/CompaniaSanitariaBean.java
@@ -0,0 +1,135 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class CompaniaSanitariaBean extends ClsDBBase{
+ public static String TABLENAME="COMPANIA_SANITARIA";
+
+ public CompaniaSanitariaBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getCompaniasSanitarias(){
+ String sSQL="SELECT * FROM "+TABLENAME+" ORDER BY NOMBRE_COMP";
+ return getCompaniasSanitarias(sSQL);
+ }
+
+
+ public CompaniaSanitaria getCompaniaSanitariaById(int nID){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_COMP="+nID;
+ Vector vEL=getCompaniasSanitarias(sSQL);
+ if(vEL.size()==0)
+ return null;
+ else
+ return (CompaniaSanitaria)vEL.firstElement();
+ }
+
+ public Vector getCompaniaSanitariaByTerminal(int nTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_COMP IN (SELECT DISTINCT(ID_COMP) FROM "+ActoMedicoBean.TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+") ORDER BY NOMBRE_COMP";
+ return getCompaniasSanitarias(sSQL);
+
+ }
+
+ public Vector getCompaniaSanitariaByTerminalAndProfesional(int nTer,String sProf){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_COMP IN (SELECT DISTINCT(ID_COMP) FROM "+ActoMedicoBean.TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+" AND ID_PROF="+DataBaseUtil.FormatSQLStringField(sProf)+") ORDER BY NOMBRE_COMP";
+ return getCompaniasSanitarias(sSQL);
+
+ }
+
+ private java.util.Vector getCompaniasSanitarias(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getCompaniasSanitarias(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+ private CompaniaSanitaria getCompaniasSanitarias(java.sql.ResultSet rs){
+ CompaniaSanitaria obj=new CompaniaSanitaria();
+ try{
+ obj.setCodigoCompania(rs.getInt("ID_COMP"));
+ obj.setNombreCompania(rs.getString("NOMBRE_COMP"));
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+
+
+ public int insertInLocal(CompaniaSanitaria objCompaniaSanitaria){
+ return insertInLocal(objCompaniaSanitaria.getCodigoCompania(),objCompaniaSanitaria.getNombreCompania());
+ }
+
+ private int insertInLocal(int CodCompSanitaria,String sNombre){
+ int nRetorno=-1;
+ try{
+ if(CodCompSanitaria>0){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_COMP," +
+ "NOMBRE_COMP" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(CodCompSanitaria)+","+
+ DataBaseUtil.FormatSQLStringField(sNombre) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+ private void repoblateTable(){
+ insertInLocal(2,"ALIANCA");
+ insertInLocal(90,"MCS-IMECO");
+ insertInLocal(100,"MAPFRE CAJA SALUD");
+ insertInLocal(300,"DKV SEGUROS");
+ insertInLocal(340,"SANITAS SERVICIOS");
+ insertInLocal(360,"SANITAS");
+ insertInLocal(440,"I.M.Q.");
+ insertInLocal(460,"ADESLAS");
+ insertInLocal(550,"I.C.A.M.");
+ insertInLocal(560,"MUTUA DE TERRASSA");
+ insertInLocal(600,"AGRUPACION MUTUA");
+ insertInLocal(680,"ALLIANZ");
+ insertInLocal(690,"AXA");
+ insertInLocal(700,"SERSANET");
+ insertInLocal(770,"H.N.A.");
+ insertInLocal(790,"H.N.A. S.C.");
+ insertInLocal(820,"CASER");
+ insertInLocal(840,"A.X.A.-WINTERTHUR");
+ insertInLocal(850,"CIGNA");
+ insertInLocal(999,"CHIP CARD SALUD");
+ insertInLocal(260,"M. GENERAL CATALUNYA");
+ }
+
+ protected int createLocalTable(){
+ int nCreation=LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_COMP\" int NOT NULL primary key ," +
+ "\"NOMBRE_COMP\" VARCHAR(255) NOT NULL" +
+ ")"
+ );
+ repoblateTable();
+ return nCreation;
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/DataBaseUtil.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/DataBaseUtil.java
new file mode 100644
index 0000000..2ed340c
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/DataBaseUtil.java
@@ -0,0 +1,81 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import es.chipcard.util.SerClsFecha;
+
+public class DataBaseUtil {
+ private static String sTimestampFormatDB=null;
+ private static java.text.DecimalFormat objPesoFormatter= null;
+
+ public static String getCurrentDateForDB(){
+ SerClsFecha objFecha=new SerClsFecha();
+ String sTS=objFecha.toString(getTimestampFormatForDB());
+ while(sTS.length()"+getCodigoEspecialidad()+"";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/EspecialidadSanitariaBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/EspecialidadSanitariaBean.java
new file mode 100644
index 0000000..da7f363
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/EspecialidadSanitariaBean.java
@@ -0,0 +1,214 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class EspecialidadSanitariaBean extends ClsDBBase{
+ public static String TABLENAME="ESPECIALIDADSANITARIA";
+
+ public EspecialidadSanitariaBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getEspecialidadesSanitarias(){
+ String sSQL="SELECT * FROM "+TABLENAME+" ORDER BY NOMBRE_ESPE";
+ return getEspecialidadesSanitarias(sSQL);
+ }
+
+
+ public EspecialidadSanitaria getEspecialidadSanitariaById(int nID){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE="+nID;
+ Vector vEL=getEspecialidadesSanitarias(sSQL);
+ if(vEL.size()==0)
+ return null;
+ else
+ return (EspecialidadSanitaria)vEL.firstElement();
+ }
+
+ public Vector getEspecialidadesSanitariasByTerminal(int nTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE IN (SELECT DISTINCT(ID_ESPE) FROM "+ActoMedicoBean.TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+") ORDER BY NOMBRE_ESPE";
+ return getEspecialidadesSanitarias(sSQL);
+
+ }
+
+ public Vector getEspecialidadesSanitariasByTerminalAndProfesional(int nTer,String sProf){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE IN (SELECT DISTINCT(ID_ESPE) FROM "+ActoMedicoBean.TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+" AND ID_PROF="+DataBaseUtil.FormatSQLStringField(sProf)+") ORDER BY NOMBRE_ESPE";
+ return getEspecialidadesSanitarias(sSQL);
+
+ }
+
+
+
+
+ private java.util.Vector getEspecialidadesSanitarias(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getEspecialidadesSanitarias(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+ private EspecialidadSanitaria getEspecialidadesSanitarias(java.sql.ResultSet rs){
+ EspecialidadSanitaria obj=new EspecialidadSanitaria();
+ try{
+ obj.setCodigoEspecialidad(rs.getInt("ID_ESPE"));
+ obj.setNombreEspecialidad(rs.getString("NOMBRE_ESPE"));
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+ private void repoblateTable(){
+ insertInLocal(1,"MEDICINA GENERAL");
+ insertInLocal(2,"PEDIATRIA");
+ insertInLocal(3,"ALERGOLOGIA");
+ insertInLocal(4,"ANALISIS CLINICOS");
+ insertInLocal(5,"ANATOMIA PATOLOGICA");
+ insertInLocal(6,"ANESTESIA/REANIMACIO");
+ insertInLocal(7,"ANGIOLOGIA/CIR.VASCU");
+ insertInLocal(8,"APARATO DIGESTIVO");
+ insertInLocal(9,"CARDIOLOGIA");
+ insertInLocal(10,"CIRUG.CARDIOVASCULAR");
+ insertInLocal(11,"CIR.GENERAL/AP.DIGES");
+ insertInLocal(12,"CIRUGIA MAXILOFACIAL");
+ insertInLocal(13,"CIRUGIA PEDIATRICA");
+ insertInLocal(14,"CIR.PLASTICA/REPARAD");
+ insertInLocal(15,"CIRUGIA TORACICA");
+ insertInLocal(16,"DERMATOLOGIA");
+ insertInLocal(17,"DIAGNOST. POR IMAGEN");
+ insertInLocal(18,"ENDOCRINO Y NUTRICIO");
+ insertInLocal(19,"ESTOMATOLOGIA");
+ insertInLocal(20,"GERIATRIA");
+ insertInLocal(21,"HEMATOLOGIA/HEMOTERA");
+ insertInLocal(22,"INMUNOLOGIA");
+ insertInLocal(23,"MEDICINA INTENSIVA");
+ insertInLocal(24,"MEDICINA INTERNA");
+ insertInLocal(25,"MEDICINA NUCLEAR");
+ insertInLocal(26,"NEFROLOGIA");
+ insertInLocal(27,"NEUMOLOGIA");
+ insertInLocal(28,"NEUROCIRUGIA");
+ insertInLocal(29,"NEUROFISIOLOG.CLINIC");
+ insertInLocal(30,"NEUROLOGIA");
+ insertInLocal(31,"OBSTETRICIA/GINECOL.");
+ insertInLocal(32,"OFTALMOLOGIA");
+ insertInLocal(33,"ONCOLOGIA MEDICA");
+ insertInLocal(34,"ONCOLOGIA RADIOTERAP");
+ insertInLocal(35,"OTORRINOLARINGOLOGIA");
+ insertInLocal(36,"PSIQUIATRIA");
+ insertInLocal(37,"REHABILITACION");
+ insertInLocal(38,"REUMATOLOGIA");
+ insertInLocal(39,"TRATAMIENTO DE DOLOR");
+ insertInLocal(40,"TRAUMAT.Y ORTOPEDIA");
+ insertInLocal(41,"UROLOGIA");
+ insertInLocal(42,"LOGOPEDIA");
+ insertInLocal(43,"MEDICINA DEL TRABAJO");
+ insertInLocal(44,"AYUDANTE QUIRURGICO");
+ insertInLocal(45,"HOSPITALIZACION");
+ insertInLocal(46,"DIETETICA");
+ insertInLocal(47,"OPTICA Y AUDIOLOGIA");
+ insertInLocal(48,"MEDICINA DEPORTIVA");
+ insertInLocal(49,"MEDICINA ESPACIAL");
+ insertInLocal(50,"ENFERMERIA");
+ insertInLocal(51,"FISIOTERAPEUTAS");
+ insertInLocal(52,"MATRONAS");
+ insertInLocal(53,"PODOLOGIA");
+ insertInLocal(54,"URGENCIAS");
+ insertInLocal(55,"URGENC.DE ENFERMERIA");
+ insertInLocal(56,"FARMACIA");
+ insertInLocal(57,"MEDICINAS COMPLEMENT");
+ insertInLocal(58,"LOGOFONIATRIA");
+ insertInLocal(59,"ACUPUNTURA");
+ insertInLocal(60,"DIALISIS");
+ insertInLocal(61,"HOSPIT.EN DOMICILIO");
+ insertInLocal(62,"LITOTRICIA");
+ insertInLocal(63,"PREPARACION AL PARTO");
+ insertInLocal(64,"PSICOLOGIA");
+ insertInLocal(65,"PUERICULTURA");
+ insertInLocal(66,"REPRODUCCION ASISTID");
+ insertInLocal(67,"SALUD INFANTIL");
+ insertInLocal(68,"URG. HOSPITALARIAS");
+ insertInLocal(69,"URG.NO HOSPITALARIAS");
+ insertInLocal(70,"ESTOM.SERV.DENTALES");
+ insertInLocal(71,"ESTOMAT. INFANTIL");
+ insertInLocal(72,"IMPLANTOLOGIA ORAL");
+ insertInLocal(73,"ORTODONCIA");
+ insertInLocal(74,"SERV.DE CIRUGIA ORAL");
+ insertInLocal(75,"SERV.HIGIENE DENTAL");
+ insertInLocal(76,"TRATAM.ENDODONCIA");
+ insertInLocal(77,"URGENCIAS DENTALES");
+ insertInLocal(78,"PERIODONCIA");
+ insertInLocal(79,"ESTETICA DENTAL");
+ insertInLocal(80,"AMBULANCIAS");
+ insertInLocal(81,"OXIGENOTERAP.VENTILO");
+ insertInLocal(82,"PROTESIS");
+ insertInLocal(83,"POLIZA DENTAL");
+ insertInLocal(85,"RADIOLOGIA MAXILOFAC");
+ insertInLocal(86,"EUROP ASSISTANCE");
+ insertInLocal(87,"SANATORIOS");
+ insertInLocal(89,"CENTRO HOSPITALARIO");
+ insertInLocal(90,"DIAGNOSTICOS MEDICOS");
+ insertInLocal(91,"POLICLINICAS");
+ insertInLocal(92,"ECO-DOPPLER");
+ insertInLocal(93,"RESONANCIA MAGNETICA");
+ insertInLocal(94,"SCANNER");
+ insertInLocal(95,"ENTIDAD REASEGURADOR");
+ insertInLocal(96,"RADIOLOGIA INTERVENC");
+ insertInLocal(97,"DENSITOMETRIA OSEA");
+ insertInLocal(99,"ESPECIALIDAD COMODIN");
+ insertInLocal(999,"ESPE. GENERICA");
+ }
+
+ public int insertInLocal(EspecialidadSanitaria objEspecialidadSanitaria){
+ return insertInLocal(objEspecialidadSanitaria.getCodigoEspecialidad(),objEspecialidadSanitaria.getNombreEspecialidad());
+ }
+
+ private int insertInLocal(int sCode,String sNombre){
+ int nRetorno=-1;
+ try{
+ if(sCode>0){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_ESPE," +
+ "NOMBRE_ESPE" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(sCode)+","+
+ DataBaseUtil.FormatSQLStringField(sNombre) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ int nRetorno= LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_ESPE\" int NOT NULL primary key ," +
+ "\"NOMBRE_ESPE\" VARCHAR(255) NOT NULL" +
+ ")"
+ );
+ repoblateTable();
+ return nRetorno;
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActos.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActos.java
new file mode 100644
index 0000000..fe97e0a
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActos.java
@@ -0,0 +1,101 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+public class ListaActos {
+ private CompaniaSanitaria objComp=null;
+ private EspecialidadSanitaria objEspe=null;
+ private int nEspecialidad=-1;
+ private int nComp=-1;
+ private int nCodigoListaActos=-1;
+ private String nNombreListaActos=null;
+ /**
+ * @return
+ */
+ public int getCodigoListaActos() {
+ return nCodigoListaActos;
+ }
+
+ /**
+ * @return
+ */
+ public String getNombreListaActos() {
+ return nNombreListaActos;
+ }
+
+ /**
+ * @return
+ */
+ public CompaniaSanitaria getCompaniaSanitaria() {
+ return objComp;
+ }
+
+ /**
+ * @return
+ */
+ public EspecialidadSanitaria getEspecialidadSanitaria() {
+ return objEspe;
+ }
+
+ /**
+ * @param i
+ */
+ public void setCodigoListaActos(int i) {
+ nCodigoListaActos = i;
+ }
+
+ /**
+ * @param string
+ */
+ public void setNombreListaActos(String string) {
+ nNombreListaActos = string;
+ }
+
+ /**
+ * @param sanitaria
+ */
+ public void setCompaniaSanitaria(CompaniaSanitaria sanitaria) {
+ objComp = sanitaria;
+ }
+
+ /**
+ * @param sanitaria
+ */
+ public void setEspecialidadSanitaria(EspecialidadSanitaria sanitaria) {
+ objEspe = sanitaria;
+ }
+
+ /**
+ * @return
+ */
+ public int getCodigoCompania() {
+ return nComp;
+ }
+
+ /**
+ * @return
+ */
+ public int getCodigoEspecialidad() {
+ return nEspecialidad;
+ }
+
+ /**
+ * @param i
+ */
+ public void setCodigoCompania(int i) {
+ nComp = i;
+ }
+
+ /**
+ * @param i
+ */
+ public void setCodigoEspecialidad(int i) {
+ nEspecialidad = i;
+ }
+
+ public String toString(){
+ return getCodigoListaActos()+" - "+getNombreListaActos();
+ }
+
+ public String toXML(){
+ return ""+getCodigoListaActos()+"";
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosActo.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosActo.java
new file mode 100644
index 0000000..d719efe
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosActo.java
@@ -0,0 +1,30 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+/*****
+ * Relacion entre la lista de actos y los actos mdicos que la componen
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class ListaActosActo extends ListaActos{
+ private ActoMedico objActo=null;
+
+
+ /**
+ * @return
+ */
+ public ActoMedico getActo() {
+ return objActo;
+ }
+
+ /**
+ * @param medico
+ */
+ public void setActo(ActoMedico medico) {
+ objActo = medico;
+ }
+
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosBean.java
new file mode 100644
index 0000000..e39ce65
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ListaActosBean.java
@@ -0,0 +1,123 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class ListaActosBean extends ClsDBBase{
+ public static String TABLENAME="LISTA_ACTOS";
+
+ public ListaActosBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getListaActos(){
+ String sSQL="SELECT * FROM "+TABLENAME+" ORDER BY NOMBRE_LACTOS";
+ return getListaActos(sSQL);
+ }
+
+
+ public Vector getListaActosByCompAndEspe(int nIDComp,int nIDEspe){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE="+nIDEspe+" AND ID_COMP="+nIDComp+" ORDER BY NOMBRE_LACTOS";
+ return getListaActos(sSQL);
+ }
+
+ public ListaActos getListaActosByCompAndEspeAndIDLActos(int nIDComp,int nIDEspe, int lactos){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_ESPE="+nIDEspe+" AND ID_COMP="+nIDComp+" AND ID_LACTOS="+lactos+" ORDER BY NOMBRE_LACTOS";
+ Vector vLActos=getListaActos(sSQL);
+ if(vLActos!=null){
+ if(vLActos.size()>0){
+ return (ListaActos)vLActos.firstElement();
+ }
+ }
+ return null;
+ }
+
+
+
+ private java.util.Vector getListaActos(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getListaActos(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+
+
+ private ListaActos getListaActos(java.sql.ResultSet rs){
+ ListaActos obj=new ListaActos();
+ try{
+ obj.setCodigoCompania(rs.getInt("ID_COMP"));
+ obj.setCodigoEspecialidad(rs.getInt("ID_ESPE"));
+ obj.setCodigoListaActos(rs.getInt("ID_LACTOS"));
+ obj.setNombreListaActos(rs.getString("NOMBRE_LACTOS"));
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+ private void repoblateTable(){
+
+ }
+
+ public int insertInLocal(ListaActos objListaActos){
+ return insertInLocal(objListaActos.getCodigoCompania(),objListaActos.getCodigoEspecialidad(),objListaActos.getCodigoListaActos(),objListaActos.getNombreListaActos());
+ }
+
+ private int insertInLocal(int sCodComp,int sCodEspe,int sCode,String sNombre){
+ int nRetorno=-1;
+ try{
+ if(sCodComp>0 && sCodEspe>0 && sCode>0){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_COMP," +
+ "ID_ESPE," +
+ "ID_LACTOS," +
+ "NOMBRE_LACTOS" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(sCodComp)+","+
+ DataBaseUtil.FormatSQLIntegerField(sCodEspe)+","+
+ DataBaseUtil.FormatSQLIntegerField(sCode)+","+
+ DataBaseUtil.FormatSQLStringField(sNombre) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ int nRetorno= LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_COMP\" int NOT NULL," +
+ "\"ID_ESPE\" int NOT NULL," +
+ "\"ID_LACTOS\" int NOT NULL," +
+ "\"NOMBRE_LACTOS\" VARCHAR(100) NOT NULL," +
+ " PRIMARY KEY (ID_COMP,ID_ESPE,ID_LACTOS)"+
+ ")"
+ );
+ repoblateTable();
+ return nRetorno;
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/LocalDatabaseControl.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/LocalDatabaseControl.java
new file mode 100644
index 0000000..931cbea
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/LocalDatabaseControl.java
@@ -0,0 +1,243 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.sql.*;
+import es.chipcard.util.*;
+
+public class LocalDatabaseControl {
+ private Connection objCon=null;
+ private static LocalDatabaseControl I=null;
+
+ public static LocalDatabaseControl getInstance(){
+ if(I==null){
+ I=new LocalDatabaseControl();
+ I.init();
+ }
+ return I;
+ }
+
+ private void init(){
+ try{
+ Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+
+ public Connection getConnection(){
+ if(objCon==null){
+ try{
+ String protocol = "jdbc:derby:";
+ java.util.Properties props = new java.util.Properties();
+ props.put("user","admin");
+ props.put("password","admin");
+ objCon = DriverManager.getConnection(protocol + getDBName()+";create=true",props);
+ }catch(Exception err){
+ SerClsDebug.aLog(err.getMessage());
+ }
+ }
+ return objCon;
+ }
+
+ private static String getDBName(){
+ String sRetorno="localDB";
+ return sRetorno;
+ }
+
+ public static void shutdown(){
+ try{
+ forceClose(getInstance().objCon);
+ //DriverManager.getConnection("jdbc:derby:"+getDBName()+";shutdown=true");
+ }catch(Throwable th){
+ SerClsDebug.aLog("Error shutting down Local Database:"+th.getMessage());
+ //th.printStackTrace();
+ }
+ }
+
+ public static void forceClose(Statement stmt){
+ try{
+ stmt.close();
+ }catch(Exception e){}
+ }
+ public static void forceClose(ResultSet rs){
+ try{
+ rs.close();
+ }catch(Exception e){}
+ }
+
+ private static void forceClose(Connection con){
+ try{
+ if(con!=null)
+ con.close();
+ }catch(Exception e){}
+ }
+ /**
+ * Metodo para INSERT, UPDATE y DELETE
+ * Devuelve el numero de filas afectadas o -1 si hubo error
+ * @param strUpdate
+ * @return
+ */
+ public int executeUpdate(String strUpdate){
+ Connection con=getConnection();
+ int intRetorno=executeUpdate(strUpdate, con);
+ //forceClose(con);
+ return intRetorno;
+ }
+
+ public int executeUpdate(String strUpdate,Connection con){
+ int intRetorno=executeUpdate(strUpdate,null,con);
+ return intRetorno;
+ }
+
+ public int executeUpdate(String strUpdate,java.io.StringWriter s){
+ Connection con=null;
+ return executeUpdate(strUpdate,s, con);
+ }
+
+ public int executeUpdate(String strUpdate,java.io.StringWriter s,Connection con){
+ int intRetorno=-1;
+ //Connection con=null;
+ Statement stmt=null;
+ try{
+ if(con==null)
+ con=getConnection();
+ if(con!=null){
+ stmt=con.createStatement();
+ SerClsDebug.aLog("LocalDatabaseUpdate:"+strUpdate);
+ intRetorno=stmt.executeUpdate(strUpdate);
+ }
+ }catch(Exception e){
+ if(s==null){
+ e.printStackTrace();
+ }else{
+ java.io.PrintWriter p=new java.io.PrintWriter(s);
+ p.println("Error al ejecutar: "+strUpdate);
+ e.printStackTrace(p);
+ }
+ }finally{
+ forceClose(stmt);
+ }
+ return intRetorno;
+ }
+
+
+ public boolean executeProcedure(String strUpdate){
+ boolean blnRetorno=executeProcedure(strUpdate, null);
+ return blnRetorno;
+ }
+
+ public boolean executeProcedure(String strCall,java.io.StringWriter s){
+ boolean blnRetorno=false;
+ CallableStatement cs=null;
+ ResultSet rs=null;
+ Connection con=getConnection();
+ boolean blnKeepConnectionOpened=false;
+ try{
+ cs = con.prepareCall(strCall);
+ cs.execute();
+ cs.close();
+ blnRetorno = true;
+ }catch(Exception e){
+ if(s==null){
+ e.printStackTrace();
+ }else{
+ java.io.PrintWriter p=new java.io.PrintWriter(s);
+ p.println("Error al ejecutar: " + strCall);
+ e.printStackTrace(p);
+ }
+ }finally{
+ forceClose(rs);
+ forceClose(cs);
+ }
+ return blnRetorno;
+ }
+
+ /**
+ * Realiza una select y devuelve el resultado como un arraylist
+ * de contenido un String[] por fila
+ * */
+ public ResultSet getQuery(String strQuery){
+ Statement stmt=null;
+ ResultSet rs=null;
+ try{
+ SerClsDebug.aLog("LocalDatabaseQuery:"+strQuery);
+ stmt=getConnection().createStatement();
+ rs=stmt.executeQuery(strQuery);
+ }catch(Exception e){
+ SerClsDebug.aLog(e);
+ }finally{
+ }
+ return rs;
+ }
+
+
+ public String[] getFieldsOfTable(String strTablename,Connection con){
+ String arrFields[]=null;
+ Statement stmt=null;
+ ResultSet rs=null;
+ String strQuery=null;
+ if(strTablename.toUpperCase().startsWith("SELECT ")){
+ strQuery=strTablename;
+ SerClsDebug.aLog("LocaDatabaseQuery:"+strQuery);
+ }else{
+ strQuery="SELECT * FROM "+strTablename+" WHERE 1<>0";
+ }
+ try{
+ if(con==null)
+ con=getConnection();
+ stmt=con.createStatement();
+ rs=stmt.executeQuery(strQuery);
+ arrFields=getColumnNames(rs);
+ }catch(Exception e){
+ SerClsDebug.aLog(e);
+ }finally{
+ forceClose(rs);
+ forceClose(stmt);
+ }
+ return arrFields;
+ }
+
+ public String[] getColumnNames(ResultSet rs){
+ String arrNombresColumnas[]=null;
+ try {
+ ResultSetMetaData rsmd = rs.getMetaData();
+ int nColumns = rsmd.getColumnCount();
+ System.out.println("Hay "+nColumns+" columnas");
+ //HashMap h = null;
+ String arrFila[]=null;
+ arrNombresColumnas=new String[nColumns];
+ try{
+ //Se rellena la primera fila con los nombres de columnas
+ for(int column = 1; column<(nColumns+1); column++) {
+ int intColumnType = rsmd.getColumnType(column);
+ String strColumnName = rsmd.getColumnName(column);
+ arrNombresColumnas[column-1]=strColumnName;
+ System.out.println("Columna["+column+"]="+arrNombresColumnas[column-1]);
+ }
+ }catch(Exception e){}
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ return arrNombresColumnas;
+ }
+
+ public String getMetaData(Connection con){
+ StringBuffer buff=new StringBuffer();
+ try{
+ buff.append(""+con.getMetaData().getDatabaseProductName()+"");
+ buff.append(""+con.getMetaData().getMaxColumnsInSelect()+"");
+ buff.append(""+con.getMetaData().getMaxConnections()+"");
+ buff.append(""+con.getMetaData().getURL()+"");
+ ResultSet rs=con.createStatement().executeQuery("select TNAME from \"DB2eSYSTABLES\"");
+ while(rs.next()){
+ buff.append("\n"+rs.getString("TNAME")+"");
+ }
+ //buff.append(""+con.getMetaData().allTablesAreSelectable()+"");
+ }catch(Exception e){
+ buff.append(e.toString());
+ }
+ return buff.toString();
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Paciente.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Paciente.java
new file mode 100644
index 0000000..f50a16b
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/Paciente.java
@@ -0,0 +1,137 @@
+/*
+ * Creado el 12-feb-07
+ *
+ * Para cambiar la plantilla para este archivo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class Paciente {
+
+ private String sPista=null;
+ private String sTarjeta=null;
+ private String sFAlta=null;
+ private String sFBaja=null;
+ private String sCobertura=null;
+ private String sVersion=null;
+ /**
+ * @return
+ */
+ public String getCobertura() {
+ return sCobertura;
+ }
+
+ /**
+ * @return
+ */
+ public String getFAlta() {
+ return sFAlta;
+ }
+
+ /**
+ * @return
+ */
+ public String getFBaja() {
+ return sFBaja;
+ }
+
+ /**
+ * @return
+ */
+ public String getPista() {
+ return sPista;
+ }
+
+ /**
+ * @return
+ */
+ public String getTarjeta() {
+ return sTarjeta;
+ }
+
+ /**
+ * @return
+ */
+ public String getVersion() {
+ return sVersion;
+ }
+
+ /**
+ * @param string
+ */
+ public void setCobertura(String string) {
+ sCobertura = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setFAlta(String string) {
+ sFAlta = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setFBaja(String string) {
+ sFBaja = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setPista(String string) {
+ sPista = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setTarjeta(String string) {
+ sTarjeta = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setVersion(String string) {
+ sVersion = string;
+ }
+
+ public String toXML(){
+ if(getPista()!=null){
+ String sPistaHEXA=es.chipcard.util.SerClsUtilHexadecimal.toHexadecimal(getPista().getBytes());
+ return ""+sPistaHEXA+"";
+ }else{
+ if(getTarjeta()!=null){
+ StringBuffer buffer=new StringBuffer();
+ buffer.append("");
+ buffer.append("");
+ buffer.append(""+getTarjeta()+"");
+ if(getVersion()!=null){
+ buffer.append(""+getVersion()+"");
+ }
+ if(getCobertura()!=null){
+ buffer.append(""+getCobertura()+"");
+ }
+ if(getFAlta()!=null){
+ buffer.append(""+getFAlta()+"");
+ }
+ if(getFBaja()!=null){
+ buffer.append(""+getFBaja()+"");
+ }
+ buffer.append("");
+ buffer.append("");
+ return buffer.toString();
+ }
+ }
+ return "";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalDeTerminal.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalDeTerminal.java
new file mode 100644
index 0000000..5f3e7bd
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalDeTerminal.java
@@ -0,0 +1,39 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+/***
+ * Representa Un Profesional Sanitario de un determinado Terminal
+ * @author jjrider
+ */
+public class ProfesionalDeTerminal {
+
+ private ProfesionalSanitario objProf=null;
+ private TerminalSanitario objTer=null;
+ /**
+ * @return
+ */
+ public ProfesionalSanitario getProf() {
+ return objProf;
+ }
+
+ /**
+ * @return
+ */
+ public TerminalSanitario getTer() {
+ return objTer;
+ }
+
+ /**
+ * @param sanitario
+ */
+ public void setProf(ProfesionalSanitario sanitario) {
+ objProf = sanitario;
+ }
+
+ /**
+ * @param sanitario
+ */
+ public void setTer(TerminalSanitario sanitario) {
+ objTer = sanitario;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitario.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitario.java
new file mode 100644
index 0000000..dee2289
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitario.java
@@ -0,0 +1,44 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+public class ProfesionalSanitario {
+
+ private String sCodProfesional=null;
+ private String sNombreProfesional=null;
+
+ /**
+ * @return
+ */
+ public String getCodProfesional() {
+ return sCodProfesional;
+ }
+
+ /**
+ * @return
+ */
+ public String getNombreProfesional() {
+ return sNombreProfesional;
+ }
+
+ /**
+ * @param string
+ */
+ public void setCodProfesional(String string) {
+ sCodProfesional = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setNombreProfesional(String string) {
+ sNombreProfesional = string;
+ }
+
+ public String toString(){
+ return getCodProfesional()+" - "+getNombreProfesional();
+ }
+
+ public String toXML(){
+ return ""+getCodProfesional()+"";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitarioBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitarioBean.java
new file mode 100644
index 0000000..b96f8bf
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/ProfesionalSanitarioBean.java
@@ -0,0 +1,103 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class ProfesionalSanitarioBean extends ClsDBBase{
+ public static String TABLENAME="PROFESIONAL_SANITARIO";
+
+ public ProfesionalSanitarioBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+ public ProfesionalSanitario getProfesionalSanitariosByID(String sID){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_PROF='"+sID+"'";
+ Vector vProf=getProfesionalesSanitarios(sSQL);
+ if(vProf!=null){
+ if(vProf.size()>0)
+ return (ProfesionalSanitario)vProf.firstElement();
+ }
+ return null;
+ }
+ public java.util.Vector getProfesionalesSanitarios(){
+ String sSQL="SELECT * FROM "+TABLENAME+" ORDER BY NOMBRE_PROF";
+ return getProfesionalesSanitarios(sSQL);
+ }
+
+
+
+ public Vector getProfesionalesByTerminal(int nTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_PROF IN (SELECT DISTINCT(ID_PROF) FROM "+ActoMedicoBean.TABLENAME+" WHERE ID_TER="+DataBaseUtil.FormatSQLIntegerField(nTer)+") ORDER BY NOMBRE_PROF";
+ return getProfesionalesSanitarios(sSQL);
+
+ }
+
+
+ private java.util.Vector getProfesionalesSanitarios(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getProfesionalesSanitarios(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+
+ private ProfesionalSanitario getProfesionalesSanitarios(java.sql.ResultSet rs){
+ ProfesionalSanitario obj=new ProfesionalSanitario();
+ try{
+ obj.setCodProfesional(rs.getString("ID_PROF"));
+ obj.setNombreProfesional(rs.getString("NOMBRE_PROF"));
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+
+
+ public int insertInLocal(ProfesionalSanitario objProfesionalSanitario){
+ int nRetorno=-1;
+ try{
+ if(objProfesionalSanitario!=null){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_PROF," +
+ "NOMBRE_PROF" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLStringField(objProfesionalSanitario.getCodProfesional())+","+
+ DataBaseUtil.FormatSQLStringField(objProfesionalSanitario.getNombreProfesional()) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ return LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_PROF\" VARCHAR(12) NOT NULL primary key ," +
+ "\"NOMBRE_PROF\" VARCHAR(125) NOT NULL" +
+ ")"
+ );
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitario.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitario.java
new file mode 100644
index 0000000..adc97cd
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitario.java
@@ -0,0 +1,50 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+/**
+ * @author jjrider
+ *
+ * Para cambiar la plantilla para este comentario de tipo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+public class TerminalSanitario {
+
+ private int nTerminal=-1;
+
+ private boolean bTVA=false;
+ /**
+ * @return
+ */
+ public int getNumeroTerminal() {
+ return nTerminal;
+ }
+
+ /**
+ * @param i
+ */
+ public void setNumeroTerminal(int i) {
+ nTerminal = i;
+ }
+
+ /**
+ * @return
+ */
+ public boolean isTVA() {
+ return bTVA;
+ }
+
+ /**
+ * @param b
+ */
+ public void setTVA(boolean b) {
+ bTVA = b;
+ }
+
+ public String toString(){
+ return String.valueOf(getNumeroTerminal());
+ }
+
+ public String toXML(){
+ return ""+getNumeroTerminal()+"";
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitarioBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitarioBean.java
new file mode 100644
index 0000000..f07a1d8
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/TerminalSanitarioBean.java
@@ -0,0 +1,96 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class TerminalSanitarioBean extends ClsDBBase{
+ public static String TABLENAME="TERMINALSANITARIO";
+
+ public TerminalSanitarioBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getTerminalesSanitarios(){
+ String sSQL="SELECT * FROM "+TABLENAME;
+ return getTerminalesSanitarios(sSQL);
+ }
+
+
+ public TerminalSanitario getTerminalesSanitarios(int nID){
+ String sSQL="SELECT * FROM "+TABLENAME+" WHERE ID_TER='"+nID+"'";
+ Vector vEL=getTerminalesSanitarios(sSQL);
+ if(vEL.size()==0)
+ return null;
+ else
+ return (TerminalSanitario)vEL.firstElement();
+ }
+
+
+ private java.util.Vector getTerminalesSanitarios(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getTerminalesSanitarios(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+ public static TerminalSanitario getTerminalesSanitarios(java.sql.ResultSet rs){
+ TerminalSanitario obj=new TerminalSanitario();
+ try{
+ obj.setNumeroTerminal(rs.getInt("ID_TER"));
+ obj.setTVA(rs.getInt("TIPO_TER")!=0);
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+
+
+ public int insertInLocal(TerminalSanitario objTerminalSanitario){
+ int nRetorno=-1;
+ try{
+ if(objTerminalSanitario!=null){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "ID_TER," +
+ "TIPO_TER" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLIntegerField(objTerminalSanitario.getNumeroTerminal())+","+
+ DataBaseUtil.FormatSQLIntegerField(((objTerminalSanitario.isTVA())?1:0)) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ return LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"ID_TER\" int NOT NULL primary key ," +
+ "\"TIPO_TER\" int NOT NULL" +
+ ")"
+ );
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVS.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVS.java
new file mode 100644
index 0000000..d9ed0d2
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVS.java
@@ -0,0 +1,66 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+public class UsuarioTVS implements com.tarisan.chipcard.gui.IconizableObject{
+
+ private String sLogin=null;
+ private String sPassword=null;
+
+ private TerminalSanitario terminal=null;
+ private javax.swing.Icon userIcon=null;
+
+ /**
+ * @return
+ */
+ public String getLogin() {
+ return sLogin;
+ }
+
+ /**
+ * @return
+ */
+ public String getPassword() {
+ return sPassword;
+ }
+
+
+ /**
+ * @param string
+ */
+ public void setLogin(String string) {
+ sLogin = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setPassword(String string) {
+ sPassword = string;
+ }
+
+
+ public String toString(){
+ return getLogin();
+ }
+
+ public javax.swing.Icon getIcon(){
+ if(userIcon==null){
+ userIcon=null;
+ }
+ return userIcon;
+ }
+
+ /**
+ * @return
+ */
+ public TerminalSanitario getTerminal() {
+ return terminal;
+ }
+
+ /**
+ * @param sanitario
+ */
+ public void setTerminal(TerminalSanitario sanitario) {
+ terminal = sanitario;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVSBean.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVSBean.java
new file mode 100644
index 0000000..537272d
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/accesodatos/UsuarioTVSBean.java
@@ -0,0 +1,106 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos;
+
+import java.util.Vector;
+import es.chipcard.util.*;
+
+public class UsuarioTVSBean extends ClsDBBase{
+ public static String TABLENAME="USUARIO_TVS";
+
+ public UsuarioTVSBean(){
+ if(!tableExistLocally()){
+ createLocalTable();
+ }
+ }
+
+ public String getTableName(){
+ return TABLENAME;
+ }
+
+
+ public java.util.Vector getUsuariosTVS(){
+ String sSQL="SELECT * FROM "+TABLENAME+" A ,"+TerminalSanitarioBean.TABLENAME+" B WHERE A.ID_TER=B.ID_TER" ;
+ return getUsuariosTVS(sSQL);
+ }
+
+ public java.util.Vector getUsuariosTVSOfTerminal(int nIDTer){
+ String sSQL="SELECT * FROM "+TABLENAME+" A ,"+TerminalSanitarioBean.TABLENAME+" B WHERE A.ID_TER=B.ID_TER AND A.ID_TER="+nIDTer;
+ return getUsuariosTVS(sSQL);
+ }
+
+
+ public UsuarioTVS getUsuarioTVS(String sLogin){
+ String sSQL="SELECT * FROM "+TABLENAME+" A ,"+TerminalSanitarioBean.TABLENAME+" B WHERE A.ID_TER=B.ID_TER AND LOGIN='"+sLogin+"'";
+ Vector vEL=getUsuariosTVS(sSQL);
+ if(vEL.size()==0)
+ return null;
+ else
+ return (UsuarioTVS)vEL.firstElement();
+ }
+
+
+ private java.util.Vector getUsuariosTVS(String sSQL){
+ java.util.Vector v=new java.util.Vector();
+ java.sql.ResultSet rs=null;
+ if(rs==null){
+ rs=LocalDatabaseControl.getInstance().getQuery(sSQL);
+ }
+ if(rs!=null){
+ try{
+ while(rs.next()){
+ v.addElement(getUsuariosTVS(rs));
+ }
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ }
+ return v;
+ }
+
+ private UsuarioTVS getUsuariosTVS(java.sql.ResultSet rs){
+ UsuarioTVS obj=new UsuarioTVS();
+ try{
+ obj.setLogin(rs.getString("LOGIN"));
+ obj.setPassword(rs.getString("PASSWORD"));
+ TerminalSanitario ter=TerminalSanitarioBean.getTerminalesSanitarios(rs);
+ obj.setTerminal(ter);
+ }catch(Exception err){
+ SerClsDebug.aLog(err);
+ }
+ return obj;
+ }
+
+
+
+
+ public int insertInLocal(UsuarioTVS objUsuarioTVS){
+ int nRetorno=-1;
+ try{
+ if(objUsuarioTVS!=null){
+ String sSQL="INSERT INTO "+TABLENAME+"(" +
+ "LOGIN," +
+ "PASSWORD," +
+ "ID_TER" +
+ ") "+
+ "VALUES (" +
+ DataBaseUtil.FormatSQLStringField(objUsuarioTVS.getLogin())+","+
+ DataBaseUtil.FormatSQLStringField(objUsuarioTVS.getPassword()) + ","+
+ DataBaseUtil.FormatSQLIntegerField(objUsuarioTVS.getTerminal().getNumeroTerminal()) +
+ ")";
+ nRetorno=LocalDatabaseControl.getInstance().executeUpdate(sSQL);
+ }
+ }catch(Exception err){SerClsDebug.aLog(err);}
+ return nRetorno;
+ }
+
+
+
+ protected int createLocalTable(){
+ return LocalDatabaseControl.getInstance().executeUpdate(
+ "CREATE TABLE \""+TABLENAME+"\" (" +
+ "\"LOGIN\" VARCHAR(12) NOT NULL primary key ," +
+ "\"PASSWORD\" VARCHAR(12) NOT NULL," +
+ "\"ID_TER\" int NOT NULL" +
+ ")"
+ );
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/AnulReq.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/AnulReq.java
new file mode 100644
index 0000000..041a0a0
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/AnulReq.java
@@ -0,0 +1,12 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;;
+/**
+ * @author jjrider
+ */
+public class AnulReq extends CCReq{
+ public AnulReq(int nTerminal,String sTimestamp,UsuarioTVS user) throws Exception{
+ super(""+nTerminal+""+sTimestamp+"",user);
+ }
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Aut.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Aut.java
new file mode 100644
index 0000000..5562749
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Aut.java
@@ -0,0 +1,103 @@
+/*
+ * Creado el 15-feb-07
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.*;
+import es.chipcard.util.*;
+import org.w3c.dom.*;
+/**
+ * Simboliza un elemento 'Aut' dentro de un 'AutRes'
+ * @author jjrider
+ */
+public class Aut {
+ private Element xmlAutElement=null;
+ private int ActosMedicos[]=null;
+
+ protected Aut(Element xmlAutElement){
+ this.xmlAutElement=xmlAutElement;
+ NodeList nl=xmlAutElement.getElementsByTagName("acto");
+ ActosMedicos=new int[nl.getLength()];
+ for(int i=0;i"+sTipoOperacion+""+user.getTerminal().toXML()+((paciente!=null)?paciente.toXML():"")+comp.toXML()+((espe!=null)?espe.toXML():"")+prof.toXML()+objLA.toXML()+"",user);
+ if(arrActos!=null){
+ for(int i=0;i0){
+ arrAut=new Aut[nl.getLength()];
+ for(int i=0;i"+sReqType+"");
+ setAutenticacionByLP(user);
+ }
+
+ public int getTypeOfMessage(){
+ return this.TYPE_OF_MESSAGE_CCREQ;
+ }
+
+ protected Element getCCReq(){
+ return SerClsXMLUtils.dameElemento(getDocument().getDocumentElement(),"CCReq");
+ }
+
+ public void setDatosCliente(String sData){
+ Element xmlEl=SerClsXMLUtils.dameElemento(getCCReq(),"DatosCliente");
+ if(xmlEl!=null){
+ SerClsXMLUtils.cambiaValorEl(xmlEl,sData);
+ }else{
+ SerClsXMLUtils.insertaElementoValor(getCCReq(),"DatosCliente",sData);
+ }
+ }
+
+ public void setAutenticacionByLP(UsuarioTVS user){
+ Element xmlEl=SerClsXMLUtils.dameElemento(getCCReq(),"Autenticacion");
+ if(xmlEl==null){
+ xmlEl=SerClsXMLUtils.ponHijo(getCCReq(),"Autenticacion");
+ }else{
+ SerClsXMLUtils.eliminaElemento(xmlEl,"LP");
+ SerClsXMLUtils.eliminaElemento(xmlEl,"Firma");
+ }
+ xmlEl=SerClsXMLUtils.ponHijo(xmlEl,"LP");
+ SerClsXMLUtils.insertaElementoValor(xmlEl,"login",user.getLogin());
+ SerClsXMLUtils.insertaElementoValor(xmlEl,"pass",user.getPassword());
+
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/CCRes.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/CCRes.java
new file mode 100644
index 0000000..1a2a79b
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/CCRes.java
@@ -0,0 +1,33 @@
+/*
+ * Creado el 12-feb-07
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+
+import es.chipcard.util.*;
+import org.w3c.dom.*;
+/**
+ * @author jjrider
+ */
+public abstract class CCRes extends Msg{
+
+ public CCRes(Document doc) throws Exception{
+ super(doc);
+ if(!SerClsXMLUtils.existeElemento(doc.getDocumentElement(),"CCRes")){
+ throw new Exception("El XML dado como argumento no es un CCRes");
+ }
+ }
+
+ protected Element getCCRes(){
+ return SerClsXMLUtils.dameElemento(getDocument().getDocumentElement(),"CCRes");
+ }
+
+ public int getTypeOfMessage(){
+ return this.TYPE_OF_MESSAGE_CCRES;
+ }
+
+ public String getDatosCliente(){
+ return SerClsXMLUtils.dameValorEl(getCCRes(),"DatosCliente");
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnico.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnico.java
new file mode 100644
index 0000000..9f17ee4
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnico.java
@@ -0,0 +1,30 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;
+import es.chipcard.util.*;
+/**
+ * @author jjrider
+ */
+public class DocumentoUnico extends AutReq{
+
+ public DocumentoUnico(UsuarioTVS user,Paciente paciente,CompaniaSanitaria comp, EspecialidadSanitaria espe,ProfesionalSanitario prof,ListaActos objLA,ActoMedico arrActos[],String sDocUnico) throws Exception{
+ super("DU",user,paciente,comp, espe, prof,objLA,arrActos);
+ setDocUnico(sDocUnico);
+ }
+
+
+ public void setDocUnico(String sDU){
+ if(sDU==null)
+ return;
+ sDU=sDU.trim();
+ if(sDU.length()==0){
+ return;
+ }
+ if(SerClsXMLUtils.existeElemento(this.getAutReq(),"du")){
+ SerClsXMLUtils.cambiaValorEl(this.getAutReq(),"du",sDU);
+ }else{
+ SerClsXMLUtils.insertaElementoValor(getAutReq(),"du",sDU);
+ }
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnicoLaboratorio.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnicoLaboratorio.java
new file mode 100644
index 0000000..fa72682
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/DocumentoUnicoLaboratorio.java
@@ -0,0 +1,13 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;
+/**
+ * @author jjrider
+ */
+public class DocumentoUnicoLaboratorio extends DocumentoUnico{
+
+ public DocumentoUnicoLaboratorio(UsuarioTVS user,Paciente paciente,CompaniaSanitaria comp,ProfesionalSanitario prof,ListaActos objLA,String sDocUnico) throws Exception{
+ super(user,paciente,comp, null, prof,objLA,null,sDocUnico);
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Error.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Error.java
new file mode 100644
index 0000000..e633962
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Error.java
@@ -0,0 +1,38 @@
+/*
+ * Creado el 15-feb-07
+ *
+ * Para cambiar la plantilla para este archivo generado vaya a
+ * Ventana>Preferencias>Java>Generacin de cdigo>Cdigo y comentarios
+ */
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+import es.chipcard.util.*;
+import org.w3c.dom.*;
+
+/**
+ * @author jjrider
+ */
+public class Error extends Msg {
+
+ public Error(Document doc) throws Exception{
+ super(doc);
+ if(!SerClsXMLUtils.existeElemento(doc.getDocumentElement(),"Error")){
+ throw new Exception("El XML dado como argumento no es un Error");
+ }
+ }
+
+ public int getTypeOfMessage(){
+ return this.TYPE_OF_MESSAGE_ERROR;
+ }
+
+ public Element getErrorElement(){
+ return SerClsXMLUtils.dameElemento(getDocument().getDocumentElement(),"Error");
+ }
+
+ public String getErrorCode(){
+ return getErrorElement().getAttribute("errcode");
+ }
+
+ public String getErrorDescription(){
+ return SerClsXMLUtils.dameValorEl(getErrorElement());
+ }
+}
diff --git a/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Msg.java b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Msg.java
new file mode 100644
index 0000000..1e5ddd0
--- /dev/null
+++ b/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/messages/Msg.java
@@ -0,0 +1,73 @@
+package com.tarisan.chipcard.tpvvs.webservicetrayicon.messages;
+
+/**
+ * @author jjrider
+ */
+import es.chipcard.util.*;
+import org.w3c.dom.*;
+import java.io.*;
+
+public abstract class Msg {
+ public static int TYPE_OF_MESSAGE_ERROR=-1;
+ public static int TYPE_OF_MESSAGE_CCREQ=1;
+ public static int TYPE_OF_MESSAGE_CCRES=2;
+ public static String DEFAULT_XML_DECLARATION="";
+
+ private Document xmlDoc=null;
+
+
+ public Msg(String sMessage) throws Exception{
+ xmlDoc=SerClsXMLUtils.parsearDocumento(new StringReader(DEFAULT_XML_DECLARATION+""+sMessage+""));
+ }
+
+ public Msg(Document doc) throws Exception{
+ if(doc==null)
+ throw new Exception("El XML dado como argumento no puede ser NULL");
+ if(!doc.getDocumentElement().getNodeName().equals("Msg")){
+ throw new Exception("El XML dado como argumento no es un Msg");
+ }
+ xmlDoc=doc;
+ }
+
+ public abstract int getTypeOfMessage();
+
+ protected Document getDocument(){
+ return xmlDoc;
+ }
+
+ public void setRepeticion(boolean blnValue){
+ xmlDoc.getDocumentElement().setAttribute("repeticion",((blnValue)?"true":"false"));
+ }
+
+ public String toString(){
+ return SerClsXMLUtils.dameTextoXml(xmlDoc);
+ }
+
+ public void saveToOutputStream(OutputStream out) throws Exception{
+ SerClsXMLUtils.toOutputStream(getDocument(),out);
+ }
+
+ /******
+ * Crea un objeto Msg a partir de una cadena
+ * @param sResponse
+ * @return
+ * @throws Exception
+ */
+ public static Msg createMsgFromString(String sResponse) throws Exception{
+ /**if(sResponse!=null){
+ if(!sResponse.trim().startsWith("")+14, sResponse.indexOf(""));
+ respuesta = sResponse.substring(sResponse.indexOf("")+15, sResponse.indexOf(""));
+ mensaje = sResponse.substring(sResponse.indexOf("")+17, sResponse.indexOf(""));
+ autorizacion = Integer.parseInt(sResponse.substring(sResponse.indexOf("")+8, sResponse.indexOf("")));
+ terminal = Integer.parseInt(sResponse.substring(sResponse.indexOf("")+6, sResponse.indexOf("")));
+ acto = Integer.parseInt(sResponse.substring(sResponse.indexOf("")+6, sResponse.indexOf("")));
+ espe = Integer.parseInt(sResponse.substring(sResponse.indexOf("")+7, sResponse.indexOf("")));
+
+ strSql.append("INSERT INTO CHIPCARD_MOVIMIENTOS (TARJETA, RESPUESTA, MENSAJE, AUTORIZACION, TERMINAL, ESPECIALIDAD, ACTO, FECHA_HORA, XMLCOMPLETO, SECUENCIA) VALUES (");
+ strSql.append("'"+tarjeta+"', ");
+ strSql.append("'"+respuesta+"', ");
+ strSql.append("'"+mensaje+"', ");
+ strSql.append(autorizacion+", ");
+ strSql.append(terminal+", ");
+ strSql.append(espe+", ");
+ strSql.append(acto+", ");//?, '?', TO_DATE('?', 'dd/mm/yyyy hh24:mi:ss'), ?)");
+
+ Calendar cal = Calendar.getInstance();
+ String segundos = "";
+ if(cal.get(Calendar.SECOND)<10)
+ segundos = "0"+cal.get(Calendar.SECOND);
+ else
+ segundos = Integer.toString(cal.get(Calendar.SECOND));
+
+ fecha = new String(cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR)+" "+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+segundos);
+ strSql.append("TO_DATE('"+fecha+"', 'dd/mm/yyyy hh24:mi:ss'), '"+sResponse+"', ");
+ strSql.append(secuencial + ")");
+
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ /*
+ * sqlInsert.append("Insert into control_medicos (id, medico, fecha, tarjeta) values (?, ?, sysdate, ?)");
+ aValores[0]=siguiente_id();
+ aValores[1]=Integer.valueOf(medico);
+ aValores[2]=new String(tarjeta);
+
+ resul = ParametrosConfiguracion.dataStore.insertar(sqlInsert.toString(), aValores, conexion);
+ */
+
+ conexion.setAutoCommit(false);
+ PreparedStatement ps = conexion.prepareStatement(strSql.toString());
+ int a = ps.executeUpdate();
+ ps.close();
+
+ conexion.commit();
+ conexion.setAutoCommit(true);
+ conexion.close();
+ if(a>0)
+ resul = true;
+ } catch (SQLException | ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+
+
+ return resul;
+ }
+}
diff --git a/Fuentes/com/tarisan/control/Constantes.java b/Fuentes/com/tarisan/control/Constantes.java
new file mode 100644
index 0000000..27287f2
--- /dev/null
+++ b/Fuentes/com/tarisan/control/Constantes.java
@@ -0,0 +1,123 @@
+/**
+ * @(#) Constantes.java
+ */
+
+package com.tarisan.control;
+
+/**
+ * Interface que contiene las constantes de uso en la aplicación Tarisan.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+
+public interface Constantes
+{
+ //Módulo de Gestión de Médicos
+ final static int OPC_MED_GESTOR = 0;
+ final static int OPC_MED_CABECERA = 1;
+ final static int OPC_MED_PASSWORD = 2;
+ final static int OPC_MED_ACTOS = 3;
+ final static int OPC_MED_LIQUIDACION = 4;
+ final static int OPC_MED_PACIENTES = 5;
+ final static int OPC_MED_IRPF = 6;
+ final static int OPC_MED_MEDICAMENTOS = 7;
+ final static int OPC_MED_PRESCRIPCIONES = 8;
+ final static int OPC_MED_ANALISIS = 9;
+ final static int OPC_MED_IGUALADOS = 10;
+ final static int OPC_MED_ACTUALIZAR_CABECERA = 11;
+ final static int OPC_MED_ACTUALIZAR_PASSWORD = 12;
+ final static int OPC_MED_PREAVISO = 13;
+ final static int OPC_MED_ACTUALIZAR_ACCESO = 14;
+ final static int OPC_MED_REGISTRAR_LOG_ANALISIS = 15;
+ final static int OPC_MED_DETALLE_PACIENTE = 20;
+ final static int OPC_MED_IMPRIMIR_PETICIONES = 21;
+ final static int OPC_MED_PETICION_CAPTURADA = 32;
+ final static int OPC_MED_GENERAR_DETALLE_IRPF = 16;
+ final static int OPC_MED_ENVIAR_EMAIL = 17;
+
+ //Módulo de Gestión de Pacientes
+ final static int OPC_PAC_GESTOR = 0;
+ final static int OPC_PAC_FACTURACION = 1;
+ final static int OPC_PAC_AUTORIZACION = 2;
+ final static int OPC_PAC_ANALITICA = 3;
+ final static int OPC_PAC_DIAGNOSTICO = 4;
+ final static int OPC_PAC_ESPECIALIDADES = 5;
+ final static int OPC_PAC_RECETAS = 6;
+ final static int OPC_PAC_HISTORIA = 7;
+ final static int OPC_PAC_ANALISTA = 8;
+ final static int OPC_PAC_PASO_TARJETA = 9;
+ final static int OPC_PAC_ACTUALIZAR_HISTORIA_PACIENTE = 10;
+ final static int OPC_PAC_PRESCRIPCION_ESPECIALIDADES = 11;
+ final static int OPC_PAC_PRESCRIPCION_DIAGNOSTICO = 12;
+ final static int OPC_PAC_PRESCRIPCION_FACTURACION = 13;
+ final static int OPC_PAC_FACTURACION_REHABPOD = 21;
+ final static int OPC_PAC_PRESCRIPCION_ANALITICA = 14;
+ final static int OPC_PAC_PETICION_AUTORIZACION = 15;
+ final static int OPC_PAC_FIRMA_BENEFICIARIO = 16;
+ final static int OPC_PAC_ANALISTA_ACEPTAR_ANALISIS = 17;
+ final static int OPC_PAC_REGISTRAR_LOG_ANALISIS = 18;
+ final static int OPC_PAC_PRESCRIPCION_RECETAS = 19;
+ final static int OPC_PAC_LEER_NUMERO_TARJETA_ATS = 22;
+ final static int OPC_PAC_FACTURACION_CHIPCARD = 23;
+ final static int OPC_PAC_VOLANTE_INGRESO = 24;
+ final static int OPC_PAC_IMPRIMIR_VOLANTE_INGRESO = 25;
+ final static int OPC_PAC_BORRAR_VOLANTE_INGRESO = 26;
+ final static int OPC_PAC_PRESCRIPCION_ATS = 27;
+ final static int OPC_PAC_FACTURACION_ODON = 28;
+ final static int OPC_PAC_PRESCRIPCION_FACTURACION_ODON = 29;
+ final static int OPC_PAC_PRESCRIPCION_FACTURACION_ESTOMATOLOGIA = 30;
+ final static int OPC_PAC_FACTURACION_ESTOMATOLOGIA = 31;
+ final static int OPC_PAC_DETALLE_PACIENTE = 32;
+ final static int OPC_PAC_PRESCRIPCION_ANATOMIA_PATOLOGICA = 33;
+ final static int OPC_PAC_VER_PDF = 34;
+ final static int OPC_PAC_RADIOLOGO = 35;
+ final static int OPC_PAC_ANALISTA_ACEPTAR_RADIODIAGNOSTICO = 36;
+
+
+
+ //Módulo de Administración
+ final static int OPC_ADM_USUARIO_LISTA = 1;
+ final static int OPC_ADM_USUARIO_DETALLE = 2;
+ final static int OPC_ADM_PASSWORD = 3;
+ final static int OPC_ADM_ACT_AUTORIZACION = 4;
+ final static int OPC_ADM_GES_NIVELES_ESPE = 5;
+ final static int OPC_ADM_GES_ACT_VISIBILI = 6;
+ final static int OPC_ADM_GES_NIVELES_ACT = 7;
+ final static int OPC_ADM_GES_ACT_NIVEL_ACTO = 8;
+ final static int OPC_ADM_MOSTRAR_LOG = 9;
+
+
+
+ //Perfiles de la aplicación
+ final static String PERFIL_ADMINISTRADOR = "00";
+ final static String PERFIL_CABECERA = "01";
+ final static String PERFIL_ANALISTA = "02";
+ final static String PERFIL_ESPECIALISTA = "03";
+ final static String PERFIL_REHABPOD = "04";
+ final static String PERFIL_ATS = "05";
+ final static String PERFIL_DENTISTA = "06";
+ final static String PERFIL_ODONTOLOGIA = "07";
+ final static String PERFIL_RADIOLOGO= "08";
+
+
+ //Control de acceso de usuarios y autenticación
+ final static Integer USUARIO_VALIDO = Integer.valueOf(0);
+ final static Integer USUARIO_BLOQUEADO = Integer.valueOf(1);
+ final static Integer USUARIO_CADUCADO = Integer.valueOf(2);
+ final static Integer USUARIO_PREAVISO = Integer.valueOf(3);
+ final static Integer USUARIO_INACTIVO = Integer.valueOf(4);
+ final static Integer USUARIO_INEXISTENTE = Integer.valueOf(5);
+ final static Integer USUARIO_ACCESO = Integer.valueOf(6);
+ final static Integer USUARIO_INTENTOS = Integer.valueOf(7);
+ final static Integer USUARIO_ERROR_CLAVE = Integer.valueOf(8);
+
+ //Control de la validez de tarjetas de pacientes
+ final static Integer TARJETA_VALIDA = Integer.valueOf(0);
+ final static Integer TARJETA_CADUCADA = Integer.valueOf(1);
+ final static Integer TARJETA_BAJA = Integer.valueOf(2);
+ final static Integer TARJETA_SUSPENSO = Integer.valueOf(3);
+ final static Integer TARJETA_AUTORIZACION = Integer.valueOf(4);
+ final static Integer TARJETA_FIRMA_AUTORIZACION = Integer.valueOf(5);
+
+
+}
diff --git a/Fuentes/com/tarisan/control/JavaMail.java b/Fuentes/com/tarisan/control/JavaMail.java
new file mode 100644
index 0000000..8db0eb1
--- /dev/null
+++ b/Fuentes/com/tarisan/control/JavaMail.java
@@ -0,0 +1,122 @@
+package com.tarisan.control;
+
+import java.io.File;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+// import javax.activation.DataSource;
+import javax.activation.FileDataSource;
+import jakarta.mail.BodyPart;
+import jakarta.mail.Message;
+import jakarta.mail.Multipart;
+import jakarta.mail.Session;
+import jakarta.mail.Transport;
+import jakarta.mail.internet.InternetAddress;
+import jakarta.mail.internet.MimeBodyPart;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.mail.internet.MimeMultipart;
+
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+// import com.sun.mail.util.MessageRemovedIOException;
+
+public class JavaMail {
+
+ public static void main(String[] args) {
+ /*JavaMail javaMail = new JavaMail();
+ javaMail.mandarCorreo(mensaje,tarjeta); */
+ }
+
+ public void mandarCorreo(String mensaje, String tarjeta, String email, String asunto, String nombreAdjuntos) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "com.tarisan.servlets/JavaMail -- mandarCorreo("+mensaje+","+tarjeta+","+email+","+asunto+","+nombreAdjuntos);
+
+ // El correo de envo
+ String correoEnvia = "sistemas@imqnavarra.com";
+ String claveCorreo = "s1st3masacc17";
+
+ // La configuracin para enviar correo
+ Properties properties = new Properties();
+ properties.put("mail.smtp.host", "smtp.imqnavarra.com");
+ properties.put("mail.smtp.starttls.enable", "true");
+ properties.put("mail.smtp.port", "587");
+ properties.put("mail.smtp.auth", "true");
+ properties.put("mail.user", correoEnvia);
+ properties.put("mail.password", claveCorreo);
+ properties.put("mail.debug", "true"); //para que nos muestre en detalle el proceso
+
+ // Obtener la sesion
+ Session session = Session.getInstance(properties, null);
+
+ try {
+ // Crear el cuerpo del mensaje
+ MimeMessage mimeMessage = new MimeMessage(session);
+
+ // Agregar quien enva el correo
+ //mimeMessage.setFrom(new InternetAddress(correoEnvia, "sistemas"));
+ mimeMessage.setFrom(new InternetAddress(email));
+
+ // Los destinatarios
+ InternetAddress[] internetAddresses = {
+ new InternetAddress("soporte_tarisan@imqnavarra.com")};/*,
+ new InternetAddress("david.andueza@imqnavarra.com"),
+ new InternetAddress("sistemas@imqnavarra.com") };*/
+
+ // Agregar los destinatarios al mensaje
+ mimeMessage.setRecipients(Message.RecipientType.TO,
+ internetAddresses);
+
+ // Agregar el asunto al correo
+ mimeMessage.setSubject(asunto);
+
+ // Creo la parte del mensaje
+ String mensajeCompleto = "";
+ if (tarjeta!=null && tarjeta.compareTo("")!=0){
+ tarjeta = tarjeta.replace("()", "%");
+ mensajeCompleto = mensaje+"\n\n\nTARJETA: "+tarjeta;
+ }else{
+ mensajeCompleto = mensaje;
+ }
+
+ MimeBodyPart mimeBodyPart = new MimeBodyPart();
+ mimeBodyPart.setText(mensajeCompleto);
+
+ // Crear el multipart para agregar la parte del mensaje anterior
+ Multipart multipart = new MimeMultipart();
+ multipart.addBodyPart(mimeBodyPart);
+
+ // Creo la parte del archivo adjunto
+ BodyPart adjuntoBodyPart = new MimeBodyPart();
+
+ if( nombreAdjuntos!=null && nombreAdjuntos.length()>0 ){
+ String[] partes = nombreAdjuntos.split("--");
+ for (int x=0; x < partes.length ; x++) {
+ String rutaAdjunto = partes[x];
+ adjuntoBodyPart = new MimeBodyPart();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Ruta de adjunto "+x+": " + ParametrosConfiguracion.ruta_adjuntos+rutaAdjunto);
+ File f = new File(ParametrosConfiguracion.ruta_adjuntos+rutaAdjunto);
+ if( f.exists() ){
+ adjuntoBodyPart.setDataHandler(new DataHandler(new FileDataSource(ParametrosConfiguracion.ruta_adjuntos+"/"+rutaAdjunto)));
+ adjuntoBodyPart.setFileName( f.getName() );
+ multipart.addBodyPart(adjuntoBodyPart);
+ }
+ }
+ }
+
+ // Agregar el multipart al cuerpo del mensaje
+ mimeMessage.setContent(multipart);
+
+ // Enviar el mensaje
+ Transport transport = session.getTransport("smtp");
+ transport.connect(correoEnvia, claveCorreo);
+ transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
+ transport.close();
+
+ } catch (Exception ex) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al Enviar el Correo");
+ ex.printStackTrace();
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Correo Enviado");
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/control/Paginacion.java b/Fuentes/com/tarisan/control/Paginacion.java
new file mode 100644
index 0000000..6109b28
--- /dev/null
+++ b/Fuentes/com/tarisan/control/Paginacion.java
@@ -0,0 +1,180 @@
+/**
+ * @(#) Paginacion.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.*;
+import java.sql.*;
+
+/**
+ * Clase de apoyo utilizada para realizar la paginacin de los datos.
+ * @author Dpto. Informtica.
+ * @version 1.0, 29/09/2003
+ */
+
+public class Paginacion
+{
+
+ /**
+ * Nmero de pgina que se le presenta al usuario.
+ */
+ private int intNumPagina=0;
+
+ /**
+ * Nmero de pginas totales de las que est compuesta la consulta realizada por el usuario.
+ *
Este valor se calcula utulizando el nmero de filas por pgina.
+ */
+ private int intNumPaginasTotales=0;
+
+ /**
+ * Nmero de registros totales de los que est compuesta la consulta realizada por el usuario.
+ */
+ private int intNumRegistrosTotales=0;
+
+ /**
+ * Nmero de filas por pgina que se le van a mostrar al usuario.
+ *
Este atributo se inicializa cuando se arranca el servidor de aplicaciones.
+ *
El valor de este atributo se coge del fichero properties.
+ */
+ private static int intFilasPorPagina;
+
+
+ /**
+ * Establece en un atributo de la clase el nmero de filas por pgina.
+ * @param filasPorPagina Entero que indica el nmero de filas por pagina.
+ */
+ public static void setFilasPorPagina(int filasPorPagina)
+ {
+ intFilasPorPagina = filasPorPagina;
+ }
+
+
+ /**
+ * Obtiene el nmero de filas por pgina utilizados en la paginacin.
+ * @return Valor numrico que indica el nmero de filas por pgina.
+ */
+ public static int getFilasPorPagina()
+ {
+ return intFilasPorPagina;
+ }
+
+
+ /**
+ * Obtiene el nmero de pgina que se le presenta al usuario.
+ * @return Valor numrico que indica el nmero de pgina actual.
+ */
+ public int getNumeroPagina()
+ {
+ return intNumPagina;
+ }
+
+
+ /**
+ * Establece en un atributo de la clase el nmero de la pgina actual que se le presenta al usuario.
+ * @param numeroPagina Entero que indica el nmero de pagina.
+ */
+ public void setNumeroPagina(int numeroPagina)
+ {
+ intNumPagina=numeroPagina;
+ }
+
+
+ /**
+ * Obtiene el nmero de pginas totales.
+ * @return Valor numrico que indica el nmero de pginas totales.
+ */
+ public int getNumeroPaginasTotales()
+ {
+ return intNumPaginasTotales;
+ }
+
+
+ /**
+ * Obtiene el nmero de registros totales.
+ * @return Valor numrico que indica el nmero de registros totales.
+ */
+ public int getNumeroRegistrosTotales()
+ {
+ return intNumRegistrosTotales;
+ }
+
+
+ /**
+ * Inicializa el objeto Paginacion para su uso.
+ * @param rs Objeto ResultSet que contiene los datos de la consulta realizada por el usuario.
+ */
+ public void inicializarPaginacion(ResultSet rs) throws ExcepcionTarisan
+ {
+ try
+ {
+ rs.last();
+ intNumRegistrosTotales = rs.getRow();
+ rs.beforeFirst();
+ intNumPaginasTotales = intNumRegistrosTotales / intFilasPorPagina;
+
+ if (intNumRegistrosTotales % intFilasPorPagina != 0)
+ intNumPaginasTotales++;
+ }
+ catch(Exception e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al inicializar la paginacion: " + e);
+ throw new ExcepcionTarisan(e.getMessage());
+ }
+
+ }
+
+
+ /**
+ * Realiza la paginacin de los datos obtenidos. Consiste en posicionarse en el
+ * registro correspondiente a la pgina que el usuario desea consultar sobre el objeto ResultSet.
+ * @param rs Objeto ResultSet que contiene los datos de la consulta realizada por el usuario.
+ * @param pagina Entero que nos indica la pgina que el usuario desea visualizar.
+ */
+ public void realizarPaginacion(ResultSet rs, int pagina) throws ExcepcionTarisan
+ {
+ int posicion;
+
+ try
+ {
+ if (pagina!=0 && intNumRegistrosTotales!=0)
+ {
+ posicion = ((pagina - 1) * intFilasPorPagina);
+ if (posicion == 0)
+ rs.beforeFirst();
+ else
+ rs.absolute(posicion);
+
+ intNumPagina = pagina;
+ }
+ else
+ intNumPagina = 0;
+
+ }
+ catch(Exception e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al realizar la paginacion: " + e);
+ throw new ExcepcionTarisan(e.getMessage());
+ }
+ }
+
+
+ /**
+ * Indica si la pgina cargada se trata de la ltima pgina.
+ * @return Valor booleano que indica si es la ltima pgina.
+ */
+ public boolean esUltimaPagina()
+ {
+ return (intNumPagina == intNumPaginasTotales);
+ }
+
+ /**
+ * Indica si la pgina cargada se trata de la primera pgina.
+ * @return Valor booleano que indica si es la primera pgina.
+ */
+ public boolean esPrimeraPagina()
+ {
+ return (intNumPagina == 1);
+ }
+}
diff --git a/Fuentes/com/tarisan/control/ParametrosConfiguracion.java b/Fuentes/com/tarisan/control/ParametrosConfiguracion.java
new file mode 100644
index 0000000..a450ebb
--- /dev/null
+++ b/Fuentes/com/tarisan/control/ParametrosConfiguracion.java
@@ -0,0 +1,793 @@
+/**
+ * @(#) ParametrosConfiguracion.java
+ */
+
+
+package com.tarisan.control;
+
+import com.tarisan.log.*;
+//import com.tarisan.control.Constantes; Elimino el import que nunca se usa
+import com.tarisan.persistencia.DataStore;
+import com.tarisan.persistencia.PersistenciaParametros;
+import com.tarisan.util.Utilidades;
+
+import java.util.MissingResourceException;
+import java.util.PropertyResourceBundle;
+import java.util.Hashtable;
+
+/**
+ * Contiene atributos de clase con los parámetros de configuración de la aplicación.
+ *
+ * Dichos parámetros se leen de un fichero de propiedades.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class ParametrosConfiguracion
+{
+ /**
+ * Nombre del fichero de propiedades de la aplicación Tarisan (con extensión .properties).
+ */
+ private static final String NOMBRE_PROPIEDADES = "tarisan";
+
+ private static final String PROP_VISUAL_DECIMALES = "VISUAL.decimales";
+ private static final String PROP_VISUAL_FORMATO_FECHAS = "VISUAL.formato_fechas";
+
+ private static final String PROP_IMP_CIUDAD = "IMP.ciudad";
+
+ private static final String PROP_PAC_PERIODO_ANALISIS = "PAC.periodo_analisis";
+ private static final String PROP_PAC_PERIODO_RX = "PAC.periodo_rx";
+ private static final String PROP_PAC_CODIGO_PRIMERA_VISITA = "PAC.codigo_primera_visita";
+ private static final String PROP_PAC_CODIGO_PRIMERA_LIMPIEZA = "PAC.codigo_primera_limpieza";
+ private static final String PROP_PAC_CODIGO_VISITA_SUCESIVA = "PAC.codigo_visita_sucesiva";
+ private static final String PROP_PAC_CODIGO_IGUALAS = "PAC.codigo_igualas";
+ private static final String PROP_PAC_ANALITICAS = "PAC.analisis";
+ private static final String PROP_PAC_RADIODIAGNOSTICO = "PAC.radiodiag";
+ private static final String PROP_PAC_PERIODO_PRIMERA_VISITA = "PAC.periodo_primera_visita";
+ private static final String PROP_PAC_PERIODO_PRIMERA_VISITA_CHIPCARD = "PAC.periodo_primera_visita_chipcard";
+ private static final String PROP_PAC_PERIODO_NATURAL = "PAC.periodo_natural";
+ private static final String PROP_PAC_AUTORIZACION = "PAC.autorizacion";
+ private static final String PROP_PAC_RUTA_PDF_RESULTADOS = "PAC.ruta_pdf_resultados";
+ private static final String PROP_PAC_RUTA_PDF_RESULTADOS_ANALITICAS = "PAC.ruta_pdf_resultados_analiticas";
+ private static final String PROP_PAC_RUTA_PDF_RESULTADOS_ANATOMIA_CSM = "PAC.ruta_pdf_resultados_anatomia_CSM";
+ private static final String PROP_PAC_RUTA_PDF_RESULTADOS_ANATOMIA = "PAC.ruta_pdf_resultados_anatomia";
+ private static final String PROP_PAC_RUTA_PDF = "PAC.ruta_pdf";
+ private static final String PROP_PAC_RUTA_LOGOTIPOS = "PAC.ruta_logotipos";
+ private static final String PROP_PAC_RUTA_ADJUNTOS = "PAC.ruta_adjuntos";
+ private static final String PROP_PAC_RUTA_PDF_INFORMES_RX = "PAC.ruta_pdf_informes_rx";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_ANALITICAS = "PAC.ruta_pdf_peticiones_analiticas";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_ANALITICAS_CAPTURADAS = "PAC.ruta_pdf_peticiones_analiticas_capturadas";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_RX_CAPTURADOS = "PAC.ruta_pdf_peticiones_rx_capturados";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_DETALLE_PACIENTES = "PAC.ruta_pdf_peticiones_detalle_pacientes";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_FACTURAS = "PAC.ruta_pdf_peticiones_facturas";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_INGRESOS = "PAC.ruta_pdf_peticiones_ingresos";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_RECETAS = "PAC.ruta_pdf_peticiones_recetas";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_AP = "PAC.ruta_pdf_peticiones_ap";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_ATS = "PAC.ruta_pdf_peticiones_ats";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_AUTORIZACIONES = "PAC.ruta_pdf_peticiones_autorizaciones";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_ESPECIALIDADES = "PAC.ruta_pdf_peticiones_especialidades";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES_RX = "PAC.ruta_pdf_peticiones_rx";
+ private static final String PROP_PAC_RUTA_PDF_PETICIONES = "PAC.ruta_pdf_peticiones";
+ private static final String PROP_PAC_RUTA_PDF_LIQUIDACIONES = "PAC.ruta_pdf_liquidaciones";
+ private static final String PROP_PAC_RUTA_PDF_IRPF = "PAC.ruta_pdf_irpf";
+ private static final String PROP_PAC_RUTA_PDF_FRANQUICIAS = "PAC.ruta_pdf_franquicias";
+ private static final String PROP_PAC_RUTA_IMG = "PAC.ruta_img";
+ private static final String PROP_PAC_CONTRATO_DENTAL = "PAC.contrato_dental";
+ private static final String PROP_PAC_SALUD_CON_COBERTURA_DENTAL = "PAC.salud_con_cobertura_dental";
+
+ private static final String PROP_LOG_FICHERO = "LOG.nombre_fichero";
+ private static final String PROP_LOG_PATH = "LOG.path_fichero";
+ private static final String PROP_LOG_TAMANO = "LOG.tamano_fichero";
+ private static final String PROP_LOG_NUMERO = "LOG.numero_ficheros";
+ private static final String PROP_LOG_NIVEL = "LOG.nivel";
+
+ private static final String PROP_LOG_CONTROL_MEDICOS = "LOG.control_medicos";
+
+ private static final String PROP_DB_DATASTORE = "DB.data_store";
+ private static final String PROP_DB_USUARIO = "DB.usuario";
+ private static final String PROP_DB_PASSWORD = "DB.password";
+ private static final String PROP_DB_MAQUINA = "DB.maquina";
+ private static final String PROP_DB_MAQUINA2 = "DB.maquina2";
+ private static final String PROP_DB_PUERTO = "DB.puerto";
+ private static final String PROP_DB_INSTANCIA = "DB.instancia";
+ private static final String PROP_DB_DATASOURCE = "DB.data_source";
+ private static final String PROP_DB_TIPO_SERVIDOR = "DB.tipo_servidor";
+
+ private static final String PROP_PAG_FILAS_PAGINACION = "PAG.filas_paginacion";
+
+ private static final String PROP_CLAVE_DIAS_ACTIVIDAD = "CLAVE.dias_actividad";
+ private static final String PROP_CLAVE_DIAS_CADUCIDAD = "CLAVE.dias_caducidad";
+ private static final String PROP_CLAVE_DIAS_PREAVISO = "CLAVE.dias_preaviso";
+ private static final String PROP_CLAVE_NUMERO_INTENTOS = "CLAVE.numero_intentos";
+
+ /*
+ * RAYOS.usuario = fidoate
+ * RAYOS.clave = fidoate
+ * RAYOS.server = gimli.grupoimq.local
+ */
+ private static final String PROP_RAYOS_USUARIO = "RAYOS.usuario";
+ private static final String PROP_RAYOS_CLAVE = "RAYOS.clave";
+ private static final String PROP_RAYOS_SERVER = "RAYOS.server";
+
+ //private static final String PROP_RUTA_PDFS = "PAC.ruta_pdf";
+
+ //Propiedades para las conexiones con chipcard
+
+ private static final String PROP_CHIPCARD_LOGIN = "CHIPCARD.login";
+ private static final String PROP_CHIPCARD_PASS = "CHIPCARD.password";
+ private static final String PROP_CHIPCARD_TERMINAL = "CHIPCARD.terminal";
+ private static final String PROP_CHIPCARD_PROFESIONAL = "CHIPCARD.profesional";
+ private static final String PROP_CHIPCARD_URL = "CHIPCARD.webservice";
+ private static final String PROP_CHIPCARD_COMPANY = "CHIPCARD.comp_verify_card";
+ private static final String PROP_CHIPCARD_BIN_PROPIOS = "CHIPCARD.bin_propios";
+ private static final String PROP_CHIPCARD_BIN_DKV = "CHIPCARD.bin_dkv";
+ private static final String PROP_CHIPCARD_BIN_ADESLAS = "CHIPCARD.bin_adeslas";
+ private static final String PROP_CHIPCARD_BIN_SANITAS = "CHIPCARD.bin_sanitas";
+ private static final String PROP_CHIPCARD_BIN_IMQBILBO = "CHIPCARD.bin_imqbilbo";
+ private static final String PROP_CHIPCARD_BIN_HNA = "CHIPCARD.bin_hna";
+ private static final String PROP_REDSA_BIN_ASISA = "REDSA.bin_asisa";
+ private static final String PROP_CHIPCARD_LISTA = "CHIPCARD.list_verify_card";
+ private static final String PROP_CHIPCARD_AUTO = "CHIPCARD.operativa_autorizada";
+ private static final String PROP_CHIPCARD_DENY = "CHIPCARD.operativa_denegada";
+
+ //conexion al his para generar los pdfs de resultados de analiticas de izasa
+
+ private static final String PROP_DBHIS_USUARIO = "DBHIS.usuario";
+ private static final String PROP_DBHIS_PASSWORD ="DBHIS.password";
+ private static final String PROP_DBHIS_MAQUINA = "DBHIS.maquina";
+ private static final String PROP_DBHIS_PUERTO = "DBHIS.puerto";
+ private static final String PROP_DBHIS_INSTANCIA = "DBHIS.instancia";
+ private static final String PROP_DBHIS_DATASOURCE = "DBHIS.data_source";
+ private static final String PROP_DBHIS_TIPO_SERVIDOR ="DBHIS.tipo_servidor";
+
+ //actos de la especialidad ATS (50) que funcionan como curas, para que no reste las sesiones y solo permita durante un mes
+ //(acto == 6000 || acto == 6001 || acto == 6002 || acto <= 6003)
+ private static final String PROP_ACTOS_ATS_CURA = "ATS.actos_cura";
+
+
+//BEGIN MODIFICADO por ROUMEN ROUMENOV 15/06/2005
+ @SuppressWarnings("rawtypes")
+ public static Hashtable tablaPerfiles = new Hashtable();
+//END
+
+ /**
+ * DataStore utilizado en la conexión a base de datos.
+ */
+ public static DataStore dataStore;
+
+ /**
+ * Ciudad en la que se esta utilizando la aplicación. Este valor será utilizado a la hora de realizar las impresiones de los documentos.
+ */
+ public static String ciudad;
+
+ /**
+ * Usuario que inicia sesión en el servidor pacs para ver los resultados del diagnóstico por la imagen.
+ */
+ public static String usuario_pacs;
+
+ /**
+ * Clave del usuario que inicia sesión en el servidor pacs para ver los resultados del diagnóstico por la imagen.
+ */
+ public static String clave_usuario_pacs;
+
+ /**
+ * Servidor pacs para ver los resultados del diagnóstico por la imagen.
+ */
+ public static String server_pacs;
+
+ /**
+ * Valor que indica el periodo, en meses, de los analisis que se van a mostrar al usuario.
+ */
+ public static int periodoAnalisis;
+
+ /**
+ * Valor que indica el periodo, en meses, de los radio diagnósticos que se van a mostrar al usuario.
+ */
+ public static int periodoRx;
+
+
+ /**
+ * Codigo del acto medico de PRIMERA VISITA.
+ */
+ public static int codigoPrimeraVisita;
+
+ /**
+ * Codigo del acto medico de PRIMERA LIMPIEZA DE BOCA.
+ */
+ public static int codigoPrimeraLimpieza;
+
+ /**
+ * Codigo del acto medico de VISITA SUCESIVA.
+ */
+ public static int codigoVisitaSucesiva;
+
+ /**
+ * Codigo del acto medico de IGUALAS.
+ */
+ public static int codigoIgualas;
+
+ /**
+ * Especialidad de analiticas.
+ */
+ public static int analiticas;
+
+ /**
+ * Especialidad de radiodiagnostico.
+ */
+ public static int radiodiagnostico;
+
+ /**
+ * Periodo mensual que indica los meses que deben transcurrir para que se considere primera visita.
+ */
+ public static int periodoPrimeraVisita;
+
+ /**
+ * Periodo mensual que indica los meses que deben transcurrir para que se considere primera visita para los de Chipcard.
+ */
+ public static int periodoPrimeraVisitaChipcard;
+
+ /**
+ * Valor que indica si se trata de un periodo natural (periodo de enero a diciembre) o no.
+ */
+ public static String periodoNatural;
+
+ /**
+ * Indicador de solicitud de autorización del paciente.
+ */
+ public static String autorizacion;
+
+ /**
+ * Ruta para generar los pdf de peticiones, recetas....
+ */
+ public static String ruta_pdf;
+
+ /**
+ * Ruta donde guardamos los pdfs de los resultados de anatomia patológica para episodios de CSM
+ */
+ public static String ruta_pdf_resultados_anatomia_CSM;
+
+ /**
+ * Ruta donde guardamos los pdfs de los resultados de anatomia patológica propios de TARISAN
+ */
+ public static String ruta_pdf_resultados_anatomia;
+
+ /**
+ * Ruta donde guardamos los pdfs de los resultados de las analíticas
+ */
+ public static String ruta_pdf_resultados_analiticas;
+
+ /**
+ * Ruta donde guardamos los pdfs de los resultados de analíticas
+ */
+ public static String ruta_pdf_resultados;
+
+ /**
+ * Ruta donde guardamos los pdfs de los informes de rayos
+ */
+ public static String ruta_pdf_informes_rx;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de analítica
+ */
+ public static String ruta_pdf_peticiones_analiticas;
+
+ /**
+ * Ruta donde guardamos los pdfs de las analíticas capturadas
+ */
+ public static String ruta_pdf_peticiones_analiticas_capturadas;
+
+ /**
+ * Ruta donde guardamos los pdfs de los radiodiagnósticos capturados
+ */
+ public static String ruta_pdf_peticiones_rx_capturados;
+
+ /**
+ * Ruta donde guardamos los pdfs del detalle de las peticiones de los pacientes vistos por un médico en un día
+ */
+ public static String ruta_pdf_peticiones_detalle_pacientes;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de facturas
+ */
+ public static String ruta_pdf_peticiones_facturas;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de ingresos
+ */
+ public static String ruta_pdf_peticiones_ingresos;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de recetas
+ */
+ public static String ruta_pdf_peticiones_recetas;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de anatomia patologica
+ */
+ public static String ruta_pdf_peticiones_ap;
+
+ /**
+ * Ruta donde guardamos los pdfs de peticiones de ats
+ */
+ public static String ruta_pdf_peticiones_ats;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de autorizaciones
+ */
+ public static String ruta_pdf_peticiones_autorizaciones;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de especialidades
+ */
+ public static String ruta_pdf_peticiones_especialidades;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones de rayos
+ */
+ public static String ruta_pdf_peticiones_rx;
+
+ /**
+ * Ruta donde guardamos los pdfs de las peticiones "viejas" (a partir de Febrero de 2016)
+ */
+ public static String ruta_pdf_peticiones;
+
+ /**
+ * Ruta donde guardamos los pdfs de las liquidaciones de los médicos, así como de sus detalles
+ */
+ public static String ruta_pdf_liquidaciones;
+
+ /**
+ * Ruta donde guardamos los pdfs de los certificados de irpf de los médicos
+ */
+ public static String ruta_pdf_irpf;
+
+ /**
+ * Ruta donde guardamos los pdfs de las franquicias dentales
+ */
+ public static String ruta_pdf_franquicias;
+
+ /**
+ * Ruta donde guardamos las imágenes
+ */
+ public static String ruta_img;
+
+ /**
+ * Ruta donde guardamos los logotipos de los medicos
+ */
+ public static String ruta_logotipos;
+
+ /**
+ * Ruta donde guardamos los archivos adjuntos de las incidencias
+ */
+ public static String ruta_adjuntos;
+
+ /**
+ * Codigo de contrato para polizas dentales
+ */
+ public static String contrato_dental;
+
+ /**
+ * Codigo de contrato para tarjetas de salud concoberturas dentales
+ */
+ public static int salud_con_cobertura_dental;
+
+ /**
+ * Número de días que se permite la inactividad en el uso de la aplicación.
+ */
+ public static int diasActividad;
+
+ /**
+ * Número de días de duración de la clave (a su fin se alcanza la fecha de caducidad).
+ */
+ public static int diasCaducidad;
+
+ /**
+ * Número de días que se muestra el preaviso de caducidad de clave antes de llegar a su fin.
+ */
+ public static int diasPreaviso;
+
+ /**
+ * Número de intentos de accesos fallidos al login en la aplicación.
+ */
+ public static int numeroIntentos;
+
+
+ /**
+ * Devuelve el nombre del fichero de propiedades utilizado en la aplicación.
+ * @return Objeto String que contiene el nombre del fichero de propiedades.
+ */
+ public static String getNombrePropiedades()
+ {
+ return NOMBRE_PROPIEDADES;
+ }
+
+ /**
+ * El bin de chipcard para los propios
+ */
+ public static String bin_chipcard_propios;
+
+ /**
+ * El bin de chipcard para los adeslas
+ */
+ public static String bin_chipcard_adeslas;
+
+ /**
+ * El bin de chipcard para los sanitas
+ */
+ public static String bin_chipcard_sanitas;
+
+ /**
+ * El bin de chipcard para los dkv
+ */
+ public static String bin_chipcard_dkv;
+
+ /**
+ * El bin de chipcard para los IMQ de Bilbao
+ */
+ public static String bin_chipcard_imqbilbo;
+
+ /**
+ * El bin de chipcard para los IMQ de Bilbao
+ */
+ public static String bin_chipcard_hna;
+
+ /**
+ * El bin de Redsa para identificar ASISA
+ */
+ public static String bin_redsa_asisa;
+
+
+ /**
+ *
+ */
+ public static String chipcard_login;
+ public static String chipcard_pass;
+ public static String chipcard_terminal;
+ public static String chipcard_profesional;
+ public static String chipcard_url;
+ public static String chipcard_company;
+ public static String chipcard_lista;
+ public static String chipcard_oper_auto;
+ public static String chipcard_oper_deny;
+
+
+ public static int log_control_medicos;
+
+ /**
+ * la conexion al his para obtener los pdfs de izasa
+ */
+ public static String dbhis_usuario;
+ public static String dbhis_password;
+ public static String dbhis_maquina;
+ public static String dbhis_puerto;
+ public static String dbhis_instancia;
+ public static String dbhis_tipo_servidor;
+ public static String dbhis_data_source;
+
+ /**
+ * Los actos de ats curas
+ */
+ public static String actos_ats_curas;
+
+
+ /**
+ * El destino de la bbdd desarrollo o real
+ */
+ public static String db_destino;
+
+ /**
+ * Carga en variables de la aplicación los valores indicados en el fichero de propiedades.
+ */
+ @SuppressWarnings("unchecked")
+ public static void cargarPropiedades()
+ {
+ String mensaje;
+ try
+ {
+ PropertyResourceBundle propiedades = (PropertyResourceBundle)PropertyResourceBundle.getBundle(NOMBRE_PROPIEDADES);
+ System.out.println("- Linea 487 - Fichero properties: " + propiedades);
+
+ LogTarisan.setNombreFichero(Utilidades.cargarPropiedadString(propiedades, PROP_LOG_FICHERO, LogTarisan.DEF_LOG_FICHERO));
+ LogTarisan.setPathFichero(Utilidades.cargarPropiedadString(propiedades, PROP_LOG_PATH, LogTarisan.DEF_LOG_PATH));
+ LogTarisan.setTamanoFichero(Utilidades.cargarPropiedadString(propiedades, PROP_LOG_TAMANO, LogTarisan.DEF_LOG_TAMANO));
+ LogTarisan.setNumeroFicheros(Utilidades.cargarPropiedadInt(propiedades, PROP_LOG_NUMERO, LogTarisan.DEF_LOG_NUMERO));
+ LogTarisan.setNivel(Utilidades.cargarPropiedadString(propiedades, PROP_LOG_NIVEL, LogTarisan.DEF_LOG_NIVEL));
+
+
+ //Cargar la propiedad del log_sql de las lecturas de pistas de los médicos
+ log_control_medicos = Utilidades.cargarPropiedadInt(propiedades, PROP_LOG_CONTROL_MEDICOS, 0);
+
+ dataStore = crearDataStore(Utilidades.cargarPropiedadString(propiedades, PROP_DB_DATASTORE, PersistenciaParametros.ORACLE));
+ PersistenciaParametros.decimales = Utilidades.cargarPropiedadInt(propiedades, PROP_VISUAL_DECIMALES, 0);
+ PersistenciaParametros.formatoFechas = Utilidades.cargarPropiedadString(propiedades, PROP_VISUAL_FORMATO_FECHAS, "");
+ PersistenciaParametros.usuario = Utilidades.cargarPropiedadString(propiedades, PROP_DB_USUARIO, "");
+ PersistenciaParametros.password = Utilidades.cargarPropiedadString(propiedades, PROP_DB_PASSWORD, "");
+ PersistenciaParametros.maquina = Utilidades.cargarPropiedadString(propiedades, PROP_DB_MAQUINA, "");
+ PersistenciaParametros.maquina2 = Utilidades.cargarPropiedadString(propiedades, PROP_DB_MAQUINA2, "");
+ PersistenciaParametros.puerto = Utilidades.cargarPropiedadInt(propiedades, PROP_DB_PUERTO, 0);
+ PersistenciaParametros.instancia = Utilidades.cargarPropiedadString(propiedades, PROP_DB_INSTANCIA, "");
+ PersistenciaParametros.dataSource = Utilidades.cargarPropiedadString(propiedades, PROP_DB_DATASOURCE, "");
+ PersistenciaParametros.tipoServidorOracle = Utilidades.cargarPropiedadString(propiedades, PROP_DB_TIPO_SERVIDOR, "10g");
+
+
+
+
+
+ Paginacion.setFilasPorPagina(Utilidades.cargarPropiedadInt(propiedades, PROP_PAG_FILAS_PAGINACION, 0));
+
+ ciudad = Utilidades.cargarPropiedadString(propiedades, PROP_IMP_CIUDAD, "Pamplona");
+
+ diasActividad = Utilidades.cargarPropiedadInt(propiedades, PROP_CLAVE_DIAS_ACTIVIDAD, 90);
+ diasCaducidad = Utilidades.cargarPropiedadInt(propiedades, PROP_CLAVE_DIAS_CADUCIDAD, 180);
+ diasPreaviso = Utilidades.cargarPropiedadInt(propiedades, PROP_CLAVE_DIAS_PREAVISO, 15);
+ numeroIntentos = Utilidades.cargarPropiedadInt(propiedades, PROP_CLAVE_NUMERO_INTENTOS, 5);
+
+ periodoAnalisis = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_PERIODO_ANALISIS, 6);
+ periodoRx = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_PERIODO_RX, 6);
+ codigoVisitaSucesiva = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_CODIGO_VISITA_SUCESIVA, 2);
+ codigoPrimeraVisita = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_CODIGO_PRIMERA_VISITA, 1);
+ codigoPrimeraLimpieza = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_CODIGO_PRIMERA_LIMPIEZA, 1460);
+ codigoIgualas = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_CODIGO_IGUALAS, 993999);
+ analiticas = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_ANALITICAS, 17);
+ radiodiagnostico = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_RADIODIAGNOSTICO, 20);
+ periodoPrimeraVisita = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_PERIODO_PRIMERA_VISITA, 0);
+ periodoPrimeraVisitaChipcard = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_PERIODO_PRIMERA_VISITA_CHIPCARD, 0);
+ periodoNatural = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_PERIODO_NATURAL, "");
+ autorizacion = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_AUTORIZACION, "N");
+ ruta_logotipos = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_LOGOTIPOS, "/var/lib/tomcat/webapps/tarisan/logotipos");
+ ruta_adjuntos = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_ADJUNTOS, "/var/lib/tomcat/webapps/tarisan/adjuntos");
+ ruta_pdf = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF, "/var/lib/tomcat/webapps/tarisan/peticiones");
+ /*ruta_pdf_resultados = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_RESULTADOS, "/root/apache-tomcat-6.0.20/webapps/tarisan/resultados");*/
+ ruta_pdf_resultados = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_RESULTADOS, "/var/lib/tomcat/webapps/tarisan/resultados");
+ ruta_pdf_resultados_analiticas = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_RESULTADOS_ANALITICAS, "/var/lib/tomcat/webapps/tarisan/resultados/analiticas");
+ ruta_pdf_resultados_anatomia_CSM = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_RESULTADOS_ANATOMIA_CSM, "/var/lib/tomcat/webapps/tarisan/hador/DOCEXT");
+ ruta_pdf_resultados_anatomia = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_RESULTADOS_ANATOMIA, "/var/lib/tomcat/webapps/tarisan/resultados/ap");
+ ruta_pdf_informes_rx = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_INFORMES_RX, "/var/lib/tomcat/webapps/tarisan/resultados/rx");
+ ruta_pdf_peticiones_analiticas = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_ANALITICAS, "/var/lib/tomcat/webapps/tarisan/peticiones/analiticas");
+ ruta_pdf_peticiones_analiticas_capturadas = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_ANALITICAS_CAPTURADAS, "/var/lib/tomcat/webapps/tarisan/peticiones/analiticas_capturadas");
+ ruta_pdf_peticiones_rx_capturados = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_RX_CAPTURADOS, "/var/lib/tomcat/webapps/tarisan/peticiones/rx_capturados");
+ ruta_pdf_peticiones_detalle_pacientes = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_DETALLE_PACIENTES, "/var/lib/tomcat/webapps/tarisant/peticiones/detalle_pacientes");
+ ruta_pdf_peticiones_facturas = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_FACTURAS, "/var/lib/tomcat/webapps/tarisan/peticiones/facturas");
+ ruta_pdf_peticiones_ingresos = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_INGRESOS, "/var/lib/tomcat/webapps/tarisan/peticiones/ingresos");
+ ruta_pdf_peticiones_recetas = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_RECETAS, "/var/lib/tomcat/webapps/tarisan/peticiones/recetas");
+ ruta_pdf_peticiones_ap = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_AP, "/var/lib/tomcat/webapps/tarisan/peticiones/ap");
+ ruta_pdf_peticiones_ats = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_ATS, "/var/lib/tomcat/webapps/tarisan/peticiones/ats");
+ ruta_pdf_peticiones_autorizaciones = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_AUTORIZACIONES, "/var/lib/tomcat/webapps/tarisan/peticiones/autorizaciones");
+ ruta_pdf_peticiones_especialidades = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_ESPECIALIDADES, "/var/lib/tomcat/webapps/tarisan/peticiones/especialidades");
+ ruta_pdf_peticiones_rx = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES_RX, "/var/lib/tomcat/webapps/tarisan/peticiones/rx");
+ ruta_pdf_peticiones = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_PETICIONES, "/var/lib/tomcat/webapps/tarisan/peticiones");
+ ruta_pdf_liquidaciones = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_LIQUIDACIONES, "/var/lib/tomcat/webapps/tarisan/liquidaciones");
+ ruta_pdf_irpf = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_IRPF, "/var/lib/tomcat/webapps/tarisan/irpf");
+ ruta_pdf_franquicias = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_PDF_FRANQUICIAS, "/var/lib/tomcat/webapps/tarisan/franquicias");
+ ruta_img = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_RUTA_IMG, "/var/lib/tomcat/webapps/tarisan/img");
+ contrato_dental = Utilidades.cargarPropiedadString(propiedades, PROP_PAC_CONTRATO_DENTAL, "723, 748");
+ salud_con_cobertura_dental = Utilidades.cargarPropiedadInt(propiedades, PROP_PAC_SALUD_CON_COBERTURA_DENTAL, 723);
+
+ //MODIFICADO POR José Javier Ripa el 28/06/2011
+
+ //Cargar las propiedades de conexión al pacs para ver las imágenes.
+ usuario_pacs = Utilidades.cargarPropiedadString(propiedades, PROP_RAYOS_USUARIO, "");
+ clave_usuario_pacs = Utilidades.cargarPropiedadString(propiedades, PROP_RAYOS_CLAVE, "");
+ server_pacs = Utilidades.cargarPropiedadString(propiedades, PROP_RAYOS_SERVER, "");
+
+ //Configuracion conexiones chipcardd
+ chipcard_login=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_LOGIN, "");
+ chipcard_pass=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_PASS, "");
+ chipcard_terminal=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_TERMINAL, "");
+ chipcard_profesional=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_PROFESIONAL, "");
+ chipcard_url=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_URL, "");
+ chipcard_company=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_COMPANY, "");
+ chipcard_lista=Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_LISTA, "");
+ chipcard_oper_auto = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_AUTO, "");
+ chipcard_oper_deny = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_DENY, "");
+
+
+ //BIN'es VÁLIDOS CHIPCARD
+ bin_chipcard_propios = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_PROPIOS, "");
+ bin_chipcard_dkv = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_DKV, "");
+ bin_chipcard_adeslas = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_ADESLAS, "");
+ bin_chipcard_sanitas = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_SANITAS, "");
+ bin_chipcard_imqbilbo = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_IMQBILBO, "");
+ bin_chipcard_hna = Utilidades.cargarPropiedadString(propiedades, PROP_CHIPCARD_BIN_HNA, "");
+
+ bin_redsa_asisa = Utilidades.cargarPropiedadString(propiedades, PROP_REDSA_BIN_ASISA, "B8461");
+
+ dbhis_usuario = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_USUARIO, "");
+ dbhis_password= Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_PASSWORD, "");
+ dbhis_maquina = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_MAQUINA, "");
+ dbhis_puerto = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_PUERTO, "");
+ dbhis_instancia = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_INSTANCIA, "");
+ dbhis_tipo_servidor = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_TIPO_SERVIDOR, "");
+ dbhis_data_source = Utilidades.cargarPropiedadString(propiedades, PROP_DBHIS_DATASOURCE, "");
+
+ actos_ats_curas = Utilidades.cargarPropiedadString(propiedades, PROP_ACTOS_ATS_CURA, "6000, 6001, 6002, 6003");
+
+ db_destino = Utilidades.cargarPropiedadString(propiedades, PROP_DB_INSTANCIA, "REAL");
+
+
+//BEGIN MODIFICADO por ROUMEN ROUMENOV 15/06/2005
+
+ //Cargar Perfiles CSM
+ int key = 0;
+ String valor = "";
+
+ //PERFIL ADMINISTRADOR
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.ADMINISTRADOR",0);
+ valor = Constantes.PERFIL_ADMINISTRADOR;
+
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL ANALISTA
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.ANALISTA1",0);
+ valor = Constantes.PERFIL_ANALISTA;
+
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL ANALISTA
+ /*key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.ANALISTA2",99);
+ valor = Constantes.PERFIL_ANALISTA;
+
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor)); */
+
+ //PERFIL CABECERA
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.CABECERA",0);
+ valor = Constantes.PERFIL_CABECERA;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL PODOLOGÍA
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.PODOLOGIA",0);
+ valor = Constantes.PERFIL_REHABPOD;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL REHABILITACION
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.REHABILITACION",0);
+ valor = Constantes.PERFIL_REHABPOD;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL ATS
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.ATS",0);
+ valor = Constantes.PERFIL_ATS;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL ESTOMATOLOGÍA
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.DENTISTA",0);
+ valor = Constantes.PERFIL_DENTISTA;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL ODONTOLOGÍA
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.ODONTOLOGIA",0);
+ valor = Constantes.PERFIL_ODONTOLOGIA;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL radiologo
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.RADIOLOGO",0);
+ valor = Constantes.PERFIL_RADIOLOGO;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL Psicoterapia (Padre Menni)
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.PSICOTERAPIA",64);
+ System.out.println("- Linea 667 - Psicoterapia key: " + key);
+ valor = Constantes.PERFIL_REHABPOD;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+ //PERFIL Cirugía Plástica (Dr. Colas)
+ key = Utilidades.cargarPropiedadInt(propiedades,"PERFIL.CIRUGIA_PLASTICA",14);
+ System.out.println("- Linea 673 - Colas key: " + key);
+ valor = Constantes.PERFIL_REHABPOD;
+ tablaPerfiles.put(Integer.valueOf(key),new String(valor));
+
+
+
+
+//END
+ mensaje = " (OK)";
+ }
+ catch(MissingResourceException ex)
+ {
+ mensaje = " (KO, MissingResourceException: " + ex + ")";
+ }
+
+ LogTarisan.inicializarLog();
+ escribirConfiguracionLog(mensaje);
+ }
+
+
+ /**
+ * Crea el data store que se utilizará en la aplicación según se ha indicado en el fichero de propiedades.
+ * Si no existe la clase, por defecto se usará el data store correspondiente a Oracle.
+ * @param nombre Nombre de la clase (incluido su paquete) del data store indicado en el fichero de propiedades.
+ * @return El objeto DataStore correspondiente al parámetro del fichero de propiedades.
+ */
+ private static DataStore crearDataStore(String nombre)
+ {
+ DataStore dataStore = null;
+ @SuppressWarnings("rawtypes")
+ Class clase = null;
+
+ try
+ {
+ clase = Class.forName(nombre);
+ dataStore = (DataStore)clase.newInstance();
+ }
+ catch(ClassNotFoundException ex)
+ {
+ System.out.println(ex);
+ dataStore = crearDataStore(PersistenciaParametros.ORACLE);
+ }
+ catch(IllegalAccessException ex)
+ {
+ System.out.println(ex);
+ dataStore = crearDataStore(PersistenciaParametros.ORACLE);
+ }
+ catch(InstantiationException ex)
+ {
+ System.out.println(ex);
+ dataStore = crearDataStore(PersistenciaParametros.ORACLE);
+ }
+
+ return dataStore;
+ }
+
+ /**
+ * Escribe en el fichero de log el valor de los atributos de clase leídos desde
+ * el fichero de propiedades de la aplicación.
+ * @param mensaje Cadena que indica si el fichero de propiedades se cargó o no correctamente.
+ */
+ private static void escribirConfiguracionLog(String mensaje)
+ {
+ LogTarisan.logger.log(NivelLog.INIT, "Parámetros de configuración cargados" + mensaje);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_LOG_FICHERO + " = " + LogTarisan.getNombreFichero());
+ LogTarisan.logger.log(NivelLog.INIT, PROP_LOG_PATH + " = " + LogTarisan.getPathFichero());
+ LogTarisan.logger.log(NivelLog.INIT, PROP_LOG_TAMANO + " = " + LogTarisan.getTamanoFichero());
+ LogTarisan.logger.log(NivelLog.INIT, PROP_LOG_NUMERO + " = " + LogTarisan.getNumeroFicheros());
+ LogTarisan.logger.log(NivelLog.INIT, PROP_LOG_NIVEL + " = " + LogTarisan.getNivel());
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_VISUAL_DECIMALES + " = " + PersistenciaParametros.decimales);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_VISUAL_FORMATO_FECHAS + " = " + PersistenciaParametros.formatoFechas);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_DATASTORE + " = " + dataStore);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_USUARIO + " = " + PersistenciaParametros.usuario);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_PASSWORD + " = " + PersistenciaParametros.password);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_MAQUINA + " = " + PersistenciaParametros.maquina);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_MAQUINA2 + " = " + PersistenciaParametros.maquina2);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_PUERTO + " = " + PersistenciaParametros.puerto);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_INSTANCIA + " = " + PersistenciaParametros.instancia);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_DATASOURCE + " = " + PersistenciaParametros.dataSource);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_DB_TIPO_SERVIDOR + " = " + PersistenciaParametros.tipoServidorOracle);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAG_FILAS_PAGINACION + " = " + Paginacion.getFilasPorPagina());
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_IMP_CIUDAD + " = " + ciudad);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CLAVE_DIAS_ACTIVIDAD + " = " + diasActividad);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CLAVE_DIAS_CADUCIDAD + " = " + diasCaducidad);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CLAVE_DIAS_PREAVISO + " = " + diasPreaviso);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CLAVE_NUMERO_INTENTOS + " = " + numeroIntentos);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_PERIODO_ANALISIS + " = " + periodoAnalisis);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_PERIODO_RX + " = " + periodoRx);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_CODIGO_VISITA_SUCESIVA + " = " + codigoVisitaSucesiva);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_CODIGO_PRIMERA_VISITA + " = " + codigoPrimeraVisita);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_CODIGO_PRIMERA_LIMPIEZA + " = " + codigoPrimeraLimpieza);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_CODIGO_IGUALAS + " = " + codigoIgualas);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_ANALITICAS + " = " + analiticas);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_RADIODIAGNOSTICO + " = " + radiodiagnostico);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_PERIODO_PRIMERA_VISITA + " = " + periodoPrimeraVisita);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_PERIODO_PRIMERA_VISITA_CHIPCARD + " = " + periodoPrimeraVisitaChipcard);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_PERIODO_NATURAL + " = " + periodoNatural);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_PAC_AUTORIZACION + " = " + autorizacion);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_RAYOS_USUARIO + " = " + usuario_pacs);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_RAYOS_CLAVE + " = " + clave_usuario_pacs);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_RAYOS_SERVER + " = " + server_pacs);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_PROPIOS + " = " + bin_chipcard_propios);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_DKV + " = " + bin_chipcard_dkv);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_ADESLAS + " = " + bin_chipcard_adeslas);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_SANITAS + " = " + bin_chipcard_sanitas);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_IMQBILBO + " = " + bin_chipcard_imqbilbo);
+ LogTarisan.logger.log(NivelLog.INIT, PROP_CHIPCARD_BIN_HNA + " = " + bin_chipcard_hna);
+
+ LogTarisan.logger.log(NivelLog.INIT, PROP_REDSA_BIN_ASISA + " =" + bin_redsa_asisa);
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaControlMedicos.java b/Fuentes/com/tarisan/control/PersistenciaControlMedicos.java
new file mode 100644
index 0000000..6be73e0
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaControlMedicos.java
@@ -0,0 +1,54 @@
+package com.tarisan.control;
+
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.*;
+
+import java.sql.*;
+
+public class PersistenciaControlMedicos
+{
+ public boolean insertar(int medico, String tarjeta)
+ {
+ boolean resul=false;
+ StringBuffer sqlInsert = new StringBuffer();
+ Object[] aValores = new Object[3];
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - El medico "+medico+" pasa la tarjeta: "+tarjeta+" vamos a meterlo en la tabla oracle");
+ sqlInsert.append("Insert into control_medicos (id, medico, fecha, tarjeta) values (?, ?, sysdate, ?)");
+ aValores[0]=siguiente_id();
+ aValores[1]=Integer.valueOf(medico);
+ aValores[2]=new String(tarjeta);
+
+ resul = ParametrosConfiguracion.dataStore.insertar(sqlInsert.toString(), aValores, conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al insertar el registro de control de medicos");
+ }
+
+ return resul;
+ }
+
+ public int siguiente_id()
+ {
+ int resul = 0;
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ String sql = "select max(id) maximo from control_medicos";
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ while(rs.next())
+ {
+ resul = rs.getInt(1);
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener el max id de la tabla control_medicos");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQL al obtener el max id de la tabla control_medicos");
+ }
+ if(resul == 0)
+ resul = 1;
+ else
+ resul += 1;
+ return resul;
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaControlMedicosTroquelado.java b/Fuentes/com/tarisan/control/PersistenciaControlMedicosTroquelado.java
new file mode 100644
index 0000000..befcce8
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaControlMedicosTroquelado.java
@@ -0,0 +1,54 @@
+package com.tarisan.control;
+
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.*;
+
+import java.sql.*;
+
+public class PersistenciaControlMedicosTroquelado
+{
+ public boolean insertar(int medico, String troquelado)
+ {
+ boolean resul=false;
+ StringBuffer sqlInsert = new StringBuffer();
+ Object[] aValores = new Object[3];
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - El medico "+medico+" mete el troquelado: "+troquelado+" vamos a meterlo en la tabla oracle");
+ sqlInsert.append("Insert into control_medicos_troquelado (id, medico, fecha, troquelado) values (?, ?, sysdate, ?)");
+ aValores[0]=siguiente_id();
+ aValores[1]=Integer.valueOf(medico);
+ aValores[2]=new String(troquelado);
+
+ resul = ParametrosConfiguracion.dataStore.insertar(sqlInsert.toString(), aValores, conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al insertar el registro de control de medicos troquelado");
+ }
+
+ return resul;
+ }
+
+ public int siguiente_id()
+ {
+ int resul = 0;
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ String sql = "select max(id) maximo from control_medicos_troquelado";
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ while(rs.next())
+ {
+ resul = rs.getInt(1);
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener el max id de la tabla control_medicos_troquelado");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQL al obtener el max id de la tabla control_medicos_troquelado");
+ }
+ if(resul == 0)
+ resul = 1;
+ else
+ resul += 1;
+ return resul;
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaHce_doc_ext_ap.java b/Fuentes/com/tarisan/control/PersistenciaHce_doc_ext_ap.java
new file mode 100644
index 0000000..e732be9
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaHce_doc_ext_ap.java
@@ -0,0 +1,85 @@
+package com.tarisan.control;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Vector;
+
+import com.tarisan.data.Tanoticias;
+import com.tarisan.data.Tavolin;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+
+import com.tarisan.data.Hce_doc_ext_ap;
+
+public class PersistenciaHce_doc_ext_ap {
+
+ /**
+ * El objeto Paginacion que controla el nmero de filas a mostrar por cada pgina.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber qu pgina se est visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ public Vector seleccionar(Number epis_pk) throws ExcepcionTarisan
+ {
+ Vector vResultado = new Vector();
+ Hce_doc_ext_ap hce_doc_ext_ap = null;
+ String consulta = "";
+ String nombrePdf = "";
+
+ consulta = "select * from hce_doc_ext_ap where epis_pk = "+ epis_pk;
+
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, consulta);
+
+ while(rs.next())
+ {
+ String[] partes = rs.getString("NOMBRE_DOC").split("\\.");
+ nombrePdf = partes[0];
+ hce_doc_ext_ap = new Hce_doc_ext_ap();
+ hce_doc_ext_ap.setNombre_doc(nombrePdf);
+ vResultado.addElement(hce_doc_ext_ap);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla hce_doc_ext_ap (" + consulta + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de hce_doc_ext_ap: " + sqle + " (" + consulta + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de hce_doc_ext_ap: " + sqle + " (" + consulta + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de hce_doc_ext_ap: " + sqle + " (" + consulta + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de hce_doc_ext_ap: " + sqle + " (" + consulta + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaPaciente.java b/Fuentes/com/tarisan/control/PersistenciaPaciente.java
new file mode 100644
index 0000000..ec45c71
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaPaciente.java
@@ -0,0 +1,726 @@
+/**
+ * @(#) PersistenciaPaciente.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Paciente;
+import com.tarisan.data.Tarjeta;
+import com.tarisan.excepcion.*;
+import com.tarisan.log.*;
+
+import java.sql.*;
+import java.util.Calendar;
+
+
+/**
+ * Controla los accesos a la persistencia para la entidad Paciente.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaPaciente implements Constantes
+{
+
+ /**
+ * Selecciona el primer registro de la tabla ttbenefi encontrado para la tarjeta de paciente pasada por el médico.
+ * @param tarjeta El objeto Tarjeta para el que se realiza la búsqueda.
+ * @return El Paciente encontrado en la tabla de beneficiarios,
+ * o null si se produce alguna excepción.
+ * @throws
+ */
+ public Object seleccionar(Tarjeta tarjeta, int medico) throws ExcepcionTarisan
+ {
+ Object retorno = null;
+ Paciente paciente = null;
+ StringBuffer sqlSelect = new StringBuffer();
+
+
+ try
+ {
+ sqlSelect.append("SELECT ttbenefi.TARJETA");
+ sqlSelect.append(", ttbenefi.CLIENTE");
+ sqlSelect.append(", ttbenefi.FECHA_BAJA");
+ sqlSelect.append(", ttbenefi.LPD_AUT");
+ sqlSelect.append(", ttbenefi.ENTIDAD");
+ sqlSelect.append(", ttclient.SEXO");
+ sqlSelect.append(", ttclient.FECHA_NACIMIENTO");
+ sqlSelect.append(" FROM ttbenefi, ttclient");
+ sqlSelect.append(" WHERE TARJETA = ? AND");
+ sqlSelect.append(" ttbenefi.cliente = ttclient.cliente");
+ sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) ");
+ //sqlSelect.append(" AND POLIZA = ?");
+ //sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Integer.valueOf(tarjeta.getTarjeta());
+ //aCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ //aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ @SuppressWarnings("unused")
+ int numTarjeta = 0;
+ int codCliente = 0;
+ Date fecBaja = null;
+ String autorizado = "";
+ String sexo = "";
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ paciente = new Paciente();
+ tarjeta.setEntidadIMQ(rs.getInt("ENTIDAD"));
+ paciente.setTarjeta(tarjeta);
+ numTarjeta = rs.getInt("TARJETA");
+ codCliente = rs.getInt("CLIENTE");
+ fecBaja = rs.getDate("FECHA_BAJA");
+ autorizado = rs.getString("LPD_AUT");
+ sexo = rs.getString("SEXO");
+ paciente.setSexo(sexo);
+ paciente.setEdad(com.tarisan.util.Utilidades.calcularEdad(rs.getDate("FECHA_NACIMIENTO"), Calendar.getInstance().getTime()));
+ }
+ rs.close();
+
+ Calendar calendario = Calendar.getInstance();
+ /*if((numTarjeta != tarjeta.getTarjeta()) && (tarjeta.getTarjeta() > 0))
+ {
+ //La tarjeta del beneficiario (que no es Visa) está caducada (se ha emitido una posterior)
+ retorno = TARJETA_CADUCADA;
+ }
+ else
+ */
+ if((fecBaja != null) && (calendario.getTime().after((java.util.Date)fecBaja)))
+ {
+ //esa tarjeta está de baja, vamos a buscar por col-pol-orden a ver si tiene una activa
+ sqlSelect.append("SELECT TARJETA");
+ sqlSelect.append(", CLIENTE");
+ sqlSelect.append(", FECHA_BAJA");
+ sqlSelect.append(", LPD_AUT");
+ sqlSelect.append(" FROM ttbenefi");
+ sqlSelect.append(" WHERE COLECTIVO = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND ORDEN = ?");
+ sqlSelect.append(" AND ENTIDAD = ?");
+ sqlSelect.append(" AND (fecha_baja is null or fecha_baja > sysdate) ");
+ Object bCondiciones[] = new Object[4];
+ bCondiciones[0] = Long.valueOf(tarjeta.getColectivo());
+ bCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ bCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ bCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ());
+ int numTarjeta2 = 0;
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ numTarjeta2 = rs.getInt("TARJETA");
+ }
+ rs.close();
+ if(numTarjeta2 != 0)
+ {
+ //La tarjeta pasada está de baja, pero hay otra de alta: tarjeta caducada.
+ retorno = TARJETA_CADUCADA;
+ }
+ else
+ {
+ //El beneficiario está dado de baja
+ retorno = TARJETA_BAJA;
+ }
+ }
+ else if (this.clienteConMorosidad(tarjeta.getColectivo(), tarjeta.getPoliza(), medico))
+ {
+ //La tarjeta del paciente está suspendida (es moroso)
+ retorno = TARJETA_SUSPENSO;
+ }
+ else if ((ParametrosConfiguracion.autorizacion.trim().toUpperCase().compareTo("S") == 0))
+ {
+ //El sistema comprobará la autorización para mostrar los resultados de las analíticas
+ paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico));
+ if(autorizado == null)
+ {
+ paciente.setAutorizado("N");
+ }
+ else
+ {
+ if(autorizado.compareTo("S")==0)
+ paciente.setAutorizado(autorizado);
+ else
+ paciente.setAutorizado("N");
+ }
+ retorno = paciente;
+ }
+ else
+ {
+ //La tarjeta del beneficiario es correcta y no comprobaremos si el paciente ha firmado la autorización
+ paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico));
+ paciente.setAutorizado("S");
+ retorno = paciente;
+ }
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el paciente " + paciente + " de la tabla ttbenefi (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de paciente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return retorno;
+ }
+
+ public Object seleccionarColPolOrd(Tarjeta tarjeta, int medico) throws ExcepcionTarisan
+ {
+ Object retorno = null;
+ /*Paciente paciente = null;*/
+ Paciente paciente = new Paciente();
+ StringBuffer sqlSelect = new StringBuffer();
+ boolean encontrado = false;
+ try
+ {
+ sqlSelect.append("SELECT ttbenefi.TARJETA");
+ sqlSelect.append(", ttbenefi.CLIENTE");
+ sqlSelect.append(", ttbenefi.FECHA_BAJA");
+ sqlSelect.append(", ttbenefi.LPD_AUT");
+ sqlSelect.append(", ttbenefi.ENTIDAD");
+ sqlSelect.append(", ttclient.SEXO");
+ sqlSelect.append(", ttclient.FECHA_NACIMIENTO");
+ sqlSelect.append(" FROM ttbenefi, ttclient");
+ sqlSelect.append(" WHERE COLECTIVO = ? AND");
+ sqlSelect.append(" POLIZA = ? AND");
+ sqlSelect.append(" ORDEN = ? AND");
+ sqlSelect.append(" ttbenefi.cliente = ttclient.cliente");
+ sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) ");
+ //sqlSelect.append(" AND POLIZA = ?");
+ //sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Long.valueOf(tarjeta.getColectivo());
+ aCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ //aCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ //aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ @SuppressWarnings("unused")
+ int numTarjeta = 0;
+ int codCliente = 0;
+ Date fecBaja = null;
+ String autorizado = "";
+ String sexo = "";
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ paciente = new Paciente();
+ tarjeta.setEntidadIMQ(rs.getInt("ENTIDAD"));
+ paciente.setTarjeta(tarjeta);
+ numTarjeta = rs.getInt("TARJETA");
+ codCliente = rs.getInt("CLIENTE");
+ fecBaja = rs.getDate("FECHA_BAJA");
+ autorizado = rs.getString("LPD_AUT");
+ sexo = rs.getString("SEXO");
+ paciente.setSexo(sexo);
+ if(rs.getDate("FECHA_NACIMIENTO") == null){
+ paciente.setEdad(99);
+ }else {
+ paciente.setEdad(com.tarisan.util.Utilidades.calcularEdad(rs.getDate("FECHA_NACIMIENTO"), Calendar.getInstance().getTime()));
+ }
+
+ encontrado = true;
+ }
+ rs.close();
+
+ Calendar calendario = Calendar.getInstance();
+ /*if((numTarjeta != tarjeta.getTarjeta()) && (tarjeta.getTarjeta() > 0))
+ {
+ //La tarjeta del beneficiario (que no es Visa) está caducada (se ha emitido una posterior)
+ retorno = TARJETA_CADUCADA;
+ }
+ else
+ */
+ if(((fecBaja != null) && (calendario.getTime().after((java.util.Date)fecBaja)) ) || (fecBaja == null && encontrado == false))
+ {
+ //esa tarjeta está de baja, vamos a buscar por col-pol-orden a ver si tiene una activa
+ StringBuffer sqlSelect2 = new StringBuffer();
+ sqlSelect2.append("SELECT TARJETA");
+ sqlSelect2.append(", CLIENTE");
+ sqlSelect2.append(", FECHA_BAJA");
+ sqlSelect2.append(", LPD_AUT");
+ sqlSelect2.append(" FROM ttbenefi");
+ sqlSelect2.append(" WHERE COLECTIVO = ?");
+ sqlSelect2.append(" AND POLIZA = ?");
+ sqlSelect2.append(" AND ORDEN = ?");
+ sqlSelect2.append(" AND ENTIDAD = ?");
+ sqlSelect2.append(" AND (fecha_baja is null or fecha_baja > sysdate) ");
+ Object bCondiciones[] = new Object[4];
+ bCondiciones[0] = Long.valueOf(tarjeta.getColectivo());
+ bCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ bCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ bCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ());
+ int numTarjeta2 = 0;
+ ResultSet rs2 = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect2.toString(), bCondiciones);
+ while(rs2.next())
+ {
+ numTarjeta2 = rs.getInt("TARJETA");
+ }
+ rs2.close();
+ if(numTarjeta2 != 0)
+ {
+ //La tarjeta pasada está de baja, pero hay otra de alta: tarjeta caducada.
+ retorno = TARJETA_CADUCADA;
+ }
+ else
+ {
+ //El beneficiario está dado de baja
+ retorno = TARJETA_BAJA;
+ }
+ }
+ else if (this.clienteConMorosidad(tarjeta.getColectivo(), tarjeta.getPoliza(), medico))
+ {
+ //La tarjeta del paciente está suspendida (es moroso)
+ retorno = TARJETA_SUSPENSO;
+ }
+ else if ((ParametrosConfiguracion.autorizacion.trim().toUpperCase().compareTo("S") == 0))
+ {
+ //El sistema comprobará la autorización para mostrar los resultados de las analíticas
+ paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico));
+ if(autorizado == null)
+ {
+ paciente.setAutorizado("N");
+ }
+ else
+ {
+ if(autorizado.compareTo("S")==0)
+ paciente.setAutorizado(autorizado);
+ else
+ paciente.setAutorizado("N");
+ }
+ retorno = paciente;
+ }
+ else
+ {
+ //La tarjeta del beneficiario es correcta y no comprobaremos si el paciente ha firmado la autorización
+ paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico));
+ paciente.setAutorizado("S");
+ retorno = paciente;
+ }
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el paciente " + paciente.getNombre() + " de la tabla ttbenefi (" + sqlSelect.toString() + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de paciente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return retorno;
+ }
+
+
+ /**
+ * Comprueba en la tabla TARECOFI si el cliente buscado tiene morosidad o no.
+ * @param colectivo El número de colectivo.
+ * @param póliza El número de póliza.
+ * @return El valor booleano según sea o no moroso el cliente.
+ * @throws ExcepcionTarisan
+ */
+ private boolean clienteConMorosidad(long colectivo, double poliza, int medico) throws ExcepcionTarisan
+ {
+ boolean retorno;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT PENDIENTE");
+ sqlSelect.append(" FROM TARECOFI, TTCOLECT");
+ sqlSelect.append(" WHERE COLEC = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND TARECOFI.ENTIDAD = TTCOLECT.ENTIDAD");
+ sqlSelect.append(" AND TARECOFI.COLEC = TTCOLECT.COLECTIVO");
+ sqlSelect.append(" AND COPAGO <> 3");
+
+ /* Se excluyen los colectivos que tienen copago transferido (TTCOLECT.COPAGO = 3) */
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = Long.valueOf(colectivo);
+ aCondiciones[1] = Double.valueOf(poliza);
+
+ double importe = -1.0;
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ importe = rs.getDouble("PENDIENTE");
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ if (importe >= 0.0)
+ {
+ retorno = true;
+ }
+ else
+ {
+ retorno = false;
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado la morosidad del cliente: " + importe + " de la tabla TARECOFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ retorno = false;
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de morosidad del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return retorno;
+ }
+
+
+ public String obtenerNombreAsegurado(Tarjeta tarj, int medico)
+ {
+ String resul ="";
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ //SELECT * FROM TTBENEFI WHERE COLECTIVO=3 AND POLIZA=9.5957400185E11 AND ENTIDAD=5 AND ORDEN = 1
+ sqlSelect.append("SELECT CLIENTE FROM TTBENEFI WHERE COLECTIVO=? AND POLIZA=? AND ENTIDAD=? AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[4];
+ aCondiciones[0] = Long.valueOf(tarj.getColectivo());
+ aCondiciones[1] = Long.valueOf(tarj.getPoliza());
+ aCondiciones[2] = Integer.valueOf(tarj.getEntidadIMQ());
+ aCondiciones[3] = Integer.valueOf(tarj.getBeneficiario());
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul = obtenerNombreAsegurado(rs.getInt("CLIENTE"), medico);
+ }
+
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el cliente: " + resul + " de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch (Exception e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - PersistenciaPaciente - obtenerNombreAsegurado(Tarjeta) - Excepcion "+e.toString());
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ /**
+ * Recupera el nombre y apellidos del cliente correspondiente a la tarjeta de paciente.
+ * @param codCliente Código del cliente correspondiente a la tarjeta del paciente.
+ * @return El nombre y apellidos del cliente.
+ * @throws
+ */
+ private String obtenerNombreAsegurado(int codCliente, int medico) throws ExcepcionTarisan
+ {
+ /*StringBuffer nombre = new StringBuffer();*/
+ String nombre = "";
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT NOMBRE");
+ sqlSelect.append(", APELLIDOS");
+ sqlSelect.append(" FROM ttclient");
+ sqlSelect.append(" WHERE CLIENTE = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Integer.valueOf(codCliente);
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ if(rs.getString("APELLIDOS").contains(rs.getString("NOMBRE").trim()))
+ {
+ /*nombre.append(rs.getString("APELLIDOS"));*/
+ nombre = rs.getString("APELLIDOS");
+ }
+ else
+ {
+ /*nombre.append(rs.getString("NOMBRE"));
+ nombre.append(" ");
+ nombre.append(rs.getString("APELLIDOS"));*/
+ nombre = rs.getString("NOMBRE") + " " + rs.getString("APELLIDOS");
+ }
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el cliente: " + nombre/*.toString()*/ + " de la tabla ttclient (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ /*return nombre.toString();*/
+ return nombre;
+ }
+
+
+ /**
+ * Marca el flag de autorización con el valor 'S' a la firma de la autorización por parte del beneficiario.
+ * @param tarjeta El objeto Tarjeta del paciente beneficiario.
+ * @return El resultado de la actualización en base de datos.
+ * @throws
+ *
+ * Se cambia TABENEFI a vista materializada, no se puede hacer update en ella. Se requiere que el médico
+ * lleve el papel de la autorización firmada al IMQ.
+ */
+ public boolean firmarAutorizacion(Tarjeta tarjeta, int medico) throws ExcepcionTarisan
+ {
+ boolean resultado = true;
+ /*
+ Connection conexion = null;
+
+ StringBuffer sqlUpdate = new StringBuffer();
+ sqlUpdate.append("UPDATE ttbenefi");
+ sqlUpdate.append(" SET LPD_AUT = ?");
+ sqlUpdate.append(" WHERE COLECTIVO = ?");
+ sqlUpdate.append(" AND POLIZA = ?");
+ sqlUpdate.append(" AND ORDEN = ?");
+ sqlUpdate.append(" AND ENTIDAD = ?");
+
+ try
+ {
+ Object[] aValores = new Object[1];
+ aValores[0] = "S";
+
+ Object[] aCondiciones = new Object[4];
+ aCondiciones[0] = Integer.valueOf(tarjeta.getColectivo());
+ aCondiciones[1] = Double.valueOf(tarjeta.getPoliza());
+ aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario());
+ aCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ());
+
+ resultado = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones);
+ }
+ catch(ExcepcionTarisan ex)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la actualización de la firma del beneficiario " + tarjeta + ": " + ex + " (" + sqlUpdate + ")");
+ throw ex;
+ }*/
+
+ LogTarisan.logger.log(NivelLog.INFO, medico + " - Ya no se actualiza ttbenefi por que es vista materializada ");
+
+ return resultado;
+ }
+
+ public boolean clienteCompatible(int medico)
+ {
+ boolean esCompatible = false;
+
+ return esCompatible;
+ }
+
+ public Calendar obtenerFechaNacimiento(Tarjeta tarjeta, int medico)
+ {
+ Calendar fecnac = Calendar.getInstance();
+ fecnac.set(Calendar.DAY_OF_MONTH, 1);
+ fecnac.set(Calendar.MONTH, 1);
+ fecnac.set(Calendar.YEAR, 1900);
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("Select fecha_nacimiento ");
+ sqlSelect.append("from ttbenefi, ttclient ");
+ sqlSelect.append("where ttclient.cliente = ttbenefi.cliente ");
+ sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) ");
+
+ Object[] aCondiciones = new Object[1];
+ if(tarjeta.getTarjeta()==0)
+ {
+ sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)");
+ aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado());
+ }
+ else
+ {
+ sqlSelect.append("and ttbenefi.tarjeta = ?");
+ aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta());
+ }
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ try {
+ while(rs.next())
+ {
+ if(rs.getDate("fecha_nacimiento") != null)
+ fecnac.setTime(rs.getDate("fecha_nacimiento"));
+ }
+ rs.close();
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionada la fecha de nacimiento: " + fecnac + " del cliente: " + tarjeta.getTarjetaDesplazado() + "/" + tarjeta.getTarjeta() + "de la tabla ttbenefi (" + sqlSelect + ")");
+ } catch (SQLException e) {
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ } catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al obtener la fecha de nacimiento de la tarjeta: "+tarjeta);
+ }
+
+ return fecnac;
+ }
+
+ public String obtenerNIF(Tarjeta tarjeta, int medico) throws ExcepcionTarisan
+ {
+ String nif = "";
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("Select nif ");
+ sqlSelect.append("from ttbenefi, ttclient ");
+ sqlSelect.append("where ttclient.cliente = ttbenefi.cliente ");
+ sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) ");
+ Object[] aCondiciones = new Object[1];
+ if(tarjeta.getTarjeta()==0)
+ {
+ sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)");
+ aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado());
+ }
+ else
+ {
+ sqlSelect.append("and ttbenefi.tarjeta = ?");
+ aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta());
+ }
+
+
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ try {
+ while(rs.next())
+ {
+ nif = rs.getString("nif");
+ }
+ rs.close();
+
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el nif: " + nif + "del cliente: " + tarjeta.getTarjeta() + " de la tabla ttclient (" + sqlSelect + ")");
+
+ } catch (SQLException e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString());
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ return nif;
+ }
+
+ public String obtenerDomicilio(Tarjeta tarjeta, int medico) throws ExcepcionTarisan
+ {
+ String direccion = "";
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("select ttclient.CP, ttclient.DIRECCION, ttclient.POBLACION");
+ sqlSelect.append(" from ttclient, ttbenefi");
+ sqlSelect.append(" where ttbenefi.CLIENTE = ttclient.CLIENTE ");
+
+ Object[] aCondiciones = new Object[1];
+ if(tarjeta.getTarjeta()==0)
+ {
+ sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)");
+ aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado());
+ }
+ else
+ {
+ sqlSelect.append("and ttbenefi.tarjeta = ?");
+ aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta());
+ }
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ try{
+ while(rs.next())
+ {
+ direccion = rs.getString("DIRECCION").trim() + ", CP: " + rs.getString("CP").trim() + ". " + rs.getString("POBLACION").trim();
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Obtenida dirección: "+direccion);
+ }
+ rs.close();
+ }
+ catch (SQLException e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString());
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+
+ return direccion;
+ }
+
+ public boolean tieneDental(String chipCard, int medico) throws ExcepcionTarisan
+ {
+ boolean dental = false;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("Select ttbenefi.COLECTIVO ");
+ sqlSelect.append("from ttbenefi, TTCOLECT ");
+ sqlSelect.append("where ttbenefi.cliente in (select cliente from ttbenefi where tarjeta_chipcard = '" + chipCard + "') ");
+ sqlSelect.append(" AND TTCOLECT.COLECTIVO = TTBENEFI.COLECTIVO ");
+ sqlSelect.append(" AND TTCOLECT.CONTRATO = 723 ");
+ sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)");
+
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+
+ try {
+ if(rs.next())
+ {
+ dental = true;
+ }
+ rs.close();
+ } catch (SQLException e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString());
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ return dental;
+ }
+
+ public boolean tieneSalud(int entidad, long colectivo, int medico) throws ExcepcionTarisan
+ {
+ boolean salud = false;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("Select ttcolect.CONTRATO ");
+ sqlSelect.append("from ttbenefi, TTCOLECT ");
+ sqlSelect.append(" WHERE TTCOLECT.ENTIDAD = ? ");
+ sqlSelect.append(" AND TTCOLECT.COLECTIVO = ? ");
+ sqlSelect.append(" AND TTCOLECT.COLECTIVO = TTBENEFI.COLECTIVO ");
+ sqlSelect.append(" AND TTCOLECT.ENTIDAD = TTBENEFI.ENTIDAD ");
+ sqlSelect.append(" AND TTCOLECT.CONTRATO <> 723 ");
+ sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)");
+
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = Integer.valueOf(entidad);
+ aCondiciones[1] = Long.valueOf(colectivo);
+
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ try {
+ if(rs.next())
+ {
+ salud = true;
+ }
+ rs.close();
+ } catch (SQLException e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString());
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ return salud;
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaRespuestaChipcard.java b/Fuentes/com/tarisan/control/PersistenciaRespuestaChipcard.java
new file mode 100644
index 0000000..d3d2717
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaRespuestaChipcard.java
@@ -0,0 +1,323 @@
+/**
+ * @(#)
+ */
+package com.tarisan.control;
+
+import java.sql.Connection;
+import java.sql.Date;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Calendar;
+
+import com.tarisan.data.RespuestaChipcard;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+
+public class PersistenciaRespuestaChipcard
+{
+ public RespuestaChipcard parsearRespuesta(String response)
+ {
+ RespuestaChipcard resul = new RespuestaChipcard();
+ if(response != null)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 14: "+response);
+ String campo = "";
+ if(response.contains("")+1, response.indexOf(""));
+ resul.set_mensaje(campo);
+ }
+ else
+ {
+ resul.set_error(false);
+ campo = response.substring(response.indexOf(""), response.indexOf(""));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 18");
+ resul.set_tarjeta(campo);
+ campo = "";
+ campo = response.substring(response.indexOf(""), response.indexOf(""));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 22");
+ resul.set_respuesta(campo);
+ campo = "";
+ campo = response.substring(response.indexOf(""), response.indexOf(""));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 26");
+ resul.set_mensaje(campo);
+ campo = "";
+ resul.set_talon_chipcard(Integer.parseInt(response.substring(response.indexOf("")+8, response.indexOf(""))));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 30");
+ campo = "";
+ resul.set_terminal(Integer.parseInt(response.substring(response.indexOf("")+6, response.indexOf(""))));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 33");
+ campo = "";
+ resul.set_especialidad(Integer.parseInt(response.substring(response.indexOf("")+7, response.indexOf(""))));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 53");
+ campo = "";
+ resul.set_acto(Integer.parseInt(response.substring(response.indexOf("")+6, response.indexOf(""))));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 56");
+ campo = "";
+ // 2013-11-27-09.14.45.100121
+ String tiempo = response.substring(response.indexOf("")+11, response.indexOf(""));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 61. tiempo: "+tiempo);
+ Calendar cal = Calendar.getInstance();
+ int anio = 0;
+ int mes = 0;
+ int dia = 0;
+ int hora=0;
+ int min=0;
+ int sec=0;
+ //cal.set(year, month, date, hourOfDay, minute, second);
+ anio = Integer.valueOf(tiempo.substring(0, 4));
+ LogTarisan.logger.log(NivelLog.DEBUG, "año "+anio);
+ mes = Integer.valueOf(tiempo.substring(5,7));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Mes "+mes);
+ dia = Integer.valueOf(tiempo.substring(8,10));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Dia "+dia);
+ hora = Integer.valueOf(tiempo.substring(11, 13));
+ LogTarisan.logger.log(NivelLog.DEBUG, "hora "+hora);
+ min = Integer.valueOf(tiempo.substring(14, 16));
+ LogTarisan.logger.log(NivelLog.DEBUG, "min "+min);
+ sec = Integer.valueOf(tiempo.substring(17, 19));
+ LogTarisan.logger.log(NivelLog.DEBUG, "sec "+sec);
+ cal.clear();
+ cal.set(Calendar.DAY_OF_MONTH, dia);
+ cal.set(Calendar.MONTH, mes);
+ cal.set(Calendar.YEAR, anio);
+ cal.set(Calendar.HOUR_OF_DAY, hora);
+ cal.set(Calendar.MINUTE, min);
+ cal.set(Calendar.SECOND, sec);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 83");
+ resul.set_fecha_hora(new Date(cal.getTimeInMillis()));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Llega 85");
+ resul.set_xml(response);
+ }
+ }
+ return resul;
+ }
+
+ public Integer obtenerSecuencia()
+ {
+ Integer sec = 0;
+
+ String consulta = "select PETICION_CHIPCARD.NEXTVAL from dual";
+ Connection conexion = null;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, consulta);
+ if(rs.next())
+ sec = rs.getInt("NEXTVAL");
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion TARISAN en obtenerSecuencia");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL en obtenerSecuencia");
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+
+ return sec;
+ }
+
+ public boolean insertar_peticiones(int medico, int especialidad, int acto, String tarjeta, Calendar cal, Integer secuencia)
+ {
+ boolean resul = false;
+ StringBuffer strSql = new StringBuffer();
+ Object[] aValores = new Object[6];
+ strSql.append("INSERT INTO CHIPCARD_PETICIONES (MEDICO, ESPECIALIDAD, ACTO, TARJETA_CHIPCARD, FECHA_HORA, SECUENCIA) VALUES (?, ?, ?, '?', TO_DATE('?', 'dd/mm/yyyy hh24:mi:ss'), ?)");
+ aValores[0] = Integer.valueOf(medico);
+ aValores[1] = Integer.valueOf(especialidad);
+ aValores[2] = Integer.valueOf(acto);
+ aValores[3] = new String(tarjeta);
+ aValores[5] = Integer.valueOf(secuencia);
+ String segundos = "";
+ if(cal.get(Calendar.SECOND)<10)
+ segundos = "0"+cal.get(Calendar.SECOND);
+ else
+ segundos = Integer.toString(cal.get(Calendar.SECOND));
+
+ aValores[4] = new String(cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR)+" "+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+segundos);
+
+ Connection conexion = null;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, aValores, null));
+ resul = ParametrosConfiguracion.dataStore.insertar(Utilidades.obtenerSentenciaSQL(strSql, aValores, null), conexion);
+ }catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al generar la sentencia sql. "+strSql.toString()+aValores);
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+
+ return resul;
+ }
+
+ /**
+ * Recibe el objeto respuesta chipcard y lo inserta en la tabla Chipcard_movimientos.
+ * @param res
+ * @return
+ */
+ public boolean insertar_movimientos(RespuestaChipcard res, Integer secuencia)
+ {
+ boolean resul = false;
+ //INSERTAR EN CHIPCARD_MOVIMIENTOS PARA TENER EN BBDD LOS MOVIMIENTOS DE CHIPCARD
+ /*
+ * TARJETA VARCHAR2(24 BYTE),
+ RESPUESTA VARCHAR2(255 BYTE),
+ MENSAJE VARCHAR2(255 BYTE),
+ AUTORIZACION NUMBER(10) NOT NULL,
+ TERMINAL VARCHAR2(10 BYTE)
+ */
+ StringBuffer strSql = new StringBuffer();
+ Object[] aValores = new Object[10];
+ strSql.append("INSERT INTO CHIPCARD_MOVIMIENTOS (TARJETA, RESPUESTA, MENSAJE, AUTORIZACION, TERMINAL, ESPECIALIDAD, ACTO, FECHA_HORA, XMLCOMPLETO, SECUENCIA) VALUES ('?', '?', '?', ?, '?', ?, ?, to_date('?', 'dd/mm/yyyy hh24:mi:ss'), '?', ?)");
+ aValores[0] = new String(res.get_tarjeta().substring(14));
+ aValores[1] = new String(res.get_respuesta().substring(15));
+ aValores[2] = new String(res.get_mensaje().substring(17));
+ aValores[3] = Integer.valueOf(res.get_talon_chipcard());
+ aValores[4] = Integer.valueOf(res.get_terminal());
+ aValores[5] = Integer.valueOf(res.get_especialidad());
+ aValores[6] = Integer.valueOf(res.get_acto());
+ aValores[9] = Integer.valueOf(secuencia);
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(res.get_fecha_hora());
+ String segundos = "";
+ if(cal.get(Calendar.SECOND)<10)
+ segundos = "0"+cal.get(Calendar.SECOND);
+ else
+ segundos = Integer.toString(cal.get(Calendar.SECOND));
+ aValores[7] = new String(cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR)+" "+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+segundos);
+ aValores[8] = new String(res.get_xml());
+ try {
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, aValores, null));
+ } catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al generar la sentencia sql. "+strSql.toString()+aValores);
+ }
+
+
+ Connection conexion = null;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ //resul = ParametrosConfiguracion.dataStore.insertar(strSql.toString(), aValores, conexion);
+ resul = ParametrosConfiguracion.dataStore.insertar(Utilidades.obtenerSentenciaSQL(strSql, aValores, null), conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion en chipcard_movimientos la respuesta: "+res.get_talon_chipcard()+", el error: "+e.toString());
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+ return resul;
+ }
+
+ public boolean talon_duplicado(Integer autoriz, int medico)
+ {
+ boolean resultado = false;
+ StringBuffer strSql = new StringBuffer();
+ Object[] aCondiciones = new Object[2];
+ strSql.append("select count(talon_chipcard) cuantos from tamovext where talon_chipcard = ? and medico <> ?");
+ aCondiciones[0]=autoriz;
+ aCondiciones[0]=medico;
+ Connection conexion = null;
+ try{
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+ if(rs.next())
+ {
+ int cuanto = rs.getInt("CUANTOS");
+ if(cuanto > 0)
+ resultado = true;
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion en talon_duplicado");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion en talon_duplicado");
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+
+ return resultado;
+ }
+
+ /**
+ * Hemos detectado que si hay dos peticiones exáctamente al mismo tiempo las respuestas se alternan y da un error a pesar de que la respuesta haya sido autorizada.
+ * para asegurarnos buscamos la secuencia de la petición en la tabla de respuestas y "recomprobamos" el resultado
+ * @param secuencia
+ * @return
+ */
+ public boolean obtener_resultado_secuencia(Integer secuencia)
+ {
+ boolean resul = false;
+ String sql = "SELECT RESPUESTA FROM CHIPCARD_MOVIMIENTOS WHERE SECUENCIA = "+secuencia;
+ Connection conexion = null;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ if(rs.next())
+ {
+ String respuesta = rs.getString("RESPUESTA");
+ if(respuesta.contains(ParametrosConfiguracion.chipcard_oper_auto))
+ resul = true;
+ }
+ }catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al obtener resultado por secuencia");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion sql al obtener resultado por secuencia");
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Se encuentra la secuencia "+secuencia+"? "+resul);
+ return resul;
+ }
+
+ public String obtener_respuesta_secuencia(Integer secuencia)
+ {
+ String resul = "";
+ String sql = "SELECT XMLCOMPLETO FROM CHIPCARD_MOVIMIENTOS WHERE SECUENCIA = "+secuencia;
+ Connection conexion = null;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ if(rs.next())
+ {
+ resul = rs.getString("XMLCOMPLETO");
+ }
+ }catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion tarisan al obtener resultado por secuencia");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion sql al obtener resultado por secuencia");
+ }
+
+ try {
+ conexion.close();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al cerrar la conexion con oracle");
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Se encuentra la secuencia "+secuencia+"? "+resul);
+
+ return resul;
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaTTColect.java b/Fuentes/com/tarisan/control/PersistenciaTTColect.java
new file mode 100644
index 0000000..46efa07
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTTColect.java
@@ -0,0 +1,67 @@
+/**
+ * @(#) PersistenciaPaciente.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.excepcion.*;
+import com.tarisan.log.*;
+
+import java.sql.*;
+import java.util.Calendar;
+
+
+/**
+ * Controla los accesos a la persistencia para la entidad Paciente.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTTColect implements Constantes
+{
+
+ /**
+ * Selecciona el primer registro de la tabla ttbenefi encontrado para la tarjeta de paciente pasada por el médico.
+ * @param tarjeta El objeto Tarjeta para el que se realiza la búsqueda.
+ * @return El Paciente encontrado en la tabla de beneficiarios,
+ * o null si se produce alguna excepción.
+ * @throws
+ */
+ public int obtenerContrato(int entidad, long colectivo) throws ExcepcionTarisan
+ {
+ int contrato=0;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT CONTRATO");
+ sqlSelect.append(" FROM TTCOLECT");
+ sqlSelect.append(" WHERE ENTIDAD = ?");
+ sqlSelect.append(" AND COLECTIVO = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = Integer.valueOf(entidad);
+ aCondiciones[1] = Long.valueOf(colectivo);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ contrato = rs.getInt("CONTRATO");
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el contrato: " + contrato + " de la tabla TTCOLECT (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de morosidad del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return contrato;
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTTFranquiciasDentales.java b/Fuentes/com/tarisan/control/PersistenciaTTFranquiciasDentales.java
new file mode 100644
index 0000000..e15ae79
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTTFranquiciasDentales.java
@@ -0,0 +1,244 @@
+package com.tarisan.control;
+
+
+import com.tarisan.data.TTFranquiciasDentales;
+import com.tarisan.data.Tamedico;
+import com.tarisan.excepcion.*;
+import com.tarisan.log.*;
+import com.tarisan.util.Utilidades;
+
+import java.sql.*;
+import java.util.Vector;
+
+public class PersistenciaTTFranquiciasDentales {
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+
+ /**
+ * Obtiene una franquicia dental.
+ * @param especialidad Numero de especialidad.
+ * @param entidad Número de entidad.
+ * @param colectivo Número de colectivo.
+ * @param anio.
+ * @return Objeto TTFranquiciasDentales.
+ * @throws
+ */
+ public Vector obtenerFranquicia(int especialidad, int entidad, long colectivo, int anio, String busquedaActo, int pagina) throws ExcepcionTarisan
+ {
+ int elementosPaginacion=1;
+
+ Vector vResultado = new Vector();
+ TTFranquiciasDentales ttFranquiciasDentales = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT ttfranquicias_dentales.precio, ttfranquicias_dentales.acto, ttactmed.descripcion");
+ strSql.append(" FROM ttfranquicias_dentales, ttactmed");
+ strSql.append(" WHERE ttactmed.especialidad = TTFRANQUICIAS_DENTALES.ESPECIALIDAD");
+ strSql.append(" AND ttactmed.ACTO = TTFRANQUICIAS_DENTALES.ACTO");
+ strSql.append(" AND ttfranquicias_dentales.especialidad=?");
+ strSql.append(" AND ttfranquicias_dentales.entidad=?");
+ strSql.append(" AND ttfranquicias_dentales.colectivo=?");
+ strSql.append(" AND ttfranquicias_dentales.anio=?");
+
+ //comprobamos si se trata de una busqueda de actos medicos
+ if (!busquedaActo.equalsIgnoreCase("")) //la sql tiene tres parametros
+ {
+ if (busquedaActo.endsWith("*"))
+ busquedaActo=busquedaActo.replace('*', '%');
+ else
+ busquedaActo="%" + busquedaActo + "%";
+
+ strSql.append(" AND ttactmed.descripcion LIKE ?");
+
+ //el array de objetos sera de tres elementos
+ aCondiciones = new Object[5];
+ aCondiciones[4] = busquedaActo;
+ }
+ else //la sql solo tiene dos parametros
+ aCondiciones = new Object[4];
+
+ aCondiciones[0] = Integer.valueOf(especialidad);
+ aCondiciones[1] = Integer.valueOf(entidad);
+ aCondiciones[2] = Long.valueOf(colectivo);
+ aCondiciones[3] = Integer.valueOf(anio);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones));
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ ttFranquiciasDentales = new TTFranquiciasDentales();
+ ttFranquiciasDentales.setEspecialidad(especialidad);
+ ttFranquiciasDentales.setActo(rs.getInt("ACTO"));
+ ttFranquiciasDentales.setEntidad(entidad);
+ ttFranquiciasDentales.setColectivo(colectivo);
+ ttFranquiciasDentales.setAnio(anio);
+ ttFranquiciasDentales.setPrecio(rs.getInt("PRECIO"));
+ ttFranquiciasDentales.setDescripcion(rs.getString("DESCRIPCION"));
+ vResultado.addElement(ttFranquiciasDentales);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Franquicia dental obtenida de la tabla ttfranquicias_dentales es: (" + strSql.toString() + ")");
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+ public int obtenerNumeroFranquicia(int especialidad, int entidad, long colectivo, int anio)
+ {
+
+ int resultado = 0;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT distinct(ttfranquicias_dentales.tipo_franquicia)");
+ strSql.append(" FROM ttfranquicias_dentales");
+ strSql.append(" WHERE ttfranquicias_dentales.especialidad=?");
+ strSql.append(" AND ttfranquicias_dentales.entidad=?");
+ strSql.append(" AND ttfranquicias_dentales.colectivo=?");
+ strSql.append(" AND ttfranquicias_dentales.anio=?");
+
+ aCondiciones = new Object[4];
+
+ aCondiciones[0] = Integer.valueOf(especialidad);
+ aCondiciones[1] = Integer.valueOf(entidad);
+ aCondiciones[2] = Long.valueOf(colectivo);
+ aCondiciones[3] = Integer.valueOf(anio);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones));
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ resultado = rs.getInt("TIPO_FRANQUICIA");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Franquicia dental obtenida de la tabla ttfranquicias_dentales es: (" + strSql.toString() + ")");
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+
+ }
+
+ return resultado;
+ }
+
+ public int obtenerNumeroFranquiciaPorContrato(int contrato)
+ {
+
+ int resultado = 0;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT distinct(ttfranquicias_dentales.tipo_franquicia)");
+ strSql.append(" FROM ttfranquicias_dentales");
+ strSql.append(" WHERE ttfranquicias_dentales.contrato=?");
+
+ aCondiciones = new Object[1];
+
+ aCondiciones[0] = Integer.valueOf(contrato);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones));
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ resultado = rs.getInt("TIPO_FRANQUICIA");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Franquicia dental obtenida de la tabla ttfranquicias_dentales es: (" + strSql.toString() + ")");
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de ttfranquicias_dentales: " + sqle + " (" + strSql.toString() + ")");
+
+ }
+
+ return resultado;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTTMovaut.java b/Fuentes/com/tarisan/control/PersistenciaTTMovaut.java
new file mode 100644
index 0000000..fc0e9f8
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTTMovaut.java
@@ -0,0 +1,430 @@
+package com.tarisan.control;
+
+import com.tarisan.data.Paciente;
+import com.tarisan.data.TTMovaut;
+import com.tarisan.data.Tarjeta;
+import com.tarisan.data.Taconaut;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la Tabla TTMovaut para gestionar las autorizaciones de un beneficiario
+ * @author csm_jjripaper
+ *
+ */
+public class PersistenciaTTMovaut implements Constantes
+{
+
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+ /**
+ * Obtener el número de autorización a partir de la entidad, colectivo, poliza y orden de un beneficiario
+ * @param entidad La entidad
+ * @param col El colectivo
+ * @param pol La póliza
+ * @param ord El orden
+ * @return El número de autorización, 0 si no tiene ninguna activa.
+ */
+ public long ObtenerAutorizacion(int entidad, int col, int pol, int ord, int medico)
+ {
+ long autorizacion = 0;
+ Paciente pac = new Paciente();
+ Tarjeta tarjeta = new Tarjeta();
+ tarjeta.setColectivo(col);
+ tarjeta.setPoliza(pol);
+ tarjeta.setBeneficiario(ord);
+ pac.setTarjeta(tarjeta);
+ autorizacion = ObtenerAutorizacion(pac, medico);
+ return autorizacion;
+ }
+
+
+ /**
+ * Obtener el número de autorización a partir de un objeto paciente
+ * @param pac El paciente
+ * @param medico El médico solicitante de la autorizacion
+ * @return El número de autorización, 0 si no tiene ninguna autorización
+ */
+ public long ObtenerAutorizacion(Paciente pac, int medico)
+ {
+ long autorizacion = 0;
+ int acto = 0;
+ int cantidad = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+ PersistenciaTamedico persistenciaTamedico = new PersistenciaTamedico();
+
+ try
+ {
+ sqlSelect.append("SELECT autorizacion from ttmovaut ");
+ sqlSelect.append("WHERE MEDICO = ? ");
+ sqlSelect.append("AND (especialidad1 = ? or ");
+ sqlSelect.append("especialidad2 = ? or ");
+ sqlSelect.append("especialidad3 = ? or ");
+ sqlSelect.append("especialidad4 = ?) ");
+ sqlSelect.append("AND colectivo = ? ");
+ sqlSelect.append("AND poliza = ? ");
+ sqlSelect.append("AND orden = ? ");
+ sqlSelect.append("AND fecha_autorizacion <= sysdate");
+ sqlSelect.append(" order by FECHA_AUTORIZACION asc");
+
+
+ Object aCondiciones[] = new Object[8];
+ aCondiciones[0] = Integer.valueOf(medico);
+ aCondiciones[1] = Integer.valueOf(persistenciaTamedico.obtenerEspecialidad(medico));
+ aCondiciones[2] = Integer.valueOf(persistenciaTamedico.obtenerEspecialidad(medico));
+ aCondiciones[3] = Integer.valueOf(persistenciaTamedico.obtenerEspecialidad(medico));
+ aCondiciones[4] = Integer.valueOf(persistenciaTamedico.obtenerEspecialidad(medico));
+ aCondiciones[5] = Long.valueOf(pac.getTarjeta().getColectivo());
+ aCondiciones[6] = Double.valueOf(pac.getTarjeta().getPoliza());
+ aCondiciones[7] = Integer.valueOf(pac.getTarjeta().getBeneficiario());
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Sentencia:" +Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ autorizacion = rs.getLong("autorizacion");
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return autorizacion;
+ }
+
+ /**
+ * Clase para saber que actos están incluidos en una autorización y que el médico solo pueda seleccionar entre esos actos.
+ * @param autorizacion El número de la autorización
+ * @return Un vector con los códigos de los actos autorizados
+ */
+ public Vector ObtenerActosAutorizados(long autorizacion, int especialidad){
+ Vector vSeleccion = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("SELECT acto1, especialidad2, acto2, especialidad3, acto3, especialidad4, acto4 from ttmovaut ");
+ sqlSelect.append("WHERE autorizacion = ? ");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ vSeleccion.addElement(rs.getInt("acto1"));
+ if(rs.getInt("especialidad2") == especialidad)
+ vSeleccion.addElement(rs.getInt("acto2"));
+
+ if(rs.getInt("especialidad3") == especialidad)
+ vSeleccion.addElement(rs.getInt("acto3"));
+
+ if(rs.getInt("especialidad4") == especialidad)
+ vSeleccion.addElement(rs.getInt("acto4"));
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return vSeleccion;
+ }
+
+ public Vector ObtenerAutorizacionesPoliza(long autorizacion)
+ {
+ Vector resultado = new Vector();
+ TTMovaut ttmov = ObtenerAutorizacionTTmovaut(autorizacion);
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("select autorizacion from ttmovaut ");
+ sqlSelect.append("where entidad = ? ");
+ sqlSelect.append("and colectivo = ? ");
+ sqlSelect.append("and poliza = ? ");
+ sqlSelect.append("and orden = ? ");
+ Object aCondiciones[] = new Object[4];
+ aCondiciones[0] = Integer.valueOf(ttmov.get_entidad());
+ aCondiciones[1] = Long.valueOf(ttmov.get_colectivo());
+ aCondiciones[2] = Long.valueOf(ttmov.get_poliza());
+ aCondiciones[3] = Integer.valueOf(ttmov.get_orden());
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resultado.add(rs.getLong("AUTORIZACION"));
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de las autorizaciones del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de las autorizaciones del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return resultado;
+ }
+
+ public Vector ObtenerAutorizacionADM(long autorizacion)
+ {
+ Vector resultado = new Vector();
+ Taconaut tacon = new Taconaut();
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("select * from ttmovaut ");
+ sqlSelect.append("where autorizacion = ?");
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ for(int i=1;i<5;i++)
+ {
+ if(rs.getInt("cantidad"+i) >0)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "ObtenerAutorizacionADM - Llega 165 - Iteracion: "+i);
+ tacon = new Taconaut();
+ tacon.setActo(rs.getInt("acto"+i));
+ tacon.setAutorizacion(String.valueOf(autorizacion));
+ tacon.setCantidad(rs.getInt("cantidad"+i));
+ tacon.setEspecialidad(rs.getInt("especialidad"+i));
+ tacon.setFromGesigu(true);
+ tacon.setInforme("");
+ tacon.setMedico(rs.getInt("medico"));
+ resultado.add(tacon);
+ }
+ }
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return resultado;
+ }
+
+ public TTMovaut ObtenerAutorizacionTTmovaut(long autorizacion){
+ TTMovaut ttmov = new TTMovaut();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Inicia ObtenerAutorizacionTTMovaut");
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("Select * from ttmovaut ");
+ sqlSelect.append("where autorizacion = ?");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Se encuentra la autorizacion: "+autorizacion);
+ ttmov.set_autorizacion(autorizacion);
+ ttmov.set_medico(rs.getInt("MEDICO"));
+ ttmov.set_especialidad1(rs.getInt("ESPECIALIDAD1"));
+ ttmov.set_acto1(rs.getInt("ACTO1"));
+ ttmov.set_entidad(rs.getInt("ENTIDAD"));
+ ttmov.set_colectivo(rs.getLong("COLECTIVO"));
+ ttmov.set_poliza(rs.getLong("POLIZA"));
+ ttmov.set_orden(rs.getInt("ORDEN"));
+ ttmov.set_fecha_autorizacion(rs.getDate("FECHA_AUTORIZACION"));
+ ttmov.set_prescriptor(rs.getInt("PRESCRIPTOR"));
+ ttmov.set_provincia(rs.getString("PROVINCIA"));
+ ttmov.set_cantidad1(rs.getInt("CANTIDAD1"));
+ ttmov.set_descripcion1(rs.getString("DESCRIPCION1"));
+ ttmov.set_fecha_validez(rs.getDate("FECHA_VALIDEZ"));
+ ttmov.set_nombre_completo(rs.getString("NOMBRE_COMPLETO"));
+ ttmov.set_especialidad2(rs.getInt("ESPECIALIDAD2"));
+ ttmov.set_acto2(rs.getInt("ACTO2"));
+ ttmov.set_cantidad2(rs.getInt("CANTIDAD2"));
+ ttmov.set_descripcion2(rs.getString("DESCRIPCION2"));
+ ttmov.set_especialidad3(rs.getInt("ESPECIALIDAD3"));
+ ttmov.set_acto3(rs.getInt("ACTO3"));
+ ttmov.set_cantidad3(rs.getInt("CANTIDAD3"));
+ ttmov.set_descripcion3(rs.getString("DESCRIPCION3"));
+ ttmov.set_especialidad4(rs.getInt("ESPECIALIDAD4"));
+ ttmov.set_acto4(rs.getInt("ACTO4"));
+ ttmov.set_cantidad4(rs.getInt("CANTIDAD4"));
+ ttmov.set_descripcion4(rs.getString("DESCRIPCION4"));
+ ttmov.set_texto(rs.getString("TEXTO"));
+ ttmov.set_usuario(rs.getString("USUARIO"));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Se ha cargado bien la autorizacion: "+autorizacion);
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ LogTarisan.logger.log(NivelLog.DEBUG, "Fin ObtenerAutorizacionTTMovaut");
+ return ttmov;
+ }
+
+ public int ObtenerCantidadActoAutorizado(long autorizacion, int acto)
+ {
+ int cuantos = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT cantidad1, cantidad2, cantidad3, cantidad4, acto1, acto2, acto3, acto4 from ttmovaut ");
+ sqlSelect.append("WHERE autorizacion = ? ");
+ sqlSelect.append("and (acto1 = ? or acto2 = ? or acto3 = ? or acto4 = ?)");
+
+ Object aCondiciones[] = new Object[5];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+ aCondiciones[1] = Integer.valueOf(acto);
+ aCondiciones[2] = Integer.valueOf(acto);
+ aCondiciones[3] = Integer.valueOf(acto);
+ aCondiciones[4] = Integer.valueOf(acto);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ if(rs.getInt("acto1") == acto)
+ cuantos = rs.getInt("cantidad1");
+ if(rs.getInt("acto2") == acto)
+ cuantos = rs.getInt("cantidad2");
+ if(rs.getInt("acto3") == acto)
+ cuantos = rs.getInt("cantidad3");
+ if(rs.getInt("acto4") == acto)
+ cuantos = rs.getInt("cantidad4");
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerCantidadActoAutorizado: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerCantidadActoAutorizado: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return cuantos;
+ }
+
+ /*public Vector BuscarAutorizacionPorMedicoYPoliza(int medico, int colectivo, long poliza, int orden)
+ {
+ Vector resultado = new Vector();
+ String sqlSelect = new String();
+ String tarjeta="";
+ String tarjeta_chipcard="";
+ try
+ {
+ sqlSelect = "select * from ttmovaut where medico = "+ medico + " and colectivo = "+ colectivo + " and poliza = "+ poliza + " and orden = "+ orden;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "BuscarAutorizacionPorMedicoYPoliza - Llega 165 - Iteracion: ");
+ Taconaut tacon = new Taconaut();
+ tacon.setActo(rs.getInt("acto1"));
+ tacon.setAutorizacion(rs.getString("autorizacion"));
+ tacon.setCantidad(rs.getInt("cantidad1"));
+ tacon.setEspecialidad(rs.getInt("especialidad1"));
+ tacon.setFromGesigu(true);
+ tacon.setInforme("");
+ tacon.setMedico(rs.getInt("medico"));
+ resultado.add(tacon);
+
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return resultado;
+ } */
+
+ public Vector BuscarAutorizacionPorMedicoYPoliza(int medico, int colectivo, long poliza, int orden, int pagina)
+ {
+ int elementosPaginacion=1;
+ Vector resultado = new Vector();
+ String sqlSelect = new String();
+ String tarjeta="";
+ String tarjeta_chipcard="";
+ try
+ {
+ sqlSelect = "select * from ttmovaut where medico = "+ medico + " and colectivo = "+ colectivo + " and poliza = "+ poliza + " and orden = "+ orden;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "BuscarAutorizacionPorMedicoYPoliza - Llega 165 - Iteracion: ");
+ Taconaut tacon = new Taconaut();
+ tacon.setActo(rs.getInt("acto1"));
+ tacon.setAutorizacion(rs.getString("autorizacion"));
+ tacon.setCantidad(rs.getInt("cantidad1"));
+ tacon.setEspecialidad(rs.getInt("especialidad1"));
+ tacon.setFromGesigu(true);
+ tacon.setInforme("");
+ tacon.setMedico(rs.getInt("medico"));
+ resultado.add(tacon);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return resultado;
+ }
+
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaDespla.java b/Fuentes/com/tarisan/control/PersistenciaTaDespla.java
new file mode 100644
index 0000000..e692bd0
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaDespla.java
@@ -0,0 +1,263 @@
+package com.tarisan.control;
+
+import java.sql.*;
+import java.util.Calendar;
+
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+import com.tarisan.data.*;
+
+public class PersistenciaTaDespla implements Constantes
+{
+ public Tadespla Seleccionar_Tadespla(String tarjeta)
+ {
+ Tadespla tades = new Tadespla ();
+ StringBuffer sqlSelect = new StringBuffer();
+ tades.set_tarjeta("");
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTaDespla - Seleccionar_Tadespla - Inicio");
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ sqlSelect.append("Select * from tadesplaz ");
+ sqlSelect.append("where TARJETA_CHIPCARD = ?");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjeta);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ tades.set_tarjeta((tarjeta == null)?"":tarjeta);
+ tades.setContrato(rs.getInt("CONTRATO_CHIPCARD"));
+ tades.setEntidad_chipcard(rs.getInt("ENTIDAD_CHIPCARD"));
+ tades.setFecha_Alta(rs.getDate("FECHA_ALTA"));
+ tades.setFecha_Registro(rs.getDate("FECHA_REGISTRO"));
+ tades.setNombre(rs.getString("NOMBRE_COMPLETO"));
+ tades.setResultado(rs.getInt("TRATADO"));
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "PersistenciaTaDespla - Seleccionar_Tadespla - Error: " + e.toString() + " (" + sqlSelect.toString() + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "PersistenciaTaDespla - Seleccionar_Tadespla - Error: " + e.toString() + " (" + sqlSelect.toString() + ")");
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTaDespla - Seleccionar_Tadespla - Fin");
+ return tades;
+ }
+
+ public Date UltimaVisita_Tadespla(int tarjeta, int medico, int espe) throws ExcepcionTarisan
+ {
+ Date resultado = new Date(Calendar.getInstance().getTimeInMillis());
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "\nPersistenciaTaDespla - UltimaVisita_Tadespla - Inicio");
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ sqlSelect.append("Select max(fecha_imp) as fecha_imp from tadespla ");
+ sqlSelect.append("where tarjeta = ? ");
+ sqlSelect.append("and medico = ? ");
+ sqlSelect.append("and especialidad = ? ");
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Integer.valueOf(tarjeta);
+ aCondiciones[1] = Integer.valueOf(medico);
+ aCondiciones[2] = Integer.valueOf(espe);
+
+ try
+ {
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resultado = rs.getDate("fecha_imp");
+ }
+ rs.close();
+ }
+ catch (ExcepcionTarisan e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ resultado.setTime(1);
+ LogTarisan.logger.log(NivelLog.ERROR, "PersistenciaTaDespla - UltimaVisita_Tadespla - Error: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ resultado.setTime(1);
+ LogTarisan.logger.log(NivelLog.ERROR, "PersistenciaTaDespla - UltimaVisita_Tadespla - Error: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ if(resultado == null)
+ {
+ resultado = new Date(Calendar.getInstance().getTimeInMillis());
+ resultado.setTime(1);
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "\nPersistenciaTaDespla - UltimaVisita_Tadespla - Final");
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ return resultado;
+ }
+
+ public boolean esPrimeraVisitaTarisan(int tarjeta, int medico, int espe)
+ {
+ boolean resultado = false;
+ LogTarisan.logger.log(NivelLog.DEBUG, "Inicio - esprimeravisitatarisan: tarjeta:"+tarjeta+" medico:"+medico+" espe:"+espe);
+
+ Calendar ultimavisita = Calendar.getInstance();
+ Calendar fechaAct = Calendar.getInstance();
+ try {
+ ultimavisita.setTime(UltimaVisita_Tadespla(tarjeta, medico, espe));
+ LogTarisan.logger.log(NivelLog.DEBUG, "esprimeravisitatarisan - Tenemos la fecha de la ultima visita: ");
+
+ if(ultimavisita == null)
+ {
+ resultado = true;
+ }
+ else
+ {
+ if(fechaAct.get(Calendar.YEAR) != ultimavisita.get(Calendar.YEAR))
+ resultado = true;
+ else
+ resultado = false;
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al calcular la PrimeravisitaTarisan"+e);
+ }
+
+
+ return resultado;
+ }
+
+ /**
+ * Funcion que inserta una línea en la tabla tadespla, recibe un objeto Tadespla
+ * @param tades
+ * @return Devuelve cierto o falso según si la inserción se ha realizado correctamente o no...
+ * @throws ExcepcionTarisan
+ */
+ public boolean Insertar_Tadespla(Tadespla tades, int medico) throws ExcepcionTarisan
+ {
+ boolean exito = false;
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "\n\nPersistencaTaDespla - Insertar_Tadespla - Inicio");
+ LogTarisan.logger.log(NivelLog.DEBUG, "Valores: "+tades.getContrato()+" - "+tades.getEntidad_chipcard()+" - "+tades.getNombre()+" - "+tades.getTarjeta()+" - "+tades.getTroquelado());
+ Connection conexion = null;
+ /*Tadespla verify = Seleccionar_Tadespla(tades.getTarjeta());
+ if(verify.getTarjeta().length()>0)
+ {
+ LogTarisan.logger.log(NivelLog.INFO, "Se ha vuelto a intentar insertar el desplazado : "+verify.getNombre());
+
+ java.sql.Date dtFecha = new java.sql.Date(Calendar.getInstance().getTime().getTime());
+
+ sqlSelect.append("UPDATE TADESPLAZ SET TRATADO = 0, FECHA_REGISTRO = ? ");
+ sqlSelect.append("WHERE TADESPLAZ.TARJETA_CHIPCARD = ?");
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tades.getTarjeta());
+ Object aValores[] = new Object[1];
+ aValores[0] = (String)Utilidades.formatear_fecha(dtFecha);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Update embosado: "+Utilidades.obtenerSentenciaSQL(sqlSelect, aValores, aCondiciones));
+ exito = ParametrosConfiguracion.dataStore.actualizar(sqlSelect.toString(), aValores, aCondiciones);
+ if (exito)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Actualizar tratado tadespla - Exito al ponerlo a cero");
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ }
+ else
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Actualizar tratado tadespla - Fallo al ponerlo a cero");
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ else
+ {*/
+ try
+ {
+
+
+ sqlSelect.append("insert into TADESPLAZ (TARJETA_CHIPCARD, NOMBRE_COMPLETO, FECHA_ALTA, ENTIDAD_CHIPCARD, CONTRATO_CHIPCARD, FECHA_REGISTRO, TRATADO, TROQUELADO) ");
+ sqlSelect.append("values (?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?) ");
+
+ Object aValores[] = new Object[8];
+ aValores[0] = new String(tades.getTarjeta());
+ aValores[1] = new String(tades.getNombre());
+ aValores[2] = new Date(tades.getFecha_Alta().getTime());
+ aValores[3] = Integer.valueOf(tades.getEntidad_chipcard());
+ aValores[4] = Integer.valueOf(tades.getContrato());
+ aValores[5] = new Date(tades.getFecha_Registro().getTime());
+ aValores[6] = Integer.valueOf(tades.getTratado());
+ aValores[7] = new String(tades.getTroquelado());
+ //LogTarisan.logger.log(NivelLog.DEBUG, "Insertar tadespla: " + Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Insertar tadespla - Se ha obtenido la conexion");
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Insertar tadespla - se inicia la transaccion");
+
+ PersistenciaTareglog pertareg = new PersistenciaTareglog();
+ Calendar fecha = Calendar.getInstance();
+ Timestamp fechaAcceso = new Timestamp(fecha.getTimeInMillis());
+
+ int intUltimoValorCorrelativo = pertareg.obtenerUltimoValorCorrelativo(medico, fechaAcceso);
+ pertareg.insertarLog(medico, fechaAcceso, fecha, intUltimoValorCorrelativo, "TADESPLAZ",Utilidades.obtenerSentenciaSQL(sqlSelect, aValores, null), "insert en tadesplaz", conexion);
+ /*pertareg.insertarLog(956, fechaAcceso, fecha, intUltimoValorCorrelativo, "taconaut", "insert into taconaut (autorizacion, especialidad, acto, cantidad, medico, informe, from_gesigu, tarjeta) values ", "autorizacion para ats insertada con exito");*/
+ exito = ParametrosConfiguracion.dataStore.insertar(sqlSelect.toString(), aValores, conexion);
+
+ if (exito)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Insertar tadespla - Exito al insertar");
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ }
+ else
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Insertar tadespla - Fallo al insertar");
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ try {
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ } catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al deshacerlatransaccion");
+ }
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion del desplazado: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ // }
+ return exito;
+ }
+
+ public boolean troquelado_repe(String troquelado)
+ {
+ boolean resul=false;
+ /*
+ * troquelado like '%0015%3915%4315%0465%' encuentra:
+ * 0015 3915 4315 0465
+ * 0015391543150465
+ */
+ LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar que no repitan troquelados");
+ StringBuffer sqlSelect = new StringBuffer();
+ Connection conexion = null;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ sqlSelect.append("Select troquelado from tadesplaz where ");
+ sqlSelect.append("troquelado like '%'||?||'%'");
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(troquelado.replace(' ', '%'));
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul=true;
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la verificacion de la duplicidad del troquelado: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la verificacion de la duplicidad del troquelado: " + e.toString());
+ }
+ return resul;
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaTabenefi.java b/Fuentes/com/tarisan/control/PersistenciaTabenefi.java
new file mode 100644
index 0000000..e8e3876
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTabenefi.java
@@ -0,0 +1,732 @@
+package com.tarisan.control;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Calendar;
+
+import com.tarisan.data.Tarjeta;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+
+public class PersistenciaTabenefi implements Constantes
+{
+ /**
+ * Funcion que cargará colectivo, poliza, orden y fecha baja en el objeto tarjeta a partir del número de tarjeta
+ * @param tarjeta
+ * @return
+ */
+ public Tarjeta generarObjetoTarjeta(int tarjeta)
+ {
+ Tarjeta resultado = new Tarjeta();
+
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT COLECTIVO");
+ sqlSelect.append(", POLIZA");
+ sqlSelect.append(", FECHA_BAJA");
+ sqlSelect.append(", ORDEN");
+ sqlSelect.append(", ENTIDAD");
+ sqlSelect.append(", TARJETA_CHIPCARD");
+ sqlSelect.append(" FROM ttbenefi");
+ sqlSelect.append(" WHERE TARJETA = ?");
+ sqlSelect.append(" and ttbenefi.fecha_baja is null and fecha_alta <= sysdate");
+
+
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Integer.valueOf(tarjeta);
+ resultado.setTarjeta(tarjeta);
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ resultado.setColectivo(rs.getLong("COLECTIVO"));
+ resultado.setPoliza(rs.getInt("POLIZA"));
+ resultado.setBeneficiario(rs.getInt("ORDEN"));
+ resultado.setEntidadIMQ(rs.getInt("ENTIDAD"));
+ resultado.setTarjetaDesplazado(rs.getString("TARJETA_CHIPCARD"));
+ resultado.setValida(true);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ PersistenciaTaiguala pertaiguala = new PersistenciaTaiguala();
+ int contrato = pertaiguala.obtenerContrato(resultado.getColectivo(), resultado.getPoliza(), resultado.getEntidadIMQ());
+ if(contrato > 0)
+ {
+ resultado.setContrato(contrato);
+ resultado.setValida(true);
+ }
+ else
+ {
+ resultado.setValida(false);
+ LogTarisan.logger.log(NivelLog.ERROR, "No se encuentra el contrato de la tarjeta: "+tarjeta);
+ }
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al generar el objeto tarjeta a partir del número de tarjeta:"+tarjeta);
+ e.printStackTrace();
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQL: "+e.toString()+" al generar el objeto tarjeta a partir del número de tarjeta:"+tarjeta);
+ }
+
+
+ return resultado;
+ }
+
+ public boolean tiene_embosado(String tarjetachipcard)
+ {
+ boolean resul = false;
+ /**
+ * 16/02/2016 QUITAMOS EXCEPción PARA OBLIGAR A METER EL TROQUELADO A LOS DE SANITAS TAMBión. (MARTA)
+ *
+ */
+ /*if(tarjetachipcard.startsWith(ParametrosConfiguracion.bin_chipcard_sanitas))
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Es de sanitas no hay que buscar");
+ resul = true;
+ }
+ else
+ {*/
+ LogTarisan.logger.log(NivelLog.DEBUG, "Comprobamos si la tarjeta "+tarjetachipcard+" tiene el Identificador introducido");
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT TROQUELADO, TRATADO FROM TADESPLAZ");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM(?)");
+ Connection conexion;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = null;
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+ LogTarisan.logger.log(NivelLog.DEBUG, "SQL: "+Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ if(rs.getObject("TROQUELADO") == null && rs.getInt("TRATADO")==0)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - NO tiene_embosado hay que pedirlo");
+ resul = false;
+ }
+ // if(rs.getString("TROQUELADO").trim().length()>0)
+ else
+ {
+ //LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - tiene_embosado - "+ rs.getString("TROQUELADO").trim().length() + " - " + tarjetachipcard);
+ resul = true;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (Exception e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion Tarisan - "+e.toString());
+ }/* catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL - "+e.toString());
+ }*/
+ //return true;
+ catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ /*}*/
+ return resul;
+ }
+
+ /*public boolean añade_embosado(String tarjetachipcard, String embosado)
+ {
+ boolean resul = false;
+ boolean resultado = false;
+ LogTarisan.logger.log(NivelLog.INFO, "Vamos a insertar el identificador de la tarjeta");
+ StringBuffer sqlInsert = new StringBuffer();
+ sqlInsert.append("UPDATE TADESPLAZ SET TROQUELADO = ? ");
+ sqlInsert.append("WHERE TADESPLAZ.TARJETA_CHIPCARD = ?");
+ Connection conexion = null;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+ Object aValores[] = new Object[1];
+ aValores[0] = new String(embosado);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Update embosado: "+Utilidades.obtenerSentenciaSQL(sqlInsert, aValores, aCondiciones));
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlInsert.toString(), aValores, aCondiciones);
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT * FROM TADESPLAZ");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM('"+ tarjetachipcard +"')");
+ sqlSelect.append(" AND TRIM(TROQUELADO) = TRIM('"+ embosado +"')");
+ ResultSet rs = null;
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ resultado=true;
+ }
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch(Exception e)
+ {
+ try {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al actualizar el embosado en tadesplaz."+e.toString());
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ } catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al actualizar el embosado en tadesplaz."+e1.toString());
+ }
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Resultado al actualizar embosado." + resul);
+ return resultado;
+ }*/
+ public boolean anade_embosado(String tarjetachipcard, String embosado)
+ {
+ boolean resul = false;
+ boolean resultado = false;
+ LogTarisan.logger.log(NivelLog.INFO, "Vamos a insertar el identificador de la tarjeta");
+ StringBuffer sqlInsert = new StringBuffer();
+ Connection conexion = null;
+ try
+ {
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT * FROM TADESPLAZ");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM('"+ tarjetachipcard +"')");
+ sqlSelect.append(" AND TRIM(TROQUELADO) = TRIM('"+ embosado +"')");
+ ResultSet rs = null;
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ if (rs!=null){
+ while(rs.next())
+ {
+ resultado=true;
+ }
+ }
+
+ //ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ if (resultado) {
+ sqlInsert.append("UPDATE TADESPLAZ SET TROQUELADO = ? ");
+ sqlInsert.append("WHERE TADESPLAZ.TARJETA_CHIPCARD = ?");
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+ Object aValores[] = new Object[1];
+ aValores[0] = new String(embosado);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Update embosado: "+Utilidades.obtenerSentenciaSQL(sqlInsert, aValores, aCondiciones));
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlInsert.toString(), aValores, aCondiciones);
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ resultado = resul;
+ }
+
+ }
+ catch(Exception e)
+ {
+ try {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al actualizar el embosado en tadesplaz."+e.toString());
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ } catch (ExcepcionTarisan e1) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al actualizar el embosado en tadesplaz."+e1.toString());
+ }
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Resultado al actualizar embosado." + resul);
+ return resultado;
+ }
+
+ public Calendar getFechaBaja(String tarjetachipcard)
+ {
+ Calendar resul = Calendar.getInstance();
+ LogTarisan.logger.log(NivelLog.DEBUG, "\nEntra en fechabaja para comprobar si la poliza está de baja.");
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT FECHA_BAJA FROM TTBENEFI");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM(?)");
+ Connection conexion;
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = null;
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul.setTime(rs.getDate("FECHA_BAJA"));
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion Tarisan - "+e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL - "+e.toString());
+ }
+ return resul;
+ }
+
+ public boolean existeTarjetaChipcard(String tarjetachipcard, int entidad)
+ {
+ boolean resultado = false;
+ LogTarisan.logger.log(NivelLog.DEBUG, "\nEntra en existeTarjetaChipcard con valores: tarjetachipcard = "+tarjetachipcard+", entidad = "+entidad+"\n");
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT COLECTIVO");
+ sqlSelect.append(", POLIZA");
+ sqlSelect.append(", FECHA_BAJA");
+ sqlSelect.append(", ORDEN");
+ sqlSelect.append(", ENTIDAD");
+ sqlSelect.append(" FROM TTBENEFI");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM(?)");
+ //sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate)");
+ if(entidad > 0)
+ sqlSelect.append(" AND ENTIDAD = ?");
+
+
+
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = null;
+ if(entidad > 0)
+ {
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = new String(tarjetachipcard);
+ aCondiciones[1] = Integer.valueOf(entidad);
+
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ }
+ else
+ {
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ }
+
+ while(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Datos conseguidos COL="+rs.getLong("COLECTIVO")+", POL="+rs.getLong("POLIZA")+", ORD="+rs.getInt("ORDEN"));
+ resultado = true;
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion Tarisan - "+e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL - "+e.toString());
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Datos conseguidos?: "+resultado);
+ return resultado;
+
+ }
+
+ public Tarjeta generarObjetoTarjetaChipcard(String tarjetachipcard, int entidad)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "\nEntra en generarobjetotarjetachipcard con valores: tarjetachipcard = "+tarjetachipcard+", entidad = "+entidad+"\n");
+ Tarjeta resultado = new Tarjeta();
+
+ StringBuffer sqlSelect = new StringBuffer();
+ sqlSelect.append("SELECT COLECTIVO");
+ sqlSelect.append(", POLIZA");
+ sqlSelect.append(", FECHA_BAJA");
+ sqlSelect.append(", ORDEN");
+ sqlSelect.append(", ENTIDAD");
+ sqlSelect.append(" FROM TTBENEFI");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM(?)");
+ //sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate)");
+ if(entidad > 0)
+ sqlSelect.append(" AND ENTIDAD = ?");
+
+
+
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = null;
+ if(entidad > 0)
+ {
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = new String(tarjetachipcard);
+ aCondiciones[1] = Integer.valueOf(entidad);
+ resultado.setTarjetaDesplazado(tarjetachipcard);
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ }
+ else
+ {
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+ resultado.setTarjetaDesplazado(tarjetachipcard);
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ }
+
+ while(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Datos conseguidos COL="+rs.getLong("COLECTIVO")+", POL="+rs.getLong("POLIZA")+", ORD="+rs.getInt("ORDEN"));
+ resultado.setColectivo(rs.getLong("COLECTIVO"));
+ resultado.setPoliza(rs.getLong("POLIZA"));
+ resultado.setBeneficiario(rs.getInt("ORDEN"));
+ resultado.setEntidadIMQ(rs.getInt("ENTIDAD"));
+ PersistenciaTaiguala pertaiguala = new PersistenciaTaiguala();
+ resultado.setContrato(pertaiguala.obtenerContrato(resultado.getColectivo(), resultado.getPoliza(), resultado.getEntidadIMQ()));
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - generarObjetoTarjetaChipcard - LLega 241");
+ Calendar hoy = Calendar.getInstance();
+ Calendar baja = Calendar.getInstance();
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - generarObjetoTarjetaChipcard - LLega 244");
+ if(rs.getDate("FECHA_BAJA") == null)
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - generarObjetoTarjetaChipcard - LLega 247");
+ baja = null;
+ }
+ else
+ baja.setTime(rs.getDate("FECHA_BAJA"));
+ LogTarisan.logger.log(NivelLog.DEBUG, "PersistenciaTabenefi - generarObjetoTarjetaChipcard - LLega 252");
+ if(baja == null || baja.compareTo(hoy) > 0)
+ {
+ resultado.setValida(true);
+ resultado.setEstadeBaja(false);
+ }
+ else
+ {
+ resultado.setValida(false);
+ resultado.setEstadeBaja(true);
+ LogTarisan.logger.log(NivelLog.DEBUG, "El asegurado esta de baja!!!");
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion Tarisan - "+e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Excepcion SQL - "+e.toString());
+ }
+
+ LogTarisan.logger.log(NivelLog.DEBUG, "Datos conseguidos: "+resultado.getColectivo()+"="+resultado.getPoliza()+"="+resultado.getEntidadIMQ());
+ return resultado;
+ }
+
+ public int obtenerNumCli(int tarjeta) throws ExcepcionTarisan
+ {
+ int cliente=0;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT CLIENTE");
+ sqlSelect.append(" FROM TTBENEFI");
+ sqlSelect.append(" WHERE TARJETA = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Integer.valueOf(tarjeta);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ cliente = rs.getInt("CLIENTE");
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el numero de cliente: " + cliente + " de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección del numero del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return cliente;
+ }
+
+ public int obtenerEntidad(int cliente, long tarjeta) throws ExcepcionTarisan
+ {
+ int entidad=0;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT ENTIDAD");
+ sqlSelect.append(" FROM TTBENEFI");
+ sqlSelect.append(" WHERE CLIENTE = ?");
+ sqlSelect.append(" AND TARJETA <> ?");
+ sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = Integer.valueOf(cliente);
+ aCondiciones[1] = Long.valueOf(tarjeta);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ entidad=(rs.getInt("ENTIDAD"));
+
+ }
+ else{
+ //Devuelvo -1 para saber que no ha encontrado ninguna entidad y diferenciarlo de la entidad=0
+ entidad=-1;
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado entidad y colectivo del cliente: " + cliente + " de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección del entidad y colectivo del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return entidad;
+ }
+
+ public long obtenerColectivo(int cliente, long tarjeta) throws ExcepcionTarisan
+ {
+ long colectivo=0;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT COLECTIVO");
+ sqlSelect.append(" FROM TTBENEFI");
+ sqlSelect.append(" WHERE CLIENTE = ?");
+ sqlSelect.append(" AND TARJETA <> ?");
+ sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[2];
+ aCondiciones[0] = Integer.valueOf(cliente);
+ aCondiciones[1] = Long.valueOf(tarjeta);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ colectivo=(rs.getLong("COLECTIVO"));
+
+ }
+ else{
+ //Devuelvo -1 para saber que no ha encontrado ningun colectivo y diferenciarlo del colectivo=0
+ colectivo=-1;
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado entidad y colectivo del cliente: " + cliente + " de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección del entidad y colectivo del cliente: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return colectivo;
+ }
+
+ public String obtenerIdentificador(String tarjetachipcard) throws ExcepcionTarisan
+ {
+ String identificador="";
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Obtenemos el identificador de la tarjeta "+tarjetachipcard+" introducida");
+
+ try
+ {
+
+ sqlSelect.append("SELECT TROQUELADO, TRATADO FROM TADESPLAZ");
+ sqlSelect.append(" WHERE TRIM(TARJETA_CHIPCARD) = TRIM(?)");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = new String(tarjetachipcard);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ identificador=(rs.getString("TROQUELADO"));
+
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el identificador de la tabla TADESPLAZ (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección del identificador de la tabla TADESPLAZ: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return identificador;
+ }
+
+ public String obtenerIdentificador(long col, Double pol, int ord) throws ExcepcionTarisan
+ {
+ String identificador="";
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Obtenemos el identificador del colectivo "+col+", poliza "+pol+"y orden "+ord+" introducidos");
+
+ try
+ {
+
+ sqlSelect.append("SELECT TRIM(IDENTIFICADOR) IDENTIFICADOR FROM TTBENEFI");
+ sqlSelect.append(" WHERE COLECTIVO = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Long.valueOf(col);
+ aCondiciones[1] = Double.valueOf(pol);
+ aCondiciones[2] = Integer.valueOf(ord);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ if (rs.getString("IDENTIFICADOR")!=null)
+ identificador=(rs.getString("IDENTIFICADOR"));
+
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el identificador de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección del identificador de la tabla TTBENEFI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return identificador;
+ }
+
+ public String obtenerTarjetaChipcard(int col, long pol, int ord) throws ExcepcionTarisan
+ {
+ String tarjeta="";
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Obtenemos la tarjeta_chipcard del "+col + " - " + pol + " - " + ord +" introducidos");
+
+ try
+ {
+
+ sqlSelect.append("SELECT TARJETA_CHIPCARD FROM TTBENEFI");
+ sqlSelect.append(" WHERE COLECTIVO = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Integer.valueOf(col);
+ aCondiciones[1] = Long.valueOf(pol);
+ aCondiciones[2] = Integer.valueOf(ord);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ tarjeta=(rs.getString("TARJETA_CHIPCARD"));
+
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionada la tarjeta_chipcard de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la tarjeta_chipcard de la tabla TTBENEFI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return tarjeta;
+ }
+
+ public String obtenerTarjeta(int col, long pol, int ord) throws ExcepcionTarisan
+ {
+ String tarjeta="";
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Obtenemos la tarjeta del "+col + " - " + pol + " - " + ord +" introducidos");
+
+ try
+ {
+
+ sqlSelect.append("SELECT TARJETA FROM TTBENEFI");
+ sqlSelect.append(" WHERE COLECTIVO = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Integer.valueOf(col);
+ aCondiciones[1] = Long.valueOf(pol);
+ aCondiciones[2] = Integer.valueOf(ord);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ tarjeta=(rs.getString("TARJETA"));
+
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionada la tarjeta de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la tarjeta de la tabla TTBENEFI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return tarjeta;
+ }
+
+ public Long obtenerTarjeta(long col, Double pol, int ord) throws ExcepcionTarisan
+ {
+ long tarjeta=0;
+ StringBuffer sqlSelect = new StringBuffer();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Obtenemos la tarjeta del "+col + " - " + pol + " - " + ord +" introducidos");
+
+ try
+ {
+
+ sqlSelect.append("SELECT TARJETA FROM TTBENEFI");
+ sqlSelect.append(" WHERE COLECTIVO = ?");
+ sqlSelect.append(" AND POLIZA = ?");
+ sqlSelect.append(" AND ORDEN = ?");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ Object aCondiciones[] = new Object[3];
+ aCondiciones[0] = Long.valueOf(col);
+ aCondiciones[1] = Double.valueOf(pol);
+ aCondiciones[2] = Integer.valueOf(ord);
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ if(rs.next())
+ {
+ tarjeta=(rs.getLong("TARJETA"));
+
+ }
+ rs.close();
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionada la tarjeta de la tabla TTBENEFI (" + sqlSelect + ")");
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la tarjeta de la tabla TTBENEFI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan();
+ }
+
+ return tarjeta;
+ }
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaTacentro.java b/Fuentes/com/tarisan/control/PersistenciaTacentro.java
new file mode 100644
index 0000000..ccf2de8
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTacentro.java
@@ -0,0 +1,135 @@
+/**
+ * @(#) PersistenciaTacentro.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Tacentro;
+import com.tarisan.log.*;
+import com.tarisan.excepcion.ExcepcionTarisan;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Tacentro.
+ * @author Dpto. Informtica.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTacentro
+{
+
+ /**
+ * Obtiene los centros existentes de la tabla TACENTRO
+ * @return El Vector con la totalidad de los centros.
+ * @throws
+ */
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public Vector obtenerCentros() throws ExcepcionTarisan
+ {
+
+ Vector vResultado = new Vector();
+ Tacentro tacentro = null;
+ StringBuffer strSql = new StringBuffer();
+
+ try
+ {
+ strSql.append("SELECT CODIGO, DESCRIPCION");
+ strSql.append(" FROM tacentro");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString());
+
+ while(rs.next())
+ {
+ tacentro = new Tacentro();
+ tacentro.setCodigo(rs.getString("CODIGO"));
+ tacentro.setDescripcion(rs.getString("DESCRIPCION"));
+ vResultado.addElement(tacentro);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TACENTRO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+ return vResultado;
+ }
+
+ /**
+ * Obtiene el centro asociado al cdigo del centro indicado.
+ * @param codigo Cdigo del centro.
+ * @return El objeto Tacentro asociado al codigo del centro indicado.
+ * @throws
+ */
+ public Tacentro obtenerCentro(String codigo) throws ExcepcionTarisan
+ {
+ Tacentro tacentro = null;
+ StringBuffer strSql = new StringBuffer();
+ Object[] aCondiciones=null;
+
+ try
+ {
+ strSql.append("SELECT CODIGO, DESCRIPCION");
+ strSql.append(" FROM TACENTRO");
+ strSql.append(" WHERE CODIGO=?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0] = codigo;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ tacentro = new Tacentro();
+ tacentro.setCodigo(rs.getString("CODIGO"));
+ tacentro.setDescripcion(rs.getString("DESCRIPCION"));
+ }
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado " + rs.getRow() + " registros de la tabla TACENTRO (" + strSql.toString() + ")");
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+ return tacentro;
+ }
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaconaut.java b/Fuentes/com/tarisan/control/PersistenciaTaconaut.java
new file mode 100644
index 0000000..5dc1b0c
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaconaut.java
@@ -0,0 +1,1398 @@
+package com.tarisan.control;
+
+import java.sql.*;
+import java.util.Calendar;
+import java.util.Vector;
+
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.DES;
+import com.tarisan.util.Utilidades;
+import com.tarisan.data.Taconaut;
+//import com.tarisan.data.Tamedico;
+
+public class PersistenciaTaconaut implements Constantes
+{
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ public long ultimaAutorizacion(int especialidad, String tarjeta, String autorizacion)
+ {
+ long resul = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+ Object[] aCondiciones = new Object[2];
+ try
+ {
+ sqlSelect.append("Select autorizacion AUT ");
+ sqlSelect.append("from taconaut ");
+ sqlSelect.append("where especialidad = ? ");
+ sqlSelect.append("and tarjeta = ? ");
+ sqlSelect.append("and activo = 1 ");
+ //sqlSelect.append("and cantidad > 0 ");
+
+ //comprobamos si se trata de una busqueda de actos medicos
+ if (!autorizacion.equalsIgnoreCase(""))
+ {
+ if (autorizacion.endsWith("*"))
+ autorizacion=autorizacion.replace('*', '%');
+ else
+ autorizacion="%" + autorizacion + "%";
+
+ sqlSelect.append(" and autorizacion like ? ");
+
+ aCondiciones = new Object[3];
+ aCondiciones[2] = autorizacion;
+ } else {
+ aCondiciones = new Object[2];
+ }
+
+ sqlSelect.append("order by taconaut.fecha_creacion desc");
+
+ aCondiciones[0] = Integer.valueOf(especialidad);
+ aCondiciones[1] = new String(tarjeta);
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul = rs.getLong("AUT");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ if (aCondiciones.length == 3 && resul == 0){
+ resul = -1;
+ }
+
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo ultima autorizacion de taconaut" + e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo ultima autorizacion de taconaut" + e.toString());
+ }
+ return resul;
+ }
+
+ public Vector AutorizacionesActivas(int especialidad, String tarjeta)
+ {
+ Vector resul = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ Object[] aCondiciones = new Object[2];
+ try
+ {
+ sqlSelect.append("Select autorizacion AUT ");
+ sqlSelect.append("from taconaut ");
+ sqlSelect.append("where especialidad = ? ");
+ sqlSelect.append("and tarjeta = ? ");
+ sqlSelect.append("and activo = 1 ");
+ sqlSelect.append("and cantidad > 0 ");
+ sqlSelect.append(" order by fecha_creacion desc");
+
+ aCondiciones[0] = Integer.valueOf(especialidad);
+ aCondiciones[1] = new String(tarjeta);
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul.addElement(rs.getLong("AUT"));
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo autorizaciones activas de taconaut" + e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo autorizaciones activas de taconaut" + e.toString());
+ }
+ return resul;
+ }
+
+ public boolean marcarCuraCompletada(long autorizacion)
+ {
+ boolean resul = false;
+ StringBuffer sqlUpdate = new StringBuffer();
+ Object[] aCondiciones = new Object[1];
+ try
+ {
+ sqlUpdate.append("Update taconaut set activo = 0 ");
+ sqlUpdate.append("where autorizacion = ? ");
+
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), null, aCondiciones, conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo ultima autorizacion de taconaut" + e.toString());
+ }
+ return resul;
+ }
+
+ public boolean AutorizacionSinTarjeta(long autorizacion)
+ {
+ boolean resul = false;
+
+ StringBuffer sqlSelect = new StringBuffer();
+ try {
+
+ sqlSelect.append("Select tarjeta from taconaut");
+ sqlSelect.append(" where autorizacion = ? ");
+
+ Object[] aCondiciones = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ if(rs.getString("TARJETA") == null)
+ resul = true;
+ }
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo tarjeta de taconaut" + e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEexception obteniendo tarjeta de taconaut" + e.toString());
+ }
+ return resul;
+ }
+
+ public boolean AutorizacionesSinTarjeta()
+ {
+ boolean resul = true;
+ StringBuffer sqlSelect = new StringBuffer();
+ try {
+ sqlSelect.append("Select autorizacion, acto, especialidad, cantidad from taconaut where tarjeta is null");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+
+ while (rs.next() && resul)
+ {
+ //por cada autorizacion que no tenga tarjeta vamos obteniendo su tarjeta y actualizando la autorizacion:
+ String tarjeta = this.ObtenerTarjeta(rs.getLong("AUTORIZACION"));
+ resul = this.ActualizarCantidadTarjetaAutorizacionADM(rs.getLong("AUTORIZACION"), rs.getInt("ACTO"), rs.getInt("ESPECIALIDAD"), rs.getInt("CANTIDAD"), tarjeta);
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan actualizando tarjetas de taconaut" + e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception actualizando tarjetas de taconaut" + e.toString());
+ }
+
+ return resul;
+ }
+
+
+ public Vector ObtenerAutorizacionADM(long autorizacion)
+ {
+ Vector resultado = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ try {
+
+ sqlSelect.append("Select * from taconaut");
+ sqlSelect.append(" where autorizacion = ? ");
+
+ Object[] aCondiciones = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ Taconaut tacon = new Taconaut();
+ tacon.setActo(rs.getInt("acto"));
+ tacon.setAutorizacion(String.valueOf(rs.getLong("autorizacion")));
+ tacon.setCantidad(rs.getInt("cantidad"));
+ tacon.setEspecialidad(rs.getInt("especialidad"));
+ boolean gesigu = false;
+ if(rs.getInt("from_gesigu") == 1)
+ gesigu = true;
+ tacon.setFromGesigu(gesigu);
+ tacon.setInforme(rs.getString("informe"));
+ tacon.setMedico(rs.getInt("medico"));
+ tacon.setTarjeta(rs.getString("TARJETA"));
+
+ resultado.add(tacon);
+ }
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo autorizacion de taconaut" + e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo autorizacion de taconaut" + e.toString());
+ }
+
+ return resultado;
+ }
+
+
+ public Vector ObtenerActosAutorizados(long autorizacion)
+ {
+
+ Vector vSeleccion = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("Select acto from taconaut ");
+ sqlSelect.append("where autorizacion = ? ");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ vSeleccion.add(rs.getInt("acto"));
+ }
+ rs.close();
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return vSeleccion;
+ }
+
+ public Vector ObtenerActosAutorizadosPorVector(Vector autorizaciones)
+ {
+ Vector vSeleccion = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ String strAutorizaciones = "";
+ try
+ {
+ for(int i = 0; i < autorizaciones.size(); i++)
+ {
+ if (i==0){
+ strAutorizaciones = autorizaciones.elementAt(i).toString();
+ }else{
+ strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
+ }
+
+ }
+ sqlSelect.append("Select acto from taconaut ");
+ sqlSelect.append("where autorizacion in ("+strAutorizaciones+")");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ vSeleccion.add(rs.getInt("acto"));
+ }
+ rs.close();
+
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return vSeleccion;
+ }
+
+ public long ObtenerAutorizacionPorActo(int acto, int especialidad, int medico, String tarjeta, Vector autorizaciones)
+ {
+ long resul = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+ String strAutorizaciones = "";
+
+ for(int i = 0; i < autorizaciones.size(); i++)
+ {
+ if (i==0){
+ strAutorizaciones = autorizaciones.elementAt(i).toString();
+ }else{
+ strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
+ }
+
+ }
+
+ try
+ {
+ String sql = "Select autorizacion from taconaut where acto = "+ acto +" and especialidad="+ especialidad +" and medico= "+ medico +" and tarjeta = "+ tarjeta +" and autorizacion in ("+ strAutorizaciones +")";
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql/*, aCondiciones*/);
+ while(rs.next())
+ {
+ resul = (rs.getLong("autorizacion"));
+ }
+ rs.close();
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return resul;
+ }
+
+ public int ObtenerMedico(int acto, int especialidad, String tarjeta, Vector autorizaciones)
+ {
+ int resul = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+ String strAutorizaciones = "";
+
+ for(int i = 0; i < autorizaciones.size(); i++)
+ {
+ if (i==0){
+ strAutorizaciones = autorizaciones.elementAt(i).toString();
+ }else{
+ strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
+ }
+
+ }
+ try
+ {
+ String sql = "Select medico from taconaut where acto = "+ acto +" and especialidad="+ especialidad +" and tarjeta = "+ tarjeta +" and autorizacion in ("+ strAutorizaciones +")";
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql/*, aCondiciones*/);
+ while(rs.next())
+ {
+ resul = (rs.getInt("medico"));
+ }
+ rs.close();
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return resul;
+ }
+
+
+ public boolean BuscarAutorizacion(long autorizacion, String tarjeta)
+ {
+ return this.BuscarAutorizacion(autorizacion, 0, tarjeta);
+ }
+
+ public boolean BuscarAutorizacion(long autorizacion)
+ {
+ return this.BuscarAutorizacion(autorizacion, 0, "");
+ }
+
+ public boolean BuscarAutorizacion(long autorizacion, int medico, String tarjeta)
+ {
+ boolean existe=false;
+ String sqlSelect = new String();
+ long cuantas=0;
+ try
+ {
+ sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion;
+ if(medico != 0)
+ sqlSelect += " and medico = "+medico;
+
+ if(tarjeta != "")
+ sqlSelect += " and tarjeta ='"+tarjeta+"'";
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ cuantas = rs.getLong("AUT");
+ }
+ rs.close();
+ if(cuantas > 0)
+ {
+ existe = true;
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return existe;
+ }
+
+ public boolean BuscarAutorizaciones(Vector vAutorizaciones, String tarjeta)
+ {
+ return this.BuscarAutorizaciones(vAutorizaciones, 0, tarjeta);
+ }
+
+ public boolean BuscarAutorizaciones(Vector vAutorizaciones)
+ {
+ return this.BuscarAutorizaciones(vAutorizaciones, 0, "");
+ }
+
+ public boolean BuscarAutorizaciones(Vector vAutorizaciones, int medico, String tarjeta)
+ {
+ boolean existe=false;
+ String sqlSelect = new String();
+ long cuantas=0;
+ String strAutorizaciones = "";
+
+ for(int i = 0; i < vAutorizaciones.size(); i++)
+ {
+ if (i==0){
+ strAutorizaciones = vAutorizaciones.elementAt(i).toString();
+ }else{
+ strAutorizaciones = strAutorizaciones + "," + vAutorizaciones.elementAt(i).toString();
+ }
+
+ }
+
+ try
+ {
+ sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion in ("+ strAutorizaciones + ")";
+ if(medico != 0)
+ sqlSelect += " and medico = "+medico;
+
+ if(tarjeta != "")
+ sqlSelect += " and tarjeta ='"+tarjeta+"'";
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ cuantas = rs.getLong("AUT");
+ }
+ rs.close();
+ if(cuantas > 0)
+ {
+ existe = true;
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return existe;
+ }
+
+
+ /**
+ * Funcion que nos dirá si a la autorización pasada por parámetro le queda algúna sesión disponible.
+ * @param autorizacion El número de autorización
+ * @param medico El código del médico autorizado
+ * @param acto El código del acto autorizado
+ * @return Cierto o falso según le queden sesiones o no
+ */
+ public boolean ComprobarAutorizacionValida (long autorizacion, int medico, int acto, String tarjeta)
+ {
+ boolean existe=false;
+ String sqlSelect = new String();
+ long cuantas=0;
+ try
+ {
+ //sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion+" and medico = "+medico+" and acto = "+acto+" and tarjeta ='"+tarjeta+"'";
+ //Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
+ sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion+" and medico = "+medico+" and acto = "+acto;
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ cuantas = rs.getLong("AUT");
+ }
+ rs.close();
+ if(cuantas > 0)
+ {
+ existe = true;
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+
+ return existe;
+ }
+
+ public int ObtenerEspecialidadAutorizacion(long autorizacion)
+ {
+ int resultado = 0;
+
+ return resultado;
+ }
+
+ public boolean CrearAutorizacionValida(long autorizacion, int medico, int especialidad, int acto, int cantidad, int gesigu, String tarjeta)
+ {
+ return this.CrearAutorizacionValida(autorizacion, medico, especialidad, acto, cantidad, "", gesigu, tarjeta);
+ }
+
+ /*public boolean CrearAutorizacionValida(int autorizacion, int medico, int especialidad, int acto, int cantidad, int gesigu)
+ {
+ return this.CrearAutorizacionValida(autorizacion, medico, especialidad, acto, cantidad, "", gesigu, "");
+ }*/
+
+ /**
+ * Hay autorizaciones que vienen desde gesigu que no estamos insertando bien la tarjeta.
+ * aquí vuelvo a buscar la autorizacion en ttmovaut, obteniendo ent, col, pol y orden para conseguir la tarjeta desde ttbenefi
+ * @param autorizacion
+ * @return
+ */
+ public String ObtenerTarjeta(long autorizacion)
+ {
+ String resul ="";
+ StringBuffer sqlSelect = new StringBuffer();
+
+ sqlSelect.append("select entidad, colectivo, poliza, orden from ttmovaut ");
+ sqlSelect.append("where autorizacion = " + autorizacion);
+
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ Object aCondiciones[] = new Object[4];
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ while(rs.next())
+ {
+ aCondiciones[0] = rs.getInt("ENTIDAD");
+ aCondiciones[1] = rs.getLong("COLECTIVO");
+ aCondiciones[2] = rs.getLong("POLIZA");
+ aCondiciones[3] = rs.getInt("ORDEN");
+ }
+ rs = null;
+ sqlSelect = null;
+ sqlSelect = new StringBuffer();
+
+ //ya tengo la entidad col pol ord de la autorizacion.
+ //vamos a obtener la tarjeta desde ttbenefi.
+
+ sqlSelect.append("Select tarjeta from ttbenefi where ");
+ sqlSelect.append("entidad = ? ");
+ sqlSelect.append("and colectivo = ? ");
+ sqlSelect.append("and poliza = ? ");
+ sqlSelect.append("and orden = ?");
+
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while(rs.next())
+ {
+ resul = rs.getString("TARJETA");
+ }
+
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan en la obtencion de la tarjeta del paciente para taconaut del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionSQL en la obtencion de la tarjeta del paciente para taconaut del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return resul;
+ }
+
+ /**
+ * Se ha encontrado una autorización válida en GESIGU y con esta función creamos la correspondiente en ALBERTO.TACONAUT
+ * @param autorizacion El número de la autorización a crear
+ * @param medico El código del médico autorizado
+ * @param especialidad El código de la especialidad autorizada
+ * @param acto El código del acto autorizado
+ * @param cantidad El número de sesiones autorizadas
+ * @return Cierto si la "insert" se realiza con éxito.
+ */
+ public boolean CrearAutorizacionValida(long autorizacion, int medico, int especialidad, int acto, int cantidad, String informe, int gesigu, String tarjeta)
+ {
+ boolean exito=false;
+ StringBuffer sqlSelect = new StringBuffer();
+ //LogTarisan.logger.log(NivelLog.DEBUG, "\n\nCrearAutorizacionValida: Autorización: "+autorizacion+", medico: "+medico+", especialidad: "+especialidad+", acto: "+acto+", cantidad: "+cantidad+"\n\n\n");
+ try
+ {
+ sqlSelect.append("insert into taconaut (autorizacion, especialidad, acto, cantidad, medico, informe, from_gesigu, tarjeta, activo) ");
+ sqlSelect.append("values (?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, ");
+ sqlSelect.append("?, 1) ");
+
+ Object aCondiciones[] = new Object[8];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+ aCondiciones[1] = Integer.valueOf(especialidad);
+ aCondiciones[2] = Integer.valueOf(acto);
+ aCondiciones[3] = Integer.valueOf(cantidad);
+ aCondiciones[4] = Integer.valueOf(medico);
+ aCondiciones[5] = new String(informe);
+ aCondiciones[6] = Integer.valueOf(gesigu);
+
+
+ if(tarjeta == null)
+ aCondiciones[7] = this.ObtenerTarjeta(autorizacion);
+ else
+ aCondiciones[7] = new String(tarjeta);
+
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ exito = ParametrosConfiguracion.dataStore.insertar(sqlSelect.toString(), aCondiciones, conexion);
+ if (exito)
+ {
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ }
+ else
+ {
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ }
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return exito;
+ }
+
+ /**
+ * Funcion que nos devuelve el número de sesiones que le quedan al asgurado en la autorización
+ * @param autorizacion El número de la autorización
+ * @param medico El código del médico
+ * @param acto El código del acto
+ * @return El número de sesiones "disponibles" en la autorizacion
+ */
+
+ public int ObtenerSesionesPendientes(long autorizacion, int acto)
+ {
+ return this.ObtenerSesionesPendientes(autorizacion, 0, acto);
+ }
+
+ public int ObtenerSesionesPendientes(long autorizacion, int medico, int acto)
+ {
+ int quedan = 0;
+ StringBuffer sqlSelect = new StringBuffer();
+// LogTarisan.logger.log(NivelLog.DEBUG, "\n\nObtenerSesionesPendientes: Autorizacion: "+autorizacion+", medico: "+medico+", acto:"+acto);
+ try
+ {
+ sqlSelect.append("select cantidad from taconaut ");
+ sqlSelect.append("where autorizacion = ? ");
+ if(medico != 0)
+ sqlSelect.append("and medico = ? ");
+ sqlSelect.append("and acto = ?");
+
+ Object aCondiciones[] = null;
+ if(medico != 0)
+ {
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(medico);
+ aCondiciones[2]=Integer.valueOf(acto);
+ }
+ else
+ {
+ aCondiciones = new Object[2];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(acto);
+ }
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ quedan = rs.getInt("cantidad");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return quedan;
+ }
+
+ /**
+ * Comprueba se se ha imputado una sesión para ese mismo acto el mismo día.
+ * @param autorizacion
+ * @param especialidad
+ * @param medico
+ * @param acto
+ * @return Cierto si la sesión no se ha consumido hoy o todavía no se ha consumido ninguna sesión
+ */
+ public boolean PermitirImputarActo(long autorizacion, int especialidad, int acto, String tarjeta)
+ {
+ return this.PermitirImputarActo(autorizacion, especialidad, 0, acto, tarjeta);
+ }
+
+ public boolean PermitirImputarActo(long autorizacion, int especialidad, int medico, int acto, String tarjeta)
+ {
+ boolean imputable = false;
+ Calendar fechaAct = Calendar.getInstance();
+ Calendar fechaModificacion = null;
+ Calendar fechaCreacion = null;
+
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("select fecha_modificacion, fecha_creacion ");
+ sqlSelect.append("from taconaut ");
+ sqlSelect.append("where especialidad = ? ");
+ sqlSelect.append("and autorizacion = ? ");
+ //Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
+ /*if(tarjeta.length()<2)
+ {
+ tarjeta = "%";
+ sqlSelect.append("and tarjeta like ? ");
+ }
+ else
+ {
+ sqlSelect.append("and tarjeta = ? ");
+ }*/
+ if(medico != 0)
+ sqlSelect.append("and medico = ? ");
+ sqlSelect.append("and acto = ? ");
+ if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
+ sqlSelect.append("and fecha_creacion >= (sysdate - 30)");
+ sqlSelect.append(" order by fecha_modificacion desc");
+
+
+
+ Object aCondiciones[] = null;
+ if(medico != 0)
+ {
+ aCondiciones = new Object[4];
+ aCondiciones[0]=Integer.valueOf(especialidad);
+ aCondiciones[1]=Long.valueOf(autorizacion);
+ //aCondiciones[2]=new String(tarjeta);
+ aCondiciones[2]=Integer.valueOf(medico);
+ aCondiciones[3]=Integer.valueOf(acto);
+ }
+ else
+ {
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Integer.valueOf(especialidad);
+ aCondiciones[1]=Long.valueOf(autorizacion);
+ //aCondiciones[2]=new String(tarjeta);
+ aCondiciones[2]=Integer.valueOf(acto);
+ }
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ if(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si podemos imputar la autorizacion"+autorizacion+" \n\n\n");
+ if(rs.getDate("fecha_modificacion") != null)
+ {
+ fechaModificacion = Calendar.getInstance();
+ fechaModificacion.setTime(rs.getDate("fecha_modificacion"));
+ fechaCreacion = Calendar.getInstance();
+ fechaCreacion.setTime(rs.getDate("fecha_creacion"));
+ LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si podemos imputar la autorizacion"+autorizacion+", la ultima modificacion fue: "+fechaModificacion+" \n\n\n");
+ imputable = true;
+ }
+ else
+ imputable = true;
+ }
+ else
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "\n\n\nNo se ha encontrado la autorizacion: "+autorizacion+" \n\n\n");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ if(fechaCreacion != null)
+ {
+ if (fechaAct.get(Calendar.YEAR) != fechaModificacion.get(Calendar.YEAR))
+ imputable = true;
+ else if (fechaAct.get(Calendar.MONTH) != fechaModificacion.get(Calendar.MONTH))
+ imputable = true;
+ else if (fechaAct.get(Calendar.DAY_OF_MONTH) != fechaModificacion.get(Calendar.DAY_OF_MONTH))
+ imputable = true;
+ else
+ imputable = false;
+ }
+
+ if(fechaCreacion != null && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
+ {
+ fechaAct.add(Calendar.DATE, -30);
+ if(fechaCreacion.compareTo(fechaAct) < 0)
+ {
+ marcarCuraCompletada(autorizacion);
+ imputable = false;
+ }
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return imputable;
+ }
+
+ public boolean ActualizarCantidadAutorizacionADM(long autorizacion, int acto, int especialidad, int cantidad)
+ {
+ boolean resul = false;
+ String sqlUpdate = "update taconaut set cantidad = "+cantidad+" where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch(ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarCantidadAutorizacionADM de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
+ }
+ return resul;
+ }
+
+
+
+ public boolean ActualizarCantidadTarjetaAutorizacionADM(long autorizacion, int acto, int especialidad, int cantidad, String tarjeta)
+ {
+ boolean resul = false;
+ String sqlUpdate = "update taconaut set fecha_modificacion = sysdate, tarjeta = "+tarjeta+", cantidad = "+cantidad+" where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarFechaModificacion de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
+ }
+ return resul;
+ }
+
+
+ public boolean ActualizarFechaModificacion(long autorizacion, int acto, int especialidad)
+ {
+ boolean resul = false;
+ String sqlUpdate = "update taconaut set fecha_modificacion = sysdate where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarFechaModificacion de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
+ }
+ return resul;
+ }
+
+
+ /**
+ * Resta una sesion a las disponibles en la autorización.
+ * @param autorizacion
+ * @param medico
+ * @param acto
+ * @param especialidad
+ * @return
+ */
+ public boolean RestarSesion(long autorizacion, int acto, int especialidad)
+ {
+ return this.RestarSesion(autorizacion, 0, acto, especialidad);
+ }
+
+ public boolean RestarSesion(long autorizacion, int medico, int acto, int especialidad)
+ {
+ boolean resul = false;
+ int quedan = this.ObtenerSesionesPendientes(autorizacion, medico, acto);
+ quedan -= 1;
+ StringBuffer sqlUpdate = new StringBuffer();
+ try
+ {
+ sqlUpdate.append("update taconaut ");
+ sqlUpdate.append("set cantidad = ?, ");
+ sqlUpdate.append("fecha_modificacion = sysdate ");
+ sqlUpdate.append("where autorizacion = ? ");
+ if(medico != 0)
+ sqlUpdate.append("and medico = ? ");
+
+ sqlUpdate.append("and acto = ? ");
+ sqlUpdate.append("and especialidad = ?");
+
+ Object aCondiciones[] = null;
+ if(medico != 0)
+ {
+ aCondiciones = new Object[4];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(medico);
+ aCondiciones[2]=Integer.valueOf(acto);
+ aCondiciones[3]=Integer.valueOf(especialidad);
+ }
+ else
+ {
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(acto);
+ aCondiciones[2]=Integer.valueOf(especialidad);
+ }
+
+ Object aValores[] = new Object[1];
+ aValores[0]=Integer.valueOf(quedan);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones, conexion);
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlUpdate + ")");
+ }
+
+ return resul;
+ }
+
+ public String ObtenerInforme(long autorizacion)
+ {
+ String resultado = "";
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("Select INFORME from taconaut ");
+ sqlSelect.append("where autorizacion = ? ");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ resultado = rs.getString("INFORME");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch(ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obetener el informe de la autorizacion: "+autorizacion+". "+e.toString());
+ }
+ catch(SQLException e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error SQL al obetener el informe de la autorizacion: "+autorizacion+". "+e.toString());
+ }
+
+ return resultado;
+ }
+
+ public Vector ObtenerPrescripcionesPorMedico(long medico, int pagina)
+ {
+ Vector vResul = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ int elementosPaginacion=1;
+ String strMedico = ""+medico;
+ try
+ {
+ sqlSelect.append("Select * from taconaut ");
+ sqlSelect.append("where medico = ?");
+ sqlSelect.append("order by autorizacion desc");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0]=Long.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ DES encrypter = new DES(strMedico);
+ String auto = rs.getString("AUTORIZACION");
+ //auto = (auto.length()<8)?"0"+auto:auto;
+ String autoEncriptado = encrypter.encrypt(auto);
+
+ Taconaut tacon = new Taconaut();
+ tacon.setAutorizacion(rs.getString("AUTORIZACION"));
+ tacon.setAutorizacionEncriptada(autoEncriptado);
+ tacon.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ tacon.setMedico(rs.getInt("MEDICO"));
+ tacon.setActo(rs.getInt("ACTO"));
+ tacon.setCantidad(rs.getInt("CANTIDAD"));
+ tacon.setFechaModificacion(rs.getDate("FECHA_MODIFICACION"));
+ tacon.setInforme(rs.getString("INFORME"));
+ tacon.setFromGesigu(rs.getInt("FROM_GESIGU") == 1 ? true : false);
+ vResul.add(tacon);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: "+e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion SQL: "+e.toString());
+ }
+
+ return vResul;
+ }
+
+ public boolean esCuraFinalizada(long autorizacion, int especialidad, int acto, String tarjeta)
+ {
+ return this.esCuraFinalizada(autorizacion, especialidad, 0, acto, tarjeta);
+ }
+
+ public boolean esCuraFinalizada(long autorizacion, int especialidad, int medico, int acto, String tarjeta)
+ {
+ boolean finalizado = false;
+ boolean esCura = false;
+ Calendar fechaAct = Calendar.getInstance();
+
+ Calendar fechaCreacion = null;
+
+ StringBuffer sqlSelect = new StringBuffer();
+ try
+ {
+ sqlSelect.append("select acto, fecha_creacion ");
+ sqlSelect.append("from taconaut ");
+ sqlSelect.append("where especialidad = ? ");
+ sqlSelect.append("and autorizacion = ? ");
+ //Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
+ /*if(tarjeta.length()<2)
+ {
+ tarjeta = "%";
+ sqlSelect.append("and tarjeta like ? ");
+ }
+ else
+ {
+ sqlSelect.append("and tarjeta = ? ");
+ }*/
+ if(medico != 0)
+ sqlSelect.append("and medico = ? ");
+ sqlSelect.append("and acto = ? ");
+ /*if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
+ sqlSelect.append("and fecha_creacion >= (sysdate - 30)");*/
+ sqlSelect.append(" order by fecha_modificacion desc");
+
+
+
+ Object aCondiciones[] = null;
+ if(medico != 0)
+ {
+ aCondiciones = new Object[4];
+ aCondiciones[0]=Integer.valueOf(especialidad);
+ aCondiciones[1]=Long.valueOf(autorizacion);
+ //aCondiciones[2]=new String(tarjeta);
+ aCondiciones[2]=Integer.valueOf(medico);
+ aCondiciones[3]=Integer.valueOf(acto);
+ }
+ else
+ {
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Integer.valueOf(especialidad);
+ aCondiciones[1]=Long.valueOf(autorizacion);
+ //aCondiciones[2]=new String(tarjeta);
+ aCondiciones[2]=Integer.valueOf(acto);
+ }
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
+ if(rs.next())
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si ha finalizado la cura"+autorizacion+" \n\n\n");
+ fechaCreacion = Calendar.getInstance();
+ fechaCreacion.setTime(rs.getDate("fecha_creacion"));
+
+ if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto))){
+ esCura = true;
+ }
+ }
+ else
+ {
+ LogTarisan.logger.log(NivelLog.DEBUG, "\n\n\nNo se ha encontrado la autorizacion: "+autorizacion+" \n\n\n");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ int fechaC = fechaCreacion.get(Calendar.DAY_OF_YEAR);
+ int fechaHoy = fechaAct.get(Calendar.DAY_OF_YEAR);
+
+ if (fechaHoy - fechaC > 30){ //Ha pasado mas de un mes
+ finalizado = true;
+ }
+
+ /*fechaAct.add(Calendar.DATE, -30);
+ if(fechaCreacion.compareTo(fechaAct) < 0)
+ {
+ finalizado = false;
+ }*/
+ if (esCura && finalizado){
+ finalizado = true;
+ }else{
+ finalizado = false;
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+
+ /*if (finalizado){
+ this.ponerCuraACero(autorizacion, medico, acto, especialidad);
+ } */
+
+ return finalizado;
+ }
+
+ /**
+ * Resta una sesion a las disponibles en la autorización.
+ * @param autorizacion
+ * @param medico
+ * @param acto
+ * @param especialidad
+ * @return
+ */
+ public boolean ponerCuraACero(long autorizacion, int acto, int especialidad)
+ {
+ return this.ponerCuraACero(autorizacion, 0, acto, especialidad);
+ }
+
+ public boolean ponerCuraACero(long autorizacion, int medico, int acto, int especialidad)
+ {
+ boolean resul = false;
+ StringBuffer sqlUpdate = new StringBuffer();
+ try
+ {
+ sqlUpdate.append("update taconaut ");
+ sqlUpdate.append("set cantidad = 0, ");
+ sqlUpdate.append("fecha_modificacion = sysdate ");
+ sqlUpdate.append("where autorizacion = ? ");
+ if(medico != 0)
+ sqlUpdate.append("and medico = ? ");
+
+ sqlUpdate.append("and acto = ? ");
+ sqlUpdate.append("and especialidad = ?");
+
+ Object aCondiciones[] = null;
+ if(medico != 0)
+ {
+ aCondiciones = new Object[4];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(medico);
+ aCondiciones[2]=Integer.valueOf(acto);
+ aCondiciones[3]=Integer.valueOf(especialidad);
+ }
+ else
+ {
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Long.valueOf(autorizacion);
+ aCondiciones[1]=Integer.valueOf(acto);
+ aCondiciones[2]=Integer.valueOf(especialidad);
+ }
+ Object aValores[] = new Object[0];
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones, conexion);
+
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en ponerCUraACero del paciente: " + e.toString() + " (" + sqlUpdate + ")");
+ }
+
+ return resul;
+ }
+
+ public Vector BuscarAutorizacionPorMedicoYPoliza(int medico, int colectivo, long poliza, int orden, int pagina)
+ {
+ int elementosPaginacion=1;
+ Vector autorizaciones = new Vector();
+ String sqlSelect = new String();
+ String tarjeta="";
+ String tarjeta_chipcard="";
+ try
+ {
+ sqlSelect = "select tarjeta,tarjeta_chipcard from ttbenefi where colectivo = "+ colectivo + " and poliza = "+ poliza + " and orden = "+ orden;
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ if(rs.next())
+ {
+ tarjeta = rs.getString("TARJETA");
+ tarjeta_chipcard = rs.getString("TARJETA_CHIPCARD");
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ if(tarjeta=="0" && tarjeta_chipcard==null){
+ autorizaciones = new Vector();
+ }else{
+ if (medico==0){
+ sqlSelect = "select distinct(autorizacion),fecha_creacion from taconaut where tarjeta = '"+ tarjeta +"' order by autorizacion desc";
+ }else{
+ sqlSelect = "select distinct(autorizacion),fecha_creacion from taconaut where medico = '"+ medico +"' and tarjeta = '"+ tarjeta +"' order by autorizacion desc";
+ }
+
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ if(rs.next()){
+ rs.first();
+ /*int autorizacion = rs.getInt("AUTORIZACION");
+ autorizaciones.addElement(autorizacion);*/
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ long autorizacion = rs.getLong("AUTORIZACION");
+ autorizaciones.addElement(autorizacion);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ }else{
+ if (medico==0){
+ sqlSelect = "select distinct(autorizacion), fecha_creacion from taconaut where tarjeta = '"+ tarjeta_chipcard + "' order by autorizacion desc";
+ }else{
+ sqlSelect = "select distinct(autorizacion), fecha_creacion from taconaut where medico = '"+ medico +"' and tarjeta = '"+ tarjeta_chipcard + "' order by autorizacion desc";
+ }
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
+ if(rs.next()){
+ rs.first();
+ /*int autorizacion = rs.getInt("AUTORIZACION");
+ autorizaciones.addElement(autorizacion);*/
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ long autorizacion = rs.getInt("AUTORIZACION");
+ autorizaciones.addElement(autorizacion);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }else{
+ autorizaciones = new Vector();
+ }
+ }
+ }
+ }else{
+ autorizaciones = new Vector();
+ }
+ }
+ catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
+ }
+ return autorizaciones;
+ }
+
+ public Vector ObtenerPrescripcionesPorPaciente(String tarjeta, int medico, int pagina)
+ {
+ Vector vResul = new Vector();
+ StringBuffer sqlSelect = new StringBuffer();
+ int elementosPaginacion=1;
+ String strMedico = ""+medico;
+ try
+ {
+ sqlSelect.append("Select * from taconaut ");
+ sqlSelect.append("where tarjeta like ? ");
+ sqlSelect.append("order by fecha_creacion desc");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0]=new String(tarjeta);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ DES encrypter = new DES(strMedico);
+ String auto = rs.getString("AUTORIZACION");
+ /*auto = (auto.length()<8)?"0"+auto:auto;*/
+ String autoEncriptada = encrypter.encrypt(auto);
+
+ Taconaut tacon = new Taconaut();
+ tacon.setAutorizacion(rs.getString("AUTORIZACION"));
+ tacon.setAutorizacionEncriptada(autoEncriptada);
+ tacon.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ tacon.setMedico(rs.getInt("MEDICO"));
+ tacon.setActo(rs.getInt("ACTO"));
+ tacon.setCantidad(rs.getInt("CANTIDAD"));
+ tacon.setFechaModificacion(rs.getDate("FECHA_MODIFICACION"));
+ tacon.setInforme(rs.getString("INFORME"));
+ tacon.setFromGesigu(rs.getInt("FROM_GESIGU") == 1 ? true : false);
+ tacon.setFechaModificacion(rs.getDate("FECHA_CREACION"));
+ vResul.add(tacon);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: "+e.toString() + " (" + sqlSelect + ")");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion SQL: "+e.toString() + " (" + sqlSelect + ")");
+ }
+
+ return vResul;
+ }
+
+
+}
\ No newline at end of file
diff --git a/Fuentes/com/tarisan/control/PersistenciaTadremed.java b/Fuentes/com/tarisan/control/PersistenciaTadremed.java
new file mode 100644
index 0000000..ba2293a
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTadremed.java
@@ -0,0 +1,199 @@
+/**
+ * @(#) PersistenciaTadremed.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Taconaut;
+import com.tarisan.data.Tadremed;
+import com.tarisan.log.*;
+import com.tarisan.util.DES;
+import com.tarisan.util.Utilidades;
+import com.tarisan.excepcion.ExcepcionTarisan;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Tadremed.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTadremed
+{
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla TADREMED en función de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de selección.
+ * @param pagina Número de página a mostrar.
+ * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Tadremed).
+ * @throws
+ */
+ public Vector seleccionar(String sqlSelect/*, int pagina*/, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+
+ /*int elementosPaginacion=1;*/
+
+ Vector vResultado = new Vector();
+ Tadremed tadremed = null;
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ /*objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina); */
+
+ while(rs.next() /*&& (elementosPaginacion <= Paginacion.getFilasPorPagina())*/)
+ {
+ tadremed = new Tadremed();
+ tadremed.setFecha(rs.getDate("FECHA"));
+ tadremed.setIrpf(rs.getDouble("IRPF"));
+ tadremed.setImporte(rs.getDouble("IMPORTE"));
+ vResultado.addElement(tadremed);
+ /*if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;*/
+ }
+ /*}*/
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TADREMED (" + sqlSelect + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TADREMED: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TADREMED: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TADREMED: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TADREMED: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+ public Vector listado_detalle_irpf(String anio, int medico/*, int intPagina*/)
+ {
+ Vector resul = new Vector();
+ StringBuffer strSql = new StringBuffer();
+
+ Object [] aCondiciones = new Object[1];
+ String consulta = "";
+
+ strSql.append("SELECT FECHA, IRPF, IMPORTE");
+ strSql.append(" FROM TADREMED");
+ strSql.append(" WHERE MEDICO=?");
+ if (!anio.equalsIgnoreCase("")) //la sql tiene dos parametros
+ {
+ if (ParametrosConfiguracion.dataStore.getClass().getName().toUpperCase().indexOf("ORACLE") >= 0)
+ {
+ strSql.append(" AND EXTRACT(YEAR FROM FECHA) = ?");
+ }
+ else
+ {
+ strSql.append(" AND {fn YEAR(FECHA)} = ?");
+ }
+
+ //el array de objetos sera de dos elementos
+ aCondiciones = new Object[2];
+ aCondiciones[1] = Integer.valueOf(anio);
+ }
+ else //la sql tiene un parametro
+ //el array de objetos sera de un elemento
+ aCondiciones = new Object[1];
+
+ strSql.append(" ORDER BY FECHA");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+
+ try {
+ resul = this.seleccionar(strSql.toString()/*, intPagina*/, aCondiciones);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tamedico_Taprescr (listado_prescripciones): " + e + " (" + consulta + ")");
+ }
+
+ return resul;
+ }
+
+ public Vector ObtenerTotalesIrpf(int medico, String anio)
+ {
+ Vector vResul = new Vector();
+ Tadremed tadremed = null;
+ /*StringBuffer sqlSelect = new StringBuffer();*/
+ String consulta = "";
+ String fechaInicio = "01/01/"+anio;
+ String fechaFin = "31/12/"+anio;
+ try
+ {
+ /*sqlSelect.append("Select SUM(IMPORTE) AS IMPORTE, SUM(IRPF) AS IRPF from TADREMED ");
+ sqlSelect.append("where medico = ?");
+ sqlSelect.append("AND FECHA BETWEEN " + fechaInicio + " AND " + fechaFin);*/
+
+ consulta = "Select SUM(IMPORTE) AS IMPORTE, SUM(IRPF) AS IRPF ";
+ consulta += "from TADREMED ";
+ consulta += "where medico = ? ";
+ consulta += "AND FECHA BETWEEN TO_DATE('" + fechaInicio + "','DD/MM/YYYY') AND TO_DATE('" + fechaFin + "','DD/MM/YYYY')";
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, consulta, aCondiciones);
+
+ while(rs.next())
+ {
+ tadremed = new Tadremed();
+ tadremed.setIrpfTotal(rs.getDouble("IRPF"));
+ tadremed.setImporteTotal(rs.getDouble("IMPORTE"));
+ vResul.addElement(tadremed);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan e)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: "+e.toString());
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion SQL: "+e.toString());
+ }
+
+ return vResul;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaespeci.java b/Fuentes/com/tarisan/control/PersistenciaTaespeci.java
new file mode 100644
index 0000000..20f89cd
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaespeci.java
@@ -0,0 +1,236 @@
+/**
+ * @(#) PersistenciaTaespeci.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Taespeci;
+import com.tarisan.data.TtactmedGPC;
+import com.tarisan.log.*;
+import com.tarisan.util.Utilidades;
+import com.tarisan.excepcion.ExcepcionTarisan;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Taespeci.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTaespeci
+{
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla TAESPECI en función de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de selección.
+ * @param pagina Número de página a mostrar.
+ * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Taespeci).
+ * @throws
+ */
+ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+
+ int elementosPaginacion=1;
+
+ Vector vResultado = new Vector();
+ Taespeci taespeci = null;
+ ResultSet rs = null;
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ if (aCondiciones==null || aCondiciones.length==0)
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect);
+ else
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ taespeci = new Taespeci();
+ taespeci.setDescripcion(rs.getString("DESCRIPCION"));
+ taespeci.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ vResultado.addElement(taespeci);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAESPECI (" + sqlSelect + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAESPECI: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAESPECI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAESPECI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAESPECI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+ public Vector listado_especialidades(String nombre, int intPagina)
+ {
+ Vector resul = new Vector();
+ StringBuffer strSql = new StringBuffer();
+
+ Object [] aCondiciones = new Object[1];
+ String consulta = "";
+
+ strSql.append("SELECT ESPECIALIDAD, DESCRIPCION");
+ strSql.append(" FROM TAESPECI");
+ strSql.append(" WHERE ESPECIALIDAD <> ?");
+
+
+ //comprobamos si se trata de una busqueda de especialidades
+ if (!nombre.equalsIgnoreCase(""))
+ {
+ if (nombre.endsWith("*"))
+ nombre=nombre.replace('*', '%');
+ else
+ nombre="%" + nombre + "%";
+
+ strSql.append(" AND DESCRIPCION LIKE ?");
+
+ aCondiciones = new Object[2];
+ aCondiciones[1] = new String(nombre);
+ }
+ else
+ aCondiciones = new Object[1];
+ aCondiciones[0] = Integer.valueOf(0);
+
+ strSql.append(" ORDER BY DESCRIPCION");
+
+
+ try {
+ resul = this.seleccionar(strSql.toString(), intPagina, aCondiciones);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tapresca-taclient (listado_diagnostico_gpc_por_cliente): " + e + " (" + consulta + ")");
+ }
+
+
+
+ return resul;
+ }
+
+ public String obtenerDescripcionEspecialidad(int especialidad) throws SQLException
+ {
+ String resul = "";
+ StringBuffer strSql = new StringBuffer();
+ ResultSet rs = null;
+ Object [] aCondiciones = new Object[1];
+
+ strSql.append("SELECT DESCRIPCION");
+ strSql.append(" FROM TAESPECI");
+ strSql.append(" WHERE ESPECIALIDAD = ?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0] = especialidad;
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ resul = rs.getString("DESCRIPCION");
+
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionada la especialidad " + resul + " de la tabla TAESPECI (" + strSql.toString() + ")");
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Taespeci (obtenerDescripcionEspecialidad): " + e + " (" + strSql.toString() + ")");
+ }
+
+ return resul;
+ }
+
+ public int paginaDeLaEspecialidad(int Especialidad) throws SQLException
+ {
+ int pagina = 0;
+ Vector resul = new Vector();
+ StringBuffer strSql = new StringBuffer();
+ Taespeci taespeci = null;
+ int pos = 0;
+
+ Object [] aCondiciones = new Object[0];
+ String consulta = "";
+
+ strSql.append("SELECT ESPECIALIDAD, DESCRIPCION");
+ strSql.append(" FROM TAESPECI");
+ strSql.append(" ORDER BY DESCRIPCION");
+
+ try {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ pos = pos + 1;
+ taespeci = new Taespeci();
+ taespeci.setDescripcion(rs.getString("DESCRIPCION"));
+ taespeci.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+
+ if (taespeci.getEspecialidad()==Especialidad){
+ pagina = (pos/10) + 1;
+ if (pos % 10 == 0){
+ pagina = pagina - 1;
+ }
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + resul.size() + " registros de la tabla tapresca_tarisan (" + strSql.toString() + ")");
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tapresca-taclient (listado_diagnostico_gpc_por_cliente): " + e + " (" + consulta + ")");
+ }
+
+
+
+ return pagina;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTagruana.java b/Fuentes/com/tarisan/control/PersistenciaTagruana.java
new file mode 100644
index 0000000..e8b8864
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTagruana.java
@@ -0,0 +1,382 @@
+/**
+ * @(#) PersistenciaTagruana.java
+ */
+
+
+package com.tarisan.control;
+
+import com.tarisan.data.Tagruana;
+import com.tarisan.log.*;
+import com.tarisan.excepcion.ExcepcionTarisan;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Tagruana.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTagruana
+{
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Obtiene los grupos de análisis de la especialidad analítica.
+ * @return El Vector con los grupos de análisis de la especialidad de analíticas.
+ */
+ public Vector obtenerGrupos(int pagina, int medico) throws ExcepcionTarisan
+ {
+
+ Vector vResultado = new Vector();
+ Tagruana tagruana = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int elementosPaginacion=1;
+
+ try
+ {
+ strSql.append("SELECT DISTINCT GRUPO,DESCRIPCION");
+ strSql.append(" FROM tagruana");
+ strSql.append(" WHERE especialidad=?");
+ strSql.append(" and medico=?");
+
+ aCondiciones = new Object[2];
+ aCondiciones[0]=Integer.valueOf(ParametrosConfiguracion.analiticas);
+ aCondiciones[1]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ tagruana = new Tagruana();
+ tagruana.setGrupo(rs.getInt("GRUPO"));
+ tagruana.setDescripcion(rs.getString("DESCRIPCION"));
+ vResultado.addElement(tagruana);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAGRUANA (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+ return vResultado;
+ }
+
+ public Vector obtenerGruposAnalisis(int medico) throws ExcepcionTarisan
+ {
+
+ Vector vResultado = new Vector();
+ Tagruana tagruana = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT DISTINCT GRUPO,DESCRIPCION");
+ strSql.append(" FROM tagruana");
+ strSql.append(" WHERE especialidad=?");
+ strSql.append(" and medico=?");
+
+ aCondiciones = new Object[2];
+ aCondiciones[0]=Integer.valueOf(ParametrosConfiguracion.analiticas);
+ aCondiciones[1]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ tagruana = new Tagruana();
+ tagruana.setGrupo(rs.getInt("GRUPO"));
+ tagruana.setDescripcion(rs.getString("DESCRIPCION"));
+ vResultado.addElement(tagruana);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAGRUANA (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+ return vResultado;
+ }
+
+ public Vector listar_actos_buscador_excluidos(String nosacar, String buscador)
+ {
+ Vector vResultado = new Vector();
+ Tagruana tag = new Tagruana();
+ String sql = "select distinct(a.acto) ACTO, a.descripcion_gpc DESCRIP_ACTO from ttactmed_gpc a where a.acto not in ("+nosacar+") and upper(a.descripcion_gpc) like upper('"+buscador+"') and especialidad="+ParametrosConfiguracion.analiticas+" order by a.descripcion_gpc";
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ while(rs.next())
+ {
+ tag = new Tagruana();
+ tag.setActo(rs.getInt("ACTO"));
+ tag.setDescripcionActo(rs.getString("DESCRIP_ACTO"));
+ vResultado.addElement(tag);
+ }
+
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener los actos teniendo en cuenta los excluidos y usando el buscador. Excepcion Tarisan.");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener los actos teniendo en cuenta los excluidos y usando el buscador. SQL Exception");
+ }
+
+
+ return vResultado;
+ }
+
+
+ public int getMaxGrupo()
+ {
+ int result = 0;
+ String sql = null;
+ Connection conexion;
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+
+ sql = "SELECT MAX(GRUPO) AS GRUPO FROM TAGRUANA";
+ ResultSet resul = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ int max = 0;
+ while(resul.next())
+ {
+ max = resul.getInt("GRUPO");
+ }
+ result = max + 1;
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener el siguiente numero de grupo. ExcecionTarisan");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error al obtener el siguiente numero de grupo. SQLExcepcion");
+ }
+ return result;
+ }
+
+ /**
+ * Obtiene los actos médicos que forman parte de un determinado grupo de análisis de la especialidad analítica.
+ * @param grupo Código del grupo de análisis.
+ * @return El Vector con los actos médicos pertenecientes al grupo de análisis indicado.
+ * @throws
+ */
+ public Vector obtenerActosMedicos(int grupo, int medico) throws ExcepcionTarisan
+ {
+
+ Vector vResultado = new Vector();
+ Tagruana tagruana = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT TAGRUANA.Acto, ttactmed_gpc.Descripcion_gpc AS Descripcion_acto, TAGRUANA.Descripcion AS Descripcion_perfil" );
+ strSql.append(" FROM tagruana, ttactmed_gpc");
+ strSql.append(" WHERE tagruana.especialidad=ttactmed_gpc.especialidad");
+ strSql.append(" AND tagruana.acto=ttactmed_gpc.acto");
+ strSql.append(" AND tagruana.especialidad=?");
+ strSql.append(" AND tagruana.grupo=?");
+ strSql.append(" AND tagruana.medico=?");
+
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Integer.valueOf(ParametrosConfiguracion.analiticas);
+ aCondiciones[1]=Integer.valueOf(grupo);
+ aCondiciones[2]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ tagruana = new Tagruana();
+ tagruana.setActo(rs.getInt("ACTO"));
+ tagruana.setDescripcionActo(rs.getString("DESCRIPCION_ACTO"));
+ tagruana.setDescripcion(rs.getString("DESCRIPCION_PERFIL"));
+ vResultado.addElement(tagruana);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAGRUANA (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+ return vResultado;
+
+ }
+
+
+
+ public void borrar_actos(int grupo, int espe, int medico)
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ Connection conexion = null;
+
+ strSql.append("delete tagruana");
+ strSql.append(" where grupo = ?");
+ strSql.append(" and especialidad = ?");
+ strSql.append(" and medico = ?");
+
+ aCondiciones = new Object[3];
+ aCondiciones[0]=Integer.valueOf(grupo);
+ aCondiciones[1]=Integer.valueOf(espe);
+ aCondiciones[2]=Integer.valueOf(medico);
+
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+ ParametrosConfiguracion.dataStore.borrar(strSql.toString(), aCondiciones, conexion);
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Eliminados todos los registros de la tabla TAGRUANA (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminacion de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la eliminacion de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ }
+
+ }
+
+ public int insertar_actos(int grupo, int espe, int medico, String valores, String descrip)
+ {
+ int resultado = 0;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int i = 0, j = 0;
+ Connection conexion = null;
+
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
+
+ while(valores.substring(i).indexOf(",") != -1)
+ {
+ strSql.append("insert into tagruana (grupo, especialidad, acto, medico, descripcion)");
+ strSql.append(" values(?, ?, ?, ?, ?)");
+
+ aCondiciones = new Object[5];
+ aCondiciones[0]=Integer.valueOf(grupo);
+ aCondiciones[1]=Integer.valueOf(espe);
+ aCondiciones[2]=new String(valores.substring(i, i+valores.substring(i).indexOf(",")));
+ aCondiciones[3]=Integer.valueOf(medico);
+ aCondiciones[4]=new String(descrip);
+
+
+ i=i+valores.substring(i).indexOf(",") + 1;
+ j+=1;
+
+ ParametrosConfiguracion.dataStore.insertar(strSql.toString(), aCondiciones, conexion);
+ strSql = new StringBuffer();
+
+ }
+ resultado = j;
+ ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Insertados "+ j +" registros en la tabla TAGRUANA (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserción de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Exception sqle)
+ {
+ try
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion. Vamos a hacer rollback");
+ ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
+ }
+ catch(ExcepcionTarisan ex1)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Excepcion al intentar hacer rollback de la transaccion. ");
+ }
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la inserción de TAGRUANA: " + sqle + " (" + strSql.toString() + ")");
+ }
+
+ return resultado;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaiguala.java b/Fuentes/com/tarisan/control/PersistenciaTaiguala.java
new file mode 100644
index 0000000..d18894c
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaiguala.java
@@ -0,0 +1,103 @@
+/*
+ * Created on 24-nov-2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package com.tarisan.control;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import com.tarisan.data.Taiguala;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+
+
+ /**
+ * @author Roumen
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+ public class PersistenciaTaiguala {
+
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+
+
+
+ public int obtenerContrato(long colectivo, double poliza, int entidad) throws ExcepcionTarisan
+ {
+
+ int contrato = 0;
+ Taiguala taiguala;
+ StringBuffer strSql = new StringBuffer();
+ Object[] aCondiciones=null;
+
+ try
+ {
+ strSql.append("SELECT CONTRATO");
+ strSql.append(" FROM TTIGUALA");
+ strSql.append(" WHERE COLECTIVO=?");
+ strSql.append(" AND POLIZA=?");
+ strSql.append(" AND ENTIDAD=?");
+
+ aCondiciones = new Object[3];
+ aCondiciones[0] = Long.valueOf(colectivo);
+ aCondiciones[1] = Double.valueOf(poliza);
+ aCondiciones[2] = Integer.valueOf(entidad);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ contrato = rs.getInt("CONTRATO");
+ }
+
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado " + rs.getRow() + " registros de la tabla TAIGUALA (" + strSql.toString() + ")");
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAIGUALA: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAIGUALA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAIGUALA: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TACENTRO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+
+
+ return contrato;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaliquimedi.java b/Fuentes/com/tarisan/control/PersistenciaTaliquimedi.java
new file mode 100644
index 0000000..18e87e5
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaliquimedi.java
@@ -0,0 +1,346 @@
+package com.tarisan.control;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Vector;
+
+import com.tarisan.data.Taliquimedi;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.LogTarisan;
+import com.tarisan.log.NivelLog;
+import com.tarisan.util.Utilidades;
+
+public class PersistenciaTaliquimedi {
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla ttactmed en función de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de selección.
+ * @param pagina Número de página a mostrar.
+ * @param aCondiciones Array que contiene los parametros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase ttactmed).
+ * @throws
+ */
+ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+
+ int elementosPaginacion=1;
+
+ Vector vResultado = new Vector();
+ Taliquimedi taliquimedi = null;
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ /*objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina); */
+
+ while(rs.next()) /* && (elementosPaginacion <= Paginacion.getFilasPorPagina()))*/
+ {
+ taliquimedi = new Taliquimedi();
+ taliquimedi.setMedico(rs.getInt("MEDICO"));
+ taliquimedi.setMedico_origen(rs.getInt("MEDICO_ORIGEN"));
+ taliquimedi.setMes(rs.getString("MES"));
+ taliquimedi.setAnio(rs.getString("año"));
+ taliquimedi.setFecha_factura(rs.getDate("FECHA_FACTURA"));
+ taliquimedi.setFactura(rs.getInt("FACTURA"));
+ taliquimedi.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ taliquimedi.setDesc_esp(rs.getString("DESC_ESP"));
+ taliquimedi.setActo(rs.getInt("ACTO"));
+ taliquimedi.setDescripcion(rs.getString("DESCRIPCION"));
+ taliquimedi.setPrecio(rs.getDouble("PRECIO"));
+ taliquimedi.setCantidad(rs.getInt("CANTIDAD"));
+ taliquimedi.setImporte(rs.getDouble("IMPORTE"));
+ vResultado.addElement(taliquimedi);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ //}
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TALIQUIMEDI (" + sqlSelect + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+ public Vector seleccionar_res_todas_liqui(String sqlSelect, Object[] aCondiciones, String retencion) throws ExcepcionTarisan
+ {
+
+ Vector vResultado = new Vector();
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ if (retencion=="S"){
+ while(rs.next())
+ {
+ vResultado.addElement(rs.getString("FECHA"));
+ vResultado.addElement(rs.getInt("IMPORTE"));
+ vResultado.addElement(rs.getInt("TOTAL"));
+ vResultado.addElement(rs.getInt("IRPF"));
+ }
+ }else{
+ while(rs.next())
+ {
+ vResultado.addElement(rs.getString("FECHA"));
+ vResultado.addElement(rs.getInt("IMPORTE"));
+ vResultado.addElement(rs.getInt("TOTAL"));
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TALIQUIMEDI (" + sqlSelect + ")");
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+
+ public Vector listado_fechas_liquidaciones(int medico) throws SQLException
+ {
+ Vector vresul = new Vector();
+ String sql="";
+
+ sql = "select mes||'/'||año as fecha from taliquimedi where medico = "+medico+" group by año, mes order by año desc, mes desc";
+
+ try {
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet resultado = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+
+ while (resultado.next())
+ {
+ vresul.addElement(resultado.getString("FECHA"));
+ };
+ conexion.close();
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de las fechas de liquidación: " + e + " (" + sql + ")");
+ }
+
+ return vresul;
+ }
+
+ public boolean tiene_retencion(int medico) throws SQLException
+ {
+ boolean retencion = false;
+ String sql="";
+
+ sql = "Select cla, medico_origen from ttmedico, taliquimedi where ttmedico.medico = " + medico + " and ttmedico.medico = taliquimedi.medico";
+
+ try {
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet resultado = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ if(resultado.next())
+ {
+ if(resultado.getString("cla").indexOf("M") == 0)
+ {
+ retencion = true;
+ LogTarisan.logger.log(NivelLog.INFO, "\nSi tiene retencion 219\n");
+ }
+ };
+ conexion.close();
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la existencia de retención de IRP: " + e + " (" + sql + ")");
+ }
+
+ return retencion;
+ }
+
+ public boolean tiene_retencion_por_taliquimedico(int medico) throws SQLException
+ {
+ boolean retencion = false;
+ String sql="";
+
+ sql = "Select cla, medico_origen from ttmedico, taliquimedi where taliquimedi.medico = " + medico + " and ttmedico.medico = taliquimedi.medico_origen";
+
+ try {
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet resultado = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ if(resultado.next())
+ {
+ if(resultado.getString("cla").indexOf("M") == 0)
+ {
+ retencion = true;
+ LogTarisan.logger.log(NivelLog.INFO, "\nSi tiene retencion 219\n");
+ }
+ };
+ conexion.close();
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la existencia de retención de IRP: " + e + " (" + sql + ")");
+ }
+
+ return retencion;
+ }
+
+ public Vector listado_resumen_todas_liquidaciones_con_retencion(int medico)
+ {
+ Vector resul = null;
+ StringBuffer strSql = new StringBuffer();
+ String retencion = "S";
+
+ Object [] aCondiciones = new Object[1];
+ String consulta = "";
+
+ strSql.append("Select concat(concat(mes, '/'),año) as FECHA, sum(importe) as IMPORTE, (sum(importe)*0.15) as IRPF, (sum(importe)-(sum(importe)*0.15)) as TOTAL");
+ strSql.append(" from taliquimedi where medico = ?");
+ strSql.append(" group by mes, año");
+ strSql.append(" order by mes, año");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+
+ try {
+ resul = this.seleccionar_res_todas_liqui(strSql.toString(), aCondiciones, retencion);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI (listado_resumen_todas_liquidaciones_con_retencion): " + e + " (" + consulta + ")");
+ }
+
+ return resul;
+ }
+
+ public Vector listado_resumen_todas_liquidaciones_sin_retencion(int medico)
+ {
+ Vector resul = null;
+ StringBuffer strSql = new StringBuffer();
+ String retencion = "N";
+
+ Object [] aCondiciones = new Object[1];
+ String consulta = "";
+
+ strSql.append("Select concat(concat(mes, '/'),año) as FECHA, sum(importe) as IMPORTE, sum(importe) as TOTAL");
+ strSql.append(" from taliquimedi where medico = ?");
+ strSql.append(" group by mes, año");
+ strSql.append(" order by mes, año");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+
+ try {
+ resul = this.seleccionar_res_todas_liqui(strSql.toString(), aCondiciones, retencion);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI (listado_resumen_todas_liquidaciones_sin_retencion): " + e + " (" + consulta + ")");
+ }
+
+ return resul;
+ }
+
+ public int obtener_medico_origen(int med) throws SQLException
+ {
+ int medico = 0;
+ String sql="";
+
+ sql = "select medico_origen from taliquimedi where medico = " + med;
+
+ try {
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet resultado = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql);
+ if(resultado.next())
+ {
+ medico = resultado.getInt("medico_origen");
+ };
+ conexion.close();
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la select de la obtención del médico de origen: " + e + " (" + sql + ")");
+ }
+
+ return medico;
+ }
+
+ public Vector listado_detalle_liquidaciones_medicos(int medico, String mes, int pagina)
+ {
+ Vector resul = null;
+ StringBuffer strSql = new StringBuffer();
+ String retencion = "N";
+
+ Object [] aCondiciones = new Object[2];
+ String consulta = "";
+
+ strSql.append("Select *");
+ strSql.append(" from taliquimedi where medico = ?");
+ strSql.append(" and concat(concat(mes,'/'),año) = ?");
+ strSql.append(" order by concat(concat(mes,'/'),año), acto");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+ aCondiciones[1] = new String(mes);
+
+ try {
+ resul = this.seleccionar(strSql.toString(), pagina, aCondiciones);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TALIQUIMEDI (listado_detalle_liquidaciones_medicos): " + e + " (" + consulta + ")");
+ }
+
+ return resul;
+ }
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTaliquimedidet.java b/Fuentes/com/tarisan/control/PersistenciaTaliquimedidet.java
new file mode 100644
index 0000000..2baaeb5
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTaliquimedidet.java
@@ -0,0 +1,440 @@
+package com.tarisan.control;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.sql.Connection;
+import java.sql.Date;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.DecimalFormat;
+import java.util.Calendar;
+import java.util.Vector;
+
+import com.itextpdf.text.BaseColor;
+import com.itextpdf.text.Document;
+import com.itextpdf.text.DocumentException;
+import com.itextpdf.text.Element;
+import com.itextpdf.text.Font;
+import com.itextpdf.text.FontFactory;
+import com.itextpdf.text.PageSize;
+import com.itextpdf.text.Paragraph;
+import com.itextpdf.text.Phrase;
+import com.itextpdf.text.pdf.PdfPCell;
+import com.itextpdf.text.pdf.PdfPTable;
+import com.itextpdf.text.pdf.PdfWriter;
+import com.tarisan.data.TaliquimediDet;
+import com.tarisan.data.Tavolin;
+import com.tarisan.excepcion.ExcepcionTarisan;
+import com.tarisan.log.*;
+import com.tarisan.util.*;
+
+public class PersistenciaTaliquimedidet implements Constantes
+{
+
+ /**
+ * Devuelve los resultados correspondientes para ese medico, especialidad, mes y anio, siguiendo la paginacion
+ * @param med
+ * @param espe
+ * @param mes
+ * @param anio
+ * @param pag
+ * @return
+ */
+ public Vector buscarDetalles(int med, int mes, int anio, int pag)
+ {
+
+
+
+ Vector resultado = new Vector();;
+ TaliquimediDet talimedet = new TaliquimediDet();
+ Object[] aCondiciones = new Object[3];
+ StringBuffer sqlSelect = new StringBuffer();
+ String m = (mes<10)?"0"+mes:""+mes;
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ sqlSelect.append("Select MEDICO, FACTURA, APELLIDOS, ENTIDAD, COLECTIVO, poliza, orden, fecha_gasto, FECHA_FACTURA, especialidad, descripcion, importe from taliquimedidet");
+ sqlSelect.append(" where medico = ?");
+ sqlSelect.append(" and fecha_factura = ?");
+ sqlSelect.append(" order by fecha_gasto desc");
+ aCondiciones[0] = Integer.valueOf(med);
+ Calendar cal = Calendar.getInstance();
+ cal.set(anio, mes-1, Utilidades.ultimo_dia_mes(mes,anio));
+ aCondiciones[1] = new Date(cal.getTimeInMillis());
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString().toUpperCase(), aCondiciones);
+
+ Paginacion pg = new Paginacion();
+ pg.inicializarPaginacion(rs);
+ pg.realizarPaginacion(rs, pag);
+ for(int i=0;i0)
+ {
+ TaliquimediDet talimedet = new TaliquimediDet();
+ talimedet = (TaliquimediDet)detalles.get(0);
+
+
+ detalles_fra="Detalle de los honorarios del: "+m+"/"+anio+"\n"+ "Fecha Factura: "+talimedet.getFecha_factura()+"\n Factura Numero: "+talimedet.getMedico()+"/"+talimedet.getFactura()+"\n"+"\n"+"\n"+"\n";
+
+ Phrase para=new Phrase(detalles_fra,FontFactory.getFont("arial",10,Font.NORMAL,BaseColor.BLACK));
+
+ try {
+
+ PdfWriter.getInstance(documento, new FileOutputStream(file_detalle));
+ documento.open();
+ documento.add(para);
+
+ //Añadimos los encabezados de la tabla
+ PdfPCell celda1 =new PdfPCell (new Paragraph("Póliza",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ //PdfPCell celda2 =new PdfPCell (new Paragraph("Col.",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ //PdfPCell celda3 =new PdfPCell (new Paragraph("Póliza",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ //PdfPCell celda4 =new PdfPCell (new Paragraph("Orden",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ PdfPCell celda5 =new PdfPCell (new Paragraph("Asegurado",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ PdfPCell celda6 =new PdfPCell (new Paragraph("Descripción",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ PdfPCell celda7 =new PdfPCell (new Paragraph("Fecha gasto",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ PdfPCell celda8 =new PdfPCell (new Paragraph("Importe",FontFactory.getFont("arial",7,Font.BOLD,BaseColor.RED)));
+ //LogTarisan.logger.log(NivelLog.DEBUG, "\n\n\n\nLlega 218\n\n\n\n");
+
+ celda1.setBorder(1);
+ celda1.setBorderWidthTop(1);
+ celda1.setBorderWidthBottom(1);
+ celda1.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda1.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ /*celda2.setBorder(1);
+ celda2.setBorderWidthTop(1);
+ celda2.setBorderWidthBottom(1);
+ celda2.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda2.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ celda3.setBorder(1);
+ celda3.setBorderWidthTop(1);
+ celda3.setBorderWidthBottom(1);
+ celda3.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda3.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ celda4.setBorder(1);
+ celda4.setBorderWidthTop(1);
+ celda4.setBorderWidthBottom(1);
+ celda4.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda4.setVerticalAlignment(Element.ALIGN_MIDDLE);*/
+ celda5.setBorder(1);
+ celda5.setBorderWidthTop(1);
+ celda5.setBorderWidthBottom(1);
+ celda5.setHorizontalAlignment(Element.ALIGN_LEFT);
+ celda5.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ celda6.setBorder(1);
+ celda6.setBorderWidthTop(1);
+ celda6.setBorderWidthBottom(1);
+ celda6.setHorizontalAlignment(Element.ALIGN_LEFT);
+ celda6.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ celda7.setBorder(1);
+ celda7.setBorderWidthTop(1);
+ celda7.setBorderWidthBottom(1);
+ celda7.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda7.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ celda8.setBorder(1);
+ celda8.setBorderWidthTop(1);
+ celda8.setBorderWidthBottom(1);
+ celda8.setHorizontalAlignment(Element.ALIGN_RIGHT);
+ celda8.setVerticalAlignment(Element.ALIGN_MIDDLE);
+ tabla.addCell(celda1);/*
+ tabla.addCell(celda2);
+ tabla.addCell(celda3);
+ tabla.addCell(celda4);*/
+ tabla.addCell(celda5);
+ tabla.addCell(celda6);
+ tabla.addCell(celda7);
+ tabla.addCell(celda8);
+
+ //ahora recorremos el vector con todos los detalles de la liquidacion y vamos añadiendo los campos
+ for(int j=0;jTamedica.
+ * @author Dpto. Informtica.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTamedica
+{
+
+ /**
+ * El objeto Paginacion que controla el nmero de filas a mostrar por cada pgina.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber qu pgina se est visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla TAMEDICA en funcin de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de seleccin.
+ * @param pagina Nmero de pgina a mostrar.
+ * @param aCondiciones Array que contiene los parmetros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Tamedica).
+ * @throws
+ */
+ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+
+ int elementosPaginacion=1;
+
+ Vector vResultado = new Vector();
+ Tamedica tamedica = null;
+ ResultSet rs = null;
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ if (aCondiciones==null || aCondiciones.length==0)
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect);
+ else
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ tamedica = new Tamedica();
+ tamedica.setDescripcion(rs.getString("DESCRIPCION"));
+ tamedica.setCodigo(rs.getInt("CODIGO"));
+ vResultado.addElement(tamedica);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICA (" + sqlSelect + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TAMEDICA: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TAMEDICA: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TAMEDICA: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de TAMEDICA: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vResultado;
+ }
+
+ public Vector listado_medicamentos(String nombre, int intPagina)
+ {
+ Vector resul = new Vector();
+ StringBuffer strSql = new StringBuffer();
+
+ Object [] aCondiciones = new Object[1];
+ String consulta = "";
+
+ strSql.append("SELECT CODIGO, DESCRIPCION");
+ strSql.append(" FROM TAMEDICA");
+
+ //comprobamos si se trata de una busqueda de medicamentos
+ if (!nombre.equalsIgnoreCase(""))
+ {
+ if (nombre.endsWith("*"))
+ nombre=nombre.replace('*', '%');
+ else
+ nombre="%" + nombre +"%";
+
+ strSql.append(" WHERE DESCRIPCION LIKE ?");
+ aCondiciones[0] = new String(nombre);
+ }else{
+ aCondiciones = new Object[0];
+
+ }
+
+ strSql.append(" ORDER BY DESCRIPCION");
+
+
+ try {
+ resul = this.seleccionar(strSql.toString(), intPagina, aCondiciones);
+ consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la seleccin de Tamedica (listado_medicamentos): " + e + " (" + consulta + ")");
+ }
+
+
+
+ return resul;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTamedico.java b/Fuentes/com/tarisan/control/PersistenciaTamedico.java
new file mode 100644
index 0000000..5c1d28a
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTamedico.java
@@ -0,0 +1,717 @@
+/**
+ * @(#) PersistenciaTamedico.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Tamedico;
+import com.tarisan.excepcion.*;
+import com.tarisan.log.*;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Tamedico.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTamedico
+{
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla TAMEDICO en función de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de selección.
+ * @param pagina Número de página a mostrar.
+ * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase tamedico).
+ * @throws
+ */
+ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+ int elementosPaginacion=1;
+
+ Vector vResultado = new Vector();
+ Tamedico tamedico = null;
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ objPaginacion.realizarPaginacion(rs, pagina);
+
+ while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
+ {
+ tamedico = new Tamedico();
+ tamedico.setApellidos(rs.getString("APELLIDOS"));
+ tamedico.setColegiadoCab(rs.getString("COLEGIADO_CAB"));
+ tamedico.setCpCab(rs.getInt("CP_CAB"));
+ tamedico.setDireccionCab(rs.getString("DIRECCION_CAB"));
+ tamedico.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ tamedico.setEspecialidadCab(rs.getString("ESPECIALIDAD_CAB"));
+ tamedico.setMedico(rs.getInt("MEDICO"));
+ tamedico.setNombre(rs.getString("NOMBRE"));
+ tamedico.setNombreCab(rs.getString("NOMBRE_CAB"));
+ tamedico.setParam1(rs.getInt("PARAM1"));
+ tamedico.setParam2(rs.getInt("PARAM2"));
+ tamedico.setPassword(rs.getString("PASSWORD"));
+ tamedico.setPoblacionCab(rs.getString("POBLACION_CAB"));
+ tamedico.setTarifa(rs.getInt("TARIFA"));
+ tamedico.setTelefonoCab(rs.getString("TELEFONO_CAB"));
+ tamedico.setNum_deter(rs.getInt("NUM_DETER"));
+ tamedico.setEmailCab(rs.getString("EMAIL_CAB"));
+ vResultado.addElement(tamedico);
+ if (pagina!=0) //Se quiere realizar la paginacion
+ elementosPaginacion++;
+ }
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICO (" + sqlSelect + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return vResultado;
+ }
+
+ /**
+ * Obtiene el médico que ha realizado la prescripción del análisis al paciente.
+ * @param autorizacion Autorización de la prescripción.
+ * @param colectivo Número de colectivo.
+ * @param póliza Número de póliza.
+ * @param beneficiario Número de beneficiario.
+ * @return El objeto Tamedico que ha realizado la prescripción del análisis al paciente.
+ * @throws
+ */
+ public Tamedico obtenerMedicoPrescripcionAnalisis(long autorizacion, long colectivo, double poliza, int beneficiario) throws ExcepcionTarisan
+ {
+ Tamedico tamedico = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT tapresca_tarisan.PRESCRIPTOR, TAMEDICO.ESPECIALIDAD");
+ strSql.append(" FROM tapresca_tarisan, TAMEDICO");
+ strSql.append(" WHERE tapresca_tarisan.PRESCRIPTOR=TAMEDICO.MEDICO");
+ strSql.append(" AND tapresca_tarisan.AUTORIZACION=?");
+ strSql.append(" AND tapresca_tarisan.COLEC=?");
+ strSql.append(" AND tapresca_tarisan.POLIZA=?");
+ strSql.append(" AND tapresca_tarisan.ORDEN=?");
+
+ aCondiciones = new Object[4];
+ aCondiciones[0] = Long.valueOf(autorizacion);
+ aCondiciones[1] = Long.valueOf(colectivo);
+ aCondiciones[2] = Double.valueOf(poliza);
+ aCondiciones[3] = Integer.valueOf(beneficiario);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if (rs.next())
+ {
+ tamedico = new Tamedico();
+ tamedico.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ tamedico.setMedico(rs.getInt("PRESCRIPTOR"));
+ }
+ else
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la obtención del codigo del prescriptor de la tabla tapresca_tarisan (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan("Error en la obtención del prescriptor del analisis.");
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "El codigo del prescriptor obtenido de la tabla tapresca_tarisan es: " + tamedico.getMedico() + " (" + strSql.toString() + ")");
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return tamedico;
+ }
+
+
+ /**
+ * Obtiene el password del médico que está conectado a la aplicación de la tabla TAMEDICO.
+ * @param medico Código del médico conectado.
+ * @param especialidad Código de la especialidad del médico conectado.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase tamedico).
+ * @throws
+ */
+ public Vector obtenerPassword(int medico, int especialidad) throws ExcepcionTarisan
+ {
+ Vector vResultado = new Vector();
+ Tamedico tamedico = null;
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+
+ try
+ {
+ strSql.append("SELECT password");
+ strSql.append(" FROM tamedico");
+ strSql.append(" WHERE medico=?");
+ strSql.append(" AND especialidad=?");
+
+ aCondiciones = new Object[2];
+ aCondiciones[0]=Integer.valueOf(medico);
+ aCondiciones[1]=Integer.valueOf(especialidad);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ objPaginacion.inicializarPaginacion(rs);
+ if (objPaginacion.getNumeroRegistrosTotales()!=0)
+ {
+ //nos posicionamos en el registro
+ rs.next();
+ //obtenemos el password
+ tamedico = new Tamedico();
+ tamedico.setPassword(rs.getString("PASSWORD"));
+ vResultado.addElement(tamedico);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return vResultado;
+ }
+
+
+ /**
+ * Obtiene el valor del campo Param1 del médico indicado de la tabla TAMEDICO.
+ * @param medico Código del médico conectado.
+ * @return El valor del campo Param1 del médico en cuestión.
+ * @throws
+ */
+ public int obtenerValorParam1(int medico) throws ExcepcionTarisan
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int intParam1 = 0;
+
+ try
+ {
+ strSql.append("SELECT param1");
+ strSql.append(" FROM tamedico");
+ strSql.append(" WHERE medico=?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ intParam1 = rs.getInt("PARAM1");
+ else
+ {
+ //lanzamos error al no encontrar el registro del medico indicado
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la obtención del campo PARAM1 de la tabla TAMEDICO: (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan("Error en la obtención de los datos del médico.");
+ }
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el valor " + intParam1 + " del campo PARAM1 de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return intParam1;
+ }
+
+
+
+ public int obtenerEspecialidad(int medico) throws ExcepcionTarisan
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int intEspe = 0;
+
+ try
+ {
+ strSql.append("SELECT especialidad");
+ strSql.append(" FROM tamedico");
+ strSql.append(" WHERE medico=?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ intEspe = rs.getInt("ESPECIALIDAD");
+ else
+ {
+ //lanzamos error al no encontrar el registro del medico indicado
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la obtención del campo ESPECIALIDAD de la tabla TAMEDICO: (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan("Error en la obtención de los datos del médico.");
+ }
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el valor " + intEspe + " del campo ESPECIALIDAD de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return intEspe;
+ }
+
+
+ /**
+ * Modifica la tabla TAMEDICO en función de la sentencia UPDATE indicada.
+ * @param sqlSelect La sentencia UPDATE.
+ * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia.
+ * @param aCondiciones Array que contiene los parámetros de la condición utilizados en la sentencia.
+ * @throws
+ */
+ public void modificarMedico(String sqlSelect, Object[] aValores, Object[] aCondiciones) throws ExcepcionTarisan
+ {
+ try
+ {
+ ParametrosConfiguracion.dataStore.actualizar(sqlSelect, aValores, aCondiciones);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+ }
+
+ /**
+ * Modifica la tabla TAMEDICO en función de la sentencia UPDATE indicada.
+ * @param sqlSelect La sentencia UPDATE.
+ * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia.
+ * @param aCondiciones Array que contiene los parámetros de la condición utilizados en la sentencia.
+ * @param conexion La conexión por la que se ejecuta la sentencia. Utilizado para el uso transacciones.
+ * @throws
+ */
+ public void modificarMedico(String sqlSelect, Object[] aValores, Object[] aCondiciones, Connection conexion) throws ExcepcionTarisan
+ {
+ try
+ {
+ ParametrosConfiguracion.dataStore.actualizar(sqlSelect, aValores, aCondiciones, conexion);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la modificacion de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+ }
+
+
+ /**
+ * Selecciona el registro de la tabla TAMEDICO correspondiente al usuario seleccionado en función de la sentencia SELECT indicada.
+ * @param medico El código de usuario seleccionado.
+ * @return El objeto Tamedico seleccionado, o null si no encuentra nada.
+ * @throws
+ */
+ public Tamedico seleccionar(int medico) throws ExcepcionTarisan
+ {
+ Tamedico tamedico = null;
+ StringBuffer sqlSelect = new StringBuffer();
+
+ try
+ {
+ sqlSelect.append("SELECT MEDICO");
+ sqlSelect.append(", NOMBRE");
+ sqlSelect.append(", APELLIDOS");
+ sqlSelect.append(", ESPECIALIDAD");
+ sqlSelect.append(", BLOQUEO_CLAVE");
+ sqlSelect.append(", FECHA_ULT_ACCESO");
+ sqlSelect.append(", FECHA_MODIF_CLAVE");
+ sqlSelect.append(", NUM_DETER");
+ sqlSelect.append(", DIRECCION_CAB");
+ sqlSelect.append(", CP_CAB");
+ sqlSelect.append(", POBLACION_CAB");
+ sqlSelect.append(", EMAIL_CAB");
+ sqlSelect.append(" FROM TAMEDICO");
+ sqlSelect.append(" WHERE MEDICO = ?");
+
+ Object aCondiciones[] = new Object[1];
+ aCondiciones[0] = Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+
+ while(rs.next())
+ {
+ tamedico = new Tamedico();
+ tamedico.setMedico(rs.getInt("MEDICO"));
+ tamedico.setNombre(rs.getString("NOMBRE"));
+ tamedico.setApellidos(rs.getString("APELLIDOS"));
+ tamedico.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ tamedico.setBloqueoClave(rs.getString("BLOQUEO_CLAVE"));
+ tamedico.setFechaUltimoAcceso(rs.getDate("FECHA_ULT_ACCESO"));
+ tamedico.setFechaModifClave(rs.getDate("FECHA_MODIF_CLAVE"));
+ tamedico.setDireccionCab(rs.getString("DIRECCION_CAB"));
+ tamedico.setCpCab(rs.getInt("CP_CAB"));
+ tamedico.setPoblacionCab(rs.getString("POBLACION_CAB"));
+ tamedico.setNum_deter(rs.getInt("NUM_DETER"));
+ tamedico.setEmailCab(rs.getString("EMAIL_CAB"));
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el usuario " + medico + " de la tabla TAMEDICO (" + sqlSelect + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return tamedico;
+ }
+
+ public boolean actualizar_noticia(int noticia, int medico)
+ {
+ boolean resultado = false;
+ StringBuffer strSql = new StringBuffer();
+ Connection conexion = null;
+
+ strSql.append("update tamedico");
+ strSql.append(" set param2 = "+ noticia);
+ strSql.append(" where medico = "+medico);
+
+ try
+ {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ resultado = ParametrosConfiguracion.dataStore.actualizar(strSql.toString(), conexion);
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Actualizado el registro de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la actualizacion de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la actualizacion de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ }
+
+ return resultado;
+ }
+
+ public int obtener_intNoticia(int medico)
+ {
+ int resultado = 0;
+ StringBuffer strSql = new StringBuffer();
+ Connection conexion = null;
+ Tamedico tamedico = null;
+ Object aCondiciones[] = new Object[1];
+
+ strSql.append("Select PARAM2");
+ strSql.append(" from tamedico");
+ strSql.append(" where medico = ?");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+
+ try {
+ conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet resul = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+ if(resul.next())
+ {
+ tamedico = new Tamedico();
+ tamedico.setParam2(resul.getInt("PARAM2"));
+ }
+ resultado = tamedico.getParam2();
+ resul.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ } catch (ExcepcionTarisan e) {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al obtener la siguiente noticia. ExcecionTarisan");
+ } catch (SQLException e) {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al obtener la siguiente noticia. SQLExcepcion");
+ }
+ return resultado;
+ }
+
+ public String obtenerPosicionLogotipo(int medico) throws ExcepcionTarisan
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ String logo = "";
+
+ try
+ {
+ strSql.append("SELECT logo_cab");
+ strSql.append(" FROM tamedico");
+ strSql.append(" WHERE medico=?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ logo = rs.getString("LOGO_CAB");
+ /*else
+ {
+ //lanzamos error al no encontrar el registro del medico indicado
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la obtención del campo ESPECIALIDAD de la tabla TAMEDICO: (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan("Error en la obtención de los datos del médico.");
+ }*/
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el valor " + logo + " del campo LOGO_CAB de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return logo;
+ }
+
+ /**
+ * Obtiene el valor del campo NUM_DETER del médico indicado de la tabla TAMEDICO.
+ * @param medico Código del médico conectado.
+ * @return El valor del campo NUM_DETER del médico en cuestión.
+ * @throws
+ */
+ public int obtenerNumeroDeterminaciones(int medico) throws ExcepcionTarisan
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int num_deter = 0;
+
+ try
+ {
+ strSql.append("SELECT num_deter");
+ strSql.append(" FROM tamedico");
+ strSql.append(" WHERE medico=?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ num_deter = rs.getInt("NUM_DETER");
+ else
+ {
+ //lanzamos error al no encontrar el registro del medico indicado
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la obtención del campo NUM_DETER de la tabla TAMEDICO: (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan("Error en la obtención de los datos del médico.");
+ }
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el valor " + num_deter + " del campo NUM_DETER de la tabla TAMEDICO (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de TAMEDICO: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return num_deter;
+ }
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTamensaje.java b/Fuentes/com/tarisan/control/PersistenciaTamensaje.java
new file mode 100644
index 0000000..511b536
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTamensaje.java
@@ -0,0 +1,170 @@
+/**
+ * @(#) PersistenciaTamensaje.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.Tamensaje;
+import com.tarisan.log.*;
+import com.tarisan.util.Utilidades;
+import com.tarisan.excepcion.ExcepcionTarisan;
+
+import java.sql.*;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad TAMENSAJE.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTamensaje
+{
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion.
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Selecciona los registros de la tabla TAMENSAJE en función de la sentencia SELECT indicada.
+ * @param sqlSelect La sentencia SELECT de selección.
+ * @param pagina Número de página a mostrar.
+ * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT.
+ * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Taespeci).
+ * @throws
+ */
+ public Tamensaje obtenerMensaje(int codigo) throws ExcepcionTarisan
+ {
+ Tamensaje tamensaje = null;
+ ResultSet rs = null;
+ StringBuffer strSql = new StringBuffer();
+
+ Object [] aCondiciones = new Object[1];
+
+ strSql.append("SELECT *");
+ strSql.append(" FROM TAMENSAJE");
+ strSql.append(" WHERE CODIGO = ?");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0] = Integer.valueOf(codigo);
+
+ strSql.append(" ORDER BY CODIGO");
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+
+ if(rs.next())
+ {
+ tamensaje = new Tamensaje();
+ tamensaje.setMensaje(rs.getString("MENSAJE"));
+ tamensaje.setCodigo(rs.getInt("CODIGO"));
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado un registro de la tabla TAMENSAJE (" + strSql.toString() + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return tamensaje;
+ }
+
+ public Vector obtenerMensajes(String codigos) throws ExcepcionTarisan
+ {
+ Vector vTamensajes = new Vector();
+ ResultSet rs = null;
+ StringBuffer strSql = new StringBuffer();
+
+ Object [] aCondiciones = new Object[1];
+
+ strSql.append("SELECT *");
+ strSql.append(" FROM TAMENSAJE");
+ strSql.append(" WHERE CODIGO in (?)");
+
+ aCondiciones = new Object[1];
+ aCondiciones[0] = codigos;
+
+ strSql.append(" ORDER BY CODIGO");
+
+ try
+ {
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+
+ if(rs.next())
+ {
+ Tamensaje tamensaje = new Tamensaje();
+ tamensaje.setMensaje(rs.getString("MENSAJE"));
+ tamensaje.setCodigo(rs.getInt("CODIGO"));
+ vTamensajes.add(tamensaje);
+ }
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado un registro de la tabla TAMENSAJE (" + strSql.toString() + ")");
+
+
+ }
+
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMENSAJE: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+ return vTamensajes;
+ }
+
+
+}
diff --git a/Fuentes/com/tarisan/control/PersistenciaTamovext.java b/Fuentes/com/tarisan/control/PersistenciaTamovext.java
new file mode 100644
index 0000000..95229a1
--- /dev/null
+++ b/Fuentes/com/tarisan/control/PersistenciaTamovext.java
@@ -0,0 +1,907 @@
+/**
+ * @(#) PersistenciaTamovext.java
+ */
+
+package com.tarisan.control;
+
+import com.tarisan.data.*;
+import com.tarisan.excepcion.*;
+import com.tarisan.log.*;
+import com.tarisan.util.Utilidades;
+
+import java.sql.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.sql.Date;
+import java.util.Calendar;
+import java.util.Vector;
+
+/**
+ * Controla los accesos a la persistencia para la entidad Tamovext.
+ * @author Dpto. Informática.
+ * @version 1.0, 24/09/2003
+ */
+public class PersistenciaTamovext
+{
+
+ /**
+ * El objeto Paginacion que controla el número de filas a mostrar por cada página.
+ */
+ private Paginacion objPaginacion = new Paginacion();
+
+ /**
+ * Obtiene el valor del objeto Paginacion para saber que página se está visualizando.
+ * @return El objeto Paginacion
+ */
+ public Paginacion getPaginacion()
+ {
+ return objPaginacion;
+ }
+
+ /**
+ * Obtiene el último valor del campo NUMSEQ del médico indicado perteneciente a la tabla TAMOVEXT.
+ * @param medico Código del médico conectado.
+ * @return El último valor del campo NUMSEQ del médico en cuestión.
+ * @throws
+ *
+ * OBSOLETO
+ * 25/10/2017
+ * csm_jjripaper
+ * Cambiamos en oracle el campo numseq al tipo autoincrement de oracle (trigger berfore insert llamando a una secuencia).
+ */
+ public int obtenerUltimoValorNumSeq2(int medico) throws ExcepcionTarisan
+ {
+ StringBuffer strSql = new StringBuffer();
+ Object aCondiciones[]=null;
+ int intUltimoValorNumseq = 1;
+
+ try
+ {
+
+ /*
+ strSql.append("SELECT MAX(numseq) as max_numseq");
+ strSql.append(" FROM tamovext");
+ strSql.append(" WHERE medico=?");*/
+ /*
+ * Cambiamos a una secuencia por que estamos viendo que hay veces que no incrementa bien el contador
+ * // select NUMSEQ_SEQ.nextval from dual;
+ */
+ /*strSql.append("select NUMSEQ_SEQ.nextval as MAXNUMSEQ");
+ strSql.append(" FROM dual");*/
+
+ String sql = "select NUMSEQ_SEQ.nextval as MAXNUMSEQ FROM dual";
+
+ aCondiciones = new Object[1];
+ aCondiciones[0]=Integer.valueOf(medico);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql/*, aCondiciones*/);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ intUltimoValorNumseq = rs.getInt("MAXNUMSEQ");
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionado el valor " + intUltimoValorNumseq + " del campo NUMSEQ de la tabla TAMOVEXT (" + strSql.toString() + ")");
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT: " + sqle + " (" + strSql.toString() + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(SQLException sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT: " + sqle + " (" + strSql.toString() + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+
+
+ return intUltimoValorNumseq;
+ }
+
+ /**
+ * Añade a la tabla TAMOVEXT un nuevo registro según la sentencia INSERT indicada.
+ * @param sqlSelect La sentencia INSERT.
+ * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia.
+ * @throws
+ */
+ public void insertarMovimiento(String sqlSelect, Object[] aValores) throws ExcepcionTarisan
+ {
+ try
+ {
+ ParametrosConfiguracion.dataStore.insertar(sqlSelect, aValores);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+ }
+
+ /**
+ * Añade a la tabla TAMOVEXT un nuevo registro según la sentencia INSERT indicada.
+ * @param sqlSelect La sentencia INSERT.
+ * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia.
+ * @param conexion La conexión por la que se ejecuta la sentencia. Utilizado para el uso transacciones.
+ * @throws
+ */
+ public void insertarMovimiento(String sqlSelect, Object[] aValores, Connection conexion) throws ExcepcionTarisan
+ {
+ try
+ {
+ ParametrosConfiguracion.dataStore.insertar(sqlSelect, aValores, conexion);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw (ExcepcionTarisan)sqle;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+ }
+ catch(Throwable sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + sqlSelect + ")");
+ throw new ExcepcionTarisan(sqle.getMessage());
+
+ }
+ }
+
+ /**
+ * Busca un movimiento en tamovex, devuelve cierto si lo encuentra
+ * @param aCondiciones
+ * @param conexion
+ * @return
+ */
+ public boolean buscarDuplicadoTamovext(Object[] aCondiciones, Connection conexion)
+ {
+ boolean resultado = false;
+ StringBuffer strSql = new StringBuffer();
+ strSql.append("Select * from TAMOVEXT");
+ strSql.append("where MEDICO = ?");
+ strSql.append("and ESPECIALIDAD = ?");
+ strSql.append("and ACTO = ?");
+ strSql.append("and COLECTIVO = ?");
+ strSql.append("and POLIZA = ?");
+ strSql.append("and ORDEN = ?");
+ strSql.append("and FECHA = ?");
+
+ try
+ {
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+ if(rs.next())
+ resultado = true;
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+
+ return resultado;
+ }
+
+ public boolean insertarTamovext(Object[] aValores, Connection conexion)
+ {
+ boolean resultado = false;
+ StringBuffer strSql = new StringBuffer();
+ strSql.append("INSERT INTO TAMOVEXT");
+ strSql.append(" (MEDICO, ESPECIALIDAD, ACTO, COLECTIVO, POLIZA, ORDEN, FECHA, PRECIO, PRESCRIPTOR, ENTIDAD, TARJETA_CHIPCARD, AUTORIZACION, ESPECIALIDAD_CHIPCARD, ACTO_CHIPCARD)");
+ strSql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+
+ try
+ {
+ ParametrosConfiguracion.dataStore.insertar(strSql.toString(), aValores, conexion);
+ resultado = true;
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+
+ return resultado;
+ }
+
+ public boolean insertarTamovextDesplazado(Object[] aValores, Connection conexion)
+ {
+ boolean resultado = false;
+
+ StringBuffer strSql = new StringBuffer();
+ strSql.append("INSERT INTO TAMOVEXT");
+ strSql.append(" (MEDICO, ESPECIALIDAD, ACTO, COLECTIVO, POLIZA, ORDEN, FECHA, PRECIO, PRESCRIPTOR, TARJETA_CHIPCARD, ESPECIALIDAD_CHIPCARD, ACTO_CHIPCARD, TALON_CHIPCARD, ENTIDAD, AUTORIZACION)");
+ strSql.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+
+ try
+ {
+ resultado = ParametrosConfiguracion.dataStore.insertar(strSql.toString(), aValores, conexion);
+ }
+ catch (ExcepcionTarisan sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVEXT: " + sqle + " (" + strSql + ")");
+ }
+
+ return resultado;
+ }
+
+ public boolean tieneRevisionHoy(int medico, String tarjeta, boolean chipcard)
+ {
+ boolean resul = false;
+
+ StringBuffer strSql = new StringBuffer();
+ java.sql.Date intUltimoValorNumseq = null;
+ java.sql.Date dtFecha = null;
+ Object[] aCondiciones;
+ try
+ {
+ strSql.append("SELECT fecha");
+ strSql.append(" FROM tamovext");
+ strSql.append(" WHERE medico="+medico);
+ strSql.append(" and tarjeta_chipcard='"+tarjeta+"'");
+ strSql.append(" and acto in (1,2)");
+
+
+
+ Calendar calFechaActual = Calendar.getInstance();
+ int mes = calFechaActual.get(Calendar.MONTH)+1;
+ String strhoy = calFechaActual.get(Calendar.DAY_OF_MONTH)+"/"+mes+"/"+calFechaActual.get(Calendar.YEAR);
+
+ strSql.append(" and fecha = to_date('"+strhoy+"', 'dd/mm/yyyy')");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Consulta: "+strSql.toString());
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString());
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ resul = true;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT (TIENE REVISION DESPLAZADO): " + sqle + " (" + strSql.toString() + ")");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ public boolean tieneRevisionHoyColPolOrd(int medico, long colectivo, double poliza, int beneficiario, boolean chipcard)
+ {
+ boolean resul = false;
+
+ StringBuffer strSql = new StringBuffer();
+ java.sql.Date intUltimoValorNumseq = null;
+ java.sql.Date dtFecha = null;
+ Object[] aCondiciones;
+ try
+ {
+ strSql.append("SELECT fecha");
+ strSql.append(" FROM tamovext");
+ strSql.append(" WHERE medico="+medico);
+ strSql.append(" and colectivo="+colectivo);
+ strSql.append(" and poliza="+poliza);
+ strSql.append(" and orden="+beneficiario);
+ strSql.append(" and acto in (1,2)");
+
+
+
+ Calendar calFechaActual = Calendar.getInstance();
+ int mes = calFechaActual.get(Calendar.MONTH)+1;
+ String strhoy = calFechaActual.get(Calendar.DAY_OF_MONTH)+"/"+mes+"/"+calFechaActual.get(Calendar.YEAR);
+
+ strSql.append(" and fecha = to_date('"+strhoy+"', 'dd/mm/yyyy')");
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ LogTarisan.logger.log(NivelLog.DEBUG, "Consulta: "+strSql.toString());
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString());
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ resul = true;
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT (TIENE REVISION DESPLAZADO): " + sqle + " (" + strSql.toString() + ")");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ /**
+ * Comprueba si un asegurado determinado ya ha tenido consulta de "chipcard" para un médico determinado.
+ *
+ * @param medico el médico para el que buscamos
+ * @param tarjeta la tarjeta chipcard que buscamos
+ * @return cierto si hay acto "consulta" en tamovext
+ */
+ public boolean tieneConsultaChipcard(int medico, String tarjeta)
+ {
+
+ boolean resul = false;
+
+ StringBuffer strSql = new StringBuffer();
+ Object[] aCondiciones;
+ try
+ {
+ strSql.append("Select count(*) COUNT from tamovext");
+ strSql.append(" where medico = ?");
+ strSql.append(" and tarjeta_chipcard=?");
+ strSql.append(" and acto_chipcard=1");
+
+ aCondiciones = new Object[2];
+ aCondiciones[0] = Integer.valueOf(medico);
+ aCondiciones[1] = new String(tarjeta);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ if(rs.next())
+ {
+ if(rs.getInt("COUNT")>0)
+ resul = true;
+ }
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+ LogTarisan.logger.log(NivelLog.DEBUG, "La tarjeta "+tarjeta+" tiene consulta en tamovext para el medico "+medico+": "+resul);
+
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT (PRIMERA VISITA DESPLAZADO): " + sqle + " (" + strSql.toString() + ")");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ public boolean esPrimeraVisitaDesplazado(int medico, String tarjeta, boolean chipcard)
+ {
+ boolean resul = false;
+ StringBuffer strSql = new StringBuffer();
+ java.sql.Date intUltimoValorNumseq = null;
+ java.sql.Date dtFecha = null;
+ Object[] aCondiciones;
+ try
+ {
+ strSql.append("SELECT fecha");
+ strSql.append(" FROM tamovext");
+ strSql.append(" WHERE medico=?");
+ strSql.append(" and tarjeta_chipcard=?");
+ strSql.append(" and acto in (1)");
+
+ aCondiciones = new Object[2];
+ aCondiciones[0]=Integer.valueOf(medico);
+ aCondiciones[1]=new String(tarjeta);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones);
+
+ //nos posicionamos en el registro
+ if (rs.next())
+ //obtenemos el campo PARAM1
+ dtFecha = rs.getDate("fecha");
+
+ rs.close();
+ ParametrosConfiguracion.dataStore.liberarConexion(conexion);
+
+ //YA TENEMOS LA FECHA DE LA ÚLTIMA VISITA (O NULL SI NO HA VENIDO NUNCA)
+ if (dtFecha!=null) //existe registro. Se comprueba si es la primera visita
+ {
+ Calendar calFechaPrimeraVisita = Calendar.getInstance();
+ calFechaPrimeraVisita.setTime(dtFecha);
+ Calendar calFechaActual = Calendar.getInstance();
+ if (ParametrosConfiguracion.periodoNatural.equalsIgnoreCase("si")) //se trata de un periodo natural
+ {
+ if (calFechaActual.get(Calendar.YEAR)>calFechaPrimeraVisita.get(Calendar.YEAR)) { //años diferentes
+ resul = true;
+ } else {
+ if (calFechaActual.get(Calendar.YEAR)==calFechaPrimeraVisita.get(Calendar.YEAR )) //mismo año
+ {
+ //le sumamos a la fecha obtenida el periodo de meses para conocer si es primera visita
+ if(chipcard)
+ calFechaPrimeraVisita.add(Calendar.MONTH, ParametrosConfiguracion.periodoPrimeraVisitaChipcard);
+ else
+ calFechaPrimeraVisita.add(Calendar.MONTH, ParametrosConfiguracion.periodoPrimeraVisita);
+
+ if ( calFechaPrimeraVisita.getTime().compareTo( calFechaActual.getTime() ) < 0 ) { //la fecha de la primera visita mas el periodo es inferior a la fecha actual
+ resul = true;
+ }
+ }
+ }
+ }
+ else //se trata de un periodo no natural
+ {
+ //le sumamos a la fecha obtenida el periodo de meses para conocer si es primera visita
+ calFechaPrimeraVisita.add(Calendar.MONTH, ParametrosConfiguracion.periodoPrimeraVisita);
+
+ if ( calFechaPrimeraVisita.getTime().compareTo( calFechaActual.getTime() ) < 0 ) //la fecha de la primera visita mas el periodo es inferior a la fecha actual
+ resul = true;
+ }
+ } else { //No existe registro. Es primera visita
+ resul = true;
+ }
+
+ LogTarisan.logger.log(NivelLog.DEBUG, "Es primera visita DESPLAZADO: " + resul +" (" + strSql.toString() + ")");
+
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT (PRIMERA VISITA DESPLAZADO): " + sqle + " (" + strSql.toString() + ")");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ public Vector ObtenerMovimientosMismaPolizaYMedico(int medico, int espe, int acto, int entidad, long col, long pol, int ord)
+ {
+ Vector resul = new Vector();;
+ StringBuffer sqlSelect = new StringBuffer();
+ Object[] aCondiciones = new Object[7];
+ try
+ {
+ sqlSelect.append("Select * from tamovext_espia ");
+ sqlSelect.append("where medico = ? ");
+ sqlSelect.append("and especialidad = ? ");
+ sqlSelect.append("and acto = ? ");
+ sqlSelect.append("and entidad = ? ");
+ sqlSelect.append("and colectivo = ? ");
+ sqlSelect.append("and poliza = ? ");
+ sqlSelect.append("and orden = ? ");
+ sqlSelect.append("order by fecha desc ");
+
+ aCondiciones[0] = Integer.valueOf(medico);
+ aCondiciones[1] = Integer.valueOf(espe);
+ aCondiciones[2] = Integer.valueOf(acto);
+ aCondiciones[3] = Integer.valueOf(entidad);
+ aCondiciones[4] = Long.valueOf(col);
+ aCondiciones[5] = Long.valueOf(pol);
+ aCondiciones[6] = Integer.valueOf(ord);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while (rs.next())
+ {
+ Tamovext ta = new Tamovext();
+ ta.setMedico(rs.getInt("MEDICO"));
+ ta.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ ta.setActo(rs.getInt("ACTO"));
+ ta.setNumseq(rs.getInt("NUMSEQ"));
+ ta.setEntidad(rs.getInt("ENTIDAD"));
+ ta.setColec(rs.getInt("COLECTIVO"));
+ ta.setPoliza(rs.getDouble("POLIZA"));
+ ta.setOrden(rs.getInt("ORDEN"));
+ ta.setFecha(rs.getDate("FECHA"));
+ ta.setPrecio(rs.getDouble("PRECIO"));
+ ta.setPrescriptor(rs.getInt("PRESCRIPTOR"));
+ ta.setAutorizacion(rs.getLong("AUTORIZACION"));
+ /*
+ * TODO faltan los de chipcard
+ */
+ resul.add(ta);
+ }
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT obteniendo movimientos previos de la misma poliza y medico");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+ public Vector ObtenerMovimientosAutorizacion(long autorizacion)
+ {
+ Vector resul = new Vector();;
+ StringBuffer sqlSelect = new StringBuffer();
+ Object[] aCondiciones = new Object[1];
+ try
+ {
+ sqlSelect.append("Select * from tamovext_espia ");
+ sqlSelect.append("where autorizacion = ? ");
+ sqlSelect.append("order by fecha desc ");
+
+ aCondiciones[0] = Long.valueOf(autorizacion);
+
+ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
+ ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
+ while (rs.next())
+ {
+ Tamovext ta = new Tamovext();
+ ta.setMedico(rs.getInt("MEDICO"));
+ ta.setEspecialidad(rs.getInt("ESPECIALIDAD"));
+ ta.setActo(rs.getInt("ACTO"));
+ ta.setNumseq(rs.getInt("NUMSEQ"));
+ ta.setEntidad(rs.getInt("ENTIDAD"));
+ ta.setColec(rs.getInt("COLECTIVO"));
+ ta.setPoliza(rs.getDouble("POLIZA"));
+ ta.setOrden(rs.getInt("ORDEN"));
+ ta.setFecha(rs.getDate("FECHA"));
+ ta.setPrecio(rs.getDouble("PRECIO"));
+ ta.setPrescriptor(rs.getInt("PRESCRIPTOR"));
+ ta.setAutorizacion(rs.getLong("AUTORIZACION"));
+ /*
+ * TODO faltan los de chipcard
+ */
+ resul.add(ta);
+ }
+ }
+ catch(Exception sqle)
+ {
+ LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVEXT obteniendo movimientos previos de la misma poliza y medico");
+ } catch (ExcepcionTarisan e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return resul;
+ }
+
+
+
+ public Vector AnaliticasCapturadasTotal(int medico)
+ {
+ return this.AnaliticasCapturadas(medico, null, null);
+ }
+
+ public Vector AnaliticasCapturadasDesde(int medico, java.sql.Date fecini)
+ {
+ return this.AnaliticasCapturadas(medico, fecini, null);
+ }
+
+ public Vector AnaliticasCapturadasHasta(int medico, java.sql.Date fecfin)
+ {
+ return this.AnaliticasCapturadas(medico, null, fecfin);
+ }
+
+ public Vector