diff --git a/trunk/siprp/FichaDataProvider.java b/trunk/siprp/FichaDataProvider.java index ca0c4ac9..9acd6c31 100644 --- a/trunk/siprp/FichaDataProvider.java +++ b/trunk/siprp/FichaDataProvider.java @@ -446,4 +446,21 @@ public class FichaDataProvider extends MetaProvider implements SearchExecuter { } return ids; } + + public Integer getMarcacaoIDByTrabalhador( Integer trabalhadorID ) + throws Exception + { + Select select = + new Select( new String[]{ "marcacoes_trabalhador" }, + new String[]{ "id" }, + new Field( "trabalhador_id" ).isEqual( trabalhadorID ).and( + new Field( "data" ).isGreater( new Date() ) ).and( + new Field( "tipo" ).isEqual( new Integer( siprp.data.MarcacaoTrabalhador.TIPO_EXAMES ) ) ) ); + Virtual2DArray array = executer.executeQuery( select ); + if( array.columnLength() == 0 ) + { + return null; + } + return new Integer( ( ( Number ) array.get( 0, 0 ) ).intValue() ); + } } diff --git a/trunk/siprp/ficha/ExamePanel.java b/trunk/siprp/ficha/ExamePanel.java index 4ad9d3c2..50bf6df5 100644 --- a/trunk/siprp/ficha/ExamePanel.java +++ b/trunk/siprp/ficha/ExamePanel.java @@ -22,6 +22,7 @@ import com.evolute.utils.ui.button.*; import com.evolute.utils.ui.panel.*; import siprp.*; +import siprp.data.*; /** * * @author fpalma @@ -45,6 +46,9 @@ public class ExamePanel extends JPanel private FichaDataProvider provider; private ComponentsHashtable components; + private Integer trabalhadorID; + private MarcacaoTrabalhador marcacao; + /** Creates a new instance of ExamePanel */ public ExamePanel() throws Exception @@ -269,6 +273,27 @@ public class ExamePanel extends JPanel public void fill( Object value ) { clear(); + trabalhadorID = ( Integer ) value; + if( trabalhadorID == null ) + { + return; + } + try + { + Integer marcacaoID = provider.getMarcacaoIDByTrabalhador( trabalhadorID ); + if( marcacaoID == null ) + { + return; + } + marcacao = ( MarcacaoTrabalhador ) MarcacaoTrabalhador.load( MarcacaoTrabalhador.class, marcacaoID ); + proximoExamePanel.setDate( (Date) marcacao.get( Marcacao.DATA ) ); + } + catch( Exception ex ) + { + ex.printStackTrace(); + return; + } + // Integer trabID = (Integer) value; // if( trabID == null ) // { @@ -376,7 +401,6 @@ public class ExamePanel extends JPanel { exame.setProperty( provider.EXAMES.getFieldByName( provider.OUTRO_TIPO ).FULL_NAME, "" ); } - } catch( Exception ex ) { @@ -396,6 +420,7 @@ public class ExamePanel extends JPanel ComponentController.clear( names, components ); tipoGroup.setIntSelected( 0 ); dataExamePanel.setDate( new Date() ); + marcacao = null; } public void setEnabled( boolean enable ) diff --git a/trunk/siprp/ficha/FichaWindow.java b/trunk/siprp/ficha/FichaWindow.java index 1d52b94f..87ffa6f4 100644 --- a/trunk/siprp/ficha/FichaWindow.java +++ b/trunk/siprp/ficha/FichaWindow.java @@ -225,6 +225,15 @@ public class FichaWindow extends TabbedWindow DBKey key = trabalhador.getPrimaryKeyValue(); DBField fields[] = fdpProvider.TRABALHADORES.getPrimaryKey(); trabalhadorID = new Integer( ((Number)key.getFieldValue( fields[ 0 ] )).intValue() ); + try + { + siprp.data.MarcacaoTrabalhador.saveMarcacaoExameForTrabalhadorID( trabalhadorID, (Date)exame.getProperty( fdpProvider.PROXIMO_EXAME ) ); + } + catch( Exception iex ) + { + iex.printStackTrace(); + } +// createPDF( exame ); print(); }