From 126a1fc950c30c11847b8dcd4d3965434becbbe6 Mon Sep 17 00:00:00 2001 From: Frederico Palma Date: Wed, 21 Feb 2007 10:38:30 +0000 Subject: [PATCH] no message git-svn-id: https://svn.coded.pt/svn/SIPRP@312 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../prestadores/PrestadoresDataProvider.java | 69 +++++++++++++++++++ .../prestadores/PrestadoresWindow.java | 46 +++++++++++-- 2 files changed, 111 insertions(+), 4 deletions(-) diff --git a/trunk/siprp/medicina/prestadores/PrestadoresDataProvider.java b/trunk/siprp/medicina/prestadores/PrestadoresDataProvider.java index 7c74e755..b2081ef0 100644 --- a/trunk/siprp/medicina/prestadores/PrestadoresDataProvider.java +++ b/trunk/siprp/medicina/prestadores/PrestadoresDataProvider.java @@ -14,10 +14,19 @@ import com.evolute.utils.arrays.Object2DArray; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; +import com.evolute.utils.jdo.JDOProvider; +import com.evolute.utils.sql.Assignment; +import com.evolute.utils.sql.Begin; +import com.evolute.utils.sql.Commit; +import com.evolute.utils.sql.Delete; import com.evolute.utils.sql.Field; +import com.evolute.utils.sql.Insert; +import com.evolute.utils.sql.Rollback; import com.evolute.utils.sql.Select; import com.evolute.utils.ui.search.SearchDialog; import com.evolute.utils.ui.search.SearchExecuter; +import siprp.data.ContactoData; +import siprp.medicina.prestadores.data.PrestadoresData; /** * @@ -35,12 +44,15 @@ public class PrestadoresDataProvider private Executer EXECUTER; + private JDOProvider JDO; + /** Creates a new instance of PrestadoresDataProvider */ public PrestadoresDataProvider() throws Exception { DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); EXECUTER = dbm.getSharedExecuter( this ); + JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ); } public static PrestadoresDataProvider getProvider() @@ -104,4 +116,61 @@ public class PrestadoresDataProvider } return new Object2DArray( data ); } + + public void setGruposProtocoloForPrestador( Integer prestadorID, Integer gruposProtocoloID[] ) + throws Exception + { + EXECUTER.executeQuery( Begin.BEGIN ); + try + { + Delete delete = new Delete( "prestadores_grupos_protocolo", + new Field( "prestador_id" ).isEqual( prestadorID ) ); + EXECUTER.executeQuery( delete ); + Insert insert = + new Insert( "prestadores_grupos_protocolo", + new Assignment[]{ + new Assignment( new Field( "prestador_id" ), prestadorID ), + new Assignment( new Field( "grupo_protocolo_id" ), gruposProtocoloID ) } ); + EXECUTER.executeQuery( insert ); + } + catch( Exception ex ) + { + EXECUTER.executeQuery( Rollback.ROLLBACK ); + } + EXECUTER.executeQuery( Commit.COMMIT ); + } + + public Integer []getGruposProtocoloIDByPrestadorID( Integer prestadorID ) + throws Exception + { + Select select = + new Select( new String[]{ "prestadores_grupos_protocolo" }, + new String[]{ "grupo_protocolo_id" }, + new Field( "prestador_id" ).isEqual( prestadorID ) ); + Virtual2DArray array = EXECUTER.executeQuery( select ); + Integer ids[] = new Integer[ array.columnLength() ]; + for( int n = 0; n < ids.length; n++ ) + { + ids[ n ] = ( Integer ) array.get( n, 0 ); + } + return ids; + } + + public PrestadoresData getPrestadorByID( Integer id ) + throws Exception + { + return ( PrestadoresData ) JDO.load( PrestadoresData.class, id ); + } + + public void savePrestador( PrestadoresData prestador ) + throws Exception + { + if( prestador.get( PrestadoresData.CONTACTO_ID ) instanceof ContactoData ) + { + ContactoData contacto = ( ContactoData )prestador.get( PrestadoresData.CONTACTO_ID ); + contacto.save(); + prestador.set( PrestadoresData.CONTACTO_ID, contacto.get( ContactoData.ID ) ); + } + prestador.save(); + } } diff --git a/trunk/siprp/medicina/prestadores/PrestadoresWindow.java b/trunk/siprp/medicina/prestadores/PrestadoresWindow.java index 1c3f283d..5a2de314 100644 --- a/trunk/siprp/medicina/prestadores/PrestadoresWindow.java +++ b/trunk/siprp/medicina/prestadores/PrestadoresWindow.java @@ -24,6 +24,7 @@ import info.clearthought.layout.TableLayout; import info.clearthought.layout.TableLayoutConstraints; import java.awt.Dimension; import java.util.Arrays; +import java.util.Hashtable; import java.util.List; import java.util.Vector; import javax.swing.BorderFactory; @@ -55,12 +56,17 @@ public class PrestadoresWindow extends EditorWindow protected JTextField localidadeCodigoPostalText; protected JTextField localidadeText; protected ContactoPanel contactoPanel; + protected JTextField contribuinteText; + protected PrestadoresDataProvider provider; protected ClientesDataProvider clientesProvider; protected ComponentsHashtable components; + protected PrestadoresData prestador; + protected Integer gruposProtocolo[]; + /** Creates a new instance of PrestadoresWindow */ public PrestadoresWindow() throws Exception @@ -113,13 +119,16 @@ public class PrestadoresWindow extends EditorWindow localidadeCodigoPostalText.setPreferredSize( new Dimension( 150, 50 ) ); JLabel localidadeLabel = new JLabel( "Localidade" ); localidadeText = new JTextField(); + JLabel contribuinteLabel = new JLabel( "Contribuinte" ); + contribuinteText = new JTextField(); + contribuinteText.setPreferredSize( new Dimension( 100, 50 ) ); double cols[] = new double[]{ TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.FILL }; double rows[] = new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL, TableLayout.PREFERRED, TableLayout.PREFERRED, - TableLayout.MINIMUM, TableLayout.MINIMUM }; + TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM }; TableLayout tableLayout = new TableLayout( cols,rows ); getContentPane().setLayout( tableLayout ); @@ -138,7 +147,8 @@ public class PrestadoresWindow extends EditorWindow getContentPane().add( localidadeCodigoPostalText, new TableLayoutConstraints( 2, 6, 3, 6 ) ); getContentPane().add( localidadeLabel, new TableLayoutConstraints( 0, 7 ) ); getContentPane().add( localidadeText, new TableLayoutConstraints( 1, 7, 3, 7 ) ); - + getContentPane().add( contribuinteLabel, new TableLayoutConstraints( 0, 8 ) ); + getContentPane().add( contribuinteText, new TableLayoutConstraints( 1, 8 ) ); pack(); } @@ -146,11 +156,12 @@ public class PrestadoresWindow extends EditorWindow { components = new ComponentsHashtable(); components.putComponent( PrestadoresData.NOME, nomeText ); - components.putComponent( PrestadoresData.NOME, new JTextComponentPlainFillerSaver( nomeText ) ); + components.putComponent( PrestadoresData.NOME_PLAIN, new JTextComponentPlainFillerSaver( nomeText ) ); components.putComponent( PrestadoresData.MORADA, moradaText ); components.putComponent( PrestadoresData.CODIGO_POSTAL, codigoPostalText ); components.putComponent( PrestadoresData.LOCALIDADE_CP, localidadeCodigoPostalText ); components.putComponent( PrestadoresData.LOCALIDADE, localidadeText ); + components.putComponent( PrestadoresData.CONTRIBUINTE, contribuinteText ); components.putComponent( PrestadoresData.ACTIVO, activoCheck ); components.putComponent( PrestadoresData.FAZ_CONSULTAS, consultasCheck ); components.putComponent( PrestadoresData.FAZ_ECDS, ecdsCheck ); @@ -172,6 +183,9 @@ public class PrestadoresWindow extends EditorWindow clear( 0 ); try { + prestador = provider.getPrestadorByID( id ); + gruposProtocolo = provider.getGruposProtocoloIDByPrestadorID( id ); + reload( 0 ); } catch( Exception ex ) { @@ -191,9 +205,11 @@ public class PrestadoresWindow extends EditorWindow public void reload( int index ) { - clear( 0 ); try { + String names[] = (String[])components.keySet().toArray( new String[0] ); + ComponentController.fill( names, prestador.getHashData(), components ); + ecdsPanel.setSelected( gruposProtocolo ); } catch( Exception ex ) { @@ -207,6 +223,8 @@ public class PrestadoresWindow extends EditorWindow String names[] = (String[])components.keySet().toArray( new String[0] ); ComponentController.clear( names, components ); ecdsPanel.clear(); + prestador = null; + gruposProtocolo = null; } public boolean newItem( int index ) @@ -216,6 +234,26 @@ public class PrestadoresWindow extends EditorWindow public boolean save( int index ) { + if( prestador == null ) + { + prestador = new PrestadoresData(); + } + String names[] = (String[])components.keySet().toArray( new String[0] ); + Hashtable data = prestador.getHashData(); + ComponentController.save( names, data, components ); + prestador.setHashData( data ); + gruposProtocolo = ecdsPanel.getSelected(); + try + { + provider.savePrestador( prestador ); + provider.setGruposProtocoloForPrestador( ( Integer ) prestador.get( PrestadoresData.ID ), + gruposProtocolo ); + } + catch( Exception ex ) + { + DialogException.showExceptionMessage( ex, "Erro a guardar dados", true ); + return false; + } return true; } }