forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							238 lines
						
					
					
						
							6.8 KiB
						
					
					
				
			
		
		
	
	
							238 lines
						
					
					
						
							6.8 KiB
						
					
					
				/*
 | 
						|
 * PrestadoresDataProvider.java
 | 
						|
 *
 | 
						|
 * Created on February 2, 2007, 9:53 AM
 | 
						|
 *
 | 
						|
 * To change this template, choose Tools | Template Manager
 | 
						|
 * and open the template in the editor.
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.medicina.prestadores;
 | 
						|
 | 
						|
import com.evolute.utils.Singleton;
 | 
						|
import com.evolute.utils.arrays.Object2DArray;
 | 
						|
import com.evolute.utils.arrays.Virtual2DArray;
 | 
						|
import com.evolute.utils.data.IDObject;
 | 
						|
import com.evolute.utils.data.MappableObject;
 | 
						|
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;
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author fpalma
 | 
						|
 */
 | 
						|
public class PrestadoresDataProvider
 | 
						|
		implements SearchExecuter
 | 
						|
{
 | 
						|
	private static final Object LOCK = new Object();
 | 
						|
	private static PrestadoresDataProvider instance = null;
 | 
						|
	
 | 
						|
	private static final String SEARCH_TITLE = "Procurar prestadores";
 | 
						|
	private static final String SEARCH_COLUMNS[] = 
 | 
						|
			new String[]{ "Designa\u00e7\u00e3o", "Servi\u00e7os" };
 | 
						|
	
 | 
						|
	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()
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		synchronized( LOCK )
 | 
						|
		{
 | 
						|
			if( instance == null )
 | 
						|
			{
 | 
						|
				instance = new PrestadoresDataProvider();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return instance;
 | 
						|
	}
 | 
						|
 | 
						|
	public boolean hasDetails()
 | 
						|
	{
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
 | 
						|
	public String getSearchTitle()
 | 
						|
	{
 | 
						|
		return SEARCH_TITLE;
 | 
						|
	}
 | 
						|
 | 
						|
	public String[] getColumnNames()
 | 
						|
	{
 | 
						|
		return SEARCH_COLUMNS;
 | 
						|
	}
 | 
						|
 | 
						|
	public void showDetails(SearchDialog dialog, Object o) throws Exception
 | 
						|
	{
 | 
						|
	}
 | 
						|
 | 
						|
	public Virtual2DArray search(String pattern) throws Exception
 | 
						|
	{
 | 
						|
		pattern = pattern.trim().toLowerCase();
 | 
						|
		pattern = pattern.replace( ' ', '%' );
 | 
						|
		Select select = 
 | 
						|
				new Select( new String[]{ "prestadores" },
 | 
						|
							new String[]{ "id", "nome", "faz_consultas", "faz_ecds", "nome_plain" },
 | 
						|
							new Field( "nome_plain" ).isLike( "%" + pattern + "%" ),
 | 
						|
							new String[]{ "nome_plain" },
 | 
						|
							null );
 | 
						|
		Virtual2DArray array = EXECUTER.executeQuery( select );
 | 
						|
		Object data[][] = new Object[ array.columnLength() ][ 3 ];
 | 
						|
		for( int n = 0; n < data.length; n++ )
 | 
						|
		{
 | 
						|
			data[ n ][ 0 ] = array.get( n, 0 );
 | 
						|
			data[ n ][ 1 ] = array.get( n, 1 );
 | 
						|
			String str = "";
 | 
						|
			if( "y".equals( array.get( n, 2 ) ) )
 | 
						|
			{
 | 
						|
				str += "consultas";
 | 
						|
			}
 | 
						|
			if( "y".equals( array.get( n, 3 ) ) )
 | 
						|
			{
 | 
						|
				str += ( str.length() > 0 ? ", " : "" ) + "ecds";
 | 
						|
			}
 | 
						|
			data[ n ][ 2 ] = str;
 | 
						|
		}
 | 
						|
		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();
 | 
						|
	}
 | 
						|
	
 | 
						|
	public IDObject[] getPrestadoresActivos()
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		Select select = 
 | 
						|
				new Select( new String[]{ "prestadores" },
 | 
						|
							new String[]{ "id", "nome", "nome_plain" },
 | 
						|
							new Field( "activo" ).isEqual( "y" ),
 | 
						|
							new String[]{ "nome_plain" }, null );
 | 
						|
		Virtual2DArray array = EXECUTER.executeQuery( select );
 | 
						|
		IDObject prestadores[] = new IDObject[ array.columnLength() ];
 | 
						|
		for( int n = 0; n < prestadores.length; n++ )
 | 
						|
		{
 | 
						|
			Integer id = ( Integer ) array.get( n, 0 );
 | 
						|
			String nome = ( String ) array.get( n, 1 );
 | 
						|
			prestadores[ n ] = new MappableObject( id, nome );
 | 
						|
		}
 | 
						|
		return prestadores;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public IDObject[] getPrestadoresConsultasActivos()
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		Select select = 
 | 
						|
				new Select( new String[]{ "prestadores" },
 | 
						|
							new String[]{ "id", "nome", "nome_plain" },
 | 
						|
							new Field( "activo" ).isEqual( "y" ).and( 
 | 
						|
								new Field( "faz_consultas" ).isEqual( "y" ) ),
 | 
						|
							new String[]{ "nome_plain" }, null );
 | 
						|
		Virtual2DArray array = EXECUTER.executeQuery( select );
 | 
						|
		IDObject prestadores[] = new IDObject[ array.columnLength() ];
 | 
						|
		for( int n = 0; n < prestadores.length; n++ )
 | 
						|
		{
 | 
						|
			Integer id = ( Integer ) array.get( n, 0 );
 | 
						|
			String nome = ( String ) array.get( n, 1 );
 | 
						|
			prestadores[ n ] = new MappableObject( id, nome );
 | 
						|
		}
 | 
						|
		return prestadores;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public IDObject[] getPrestadoresECDsActivos()
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		Select select = 
 | 
						|
				new Select( new String[]{ "prestadores" },
 | 
						|
							new String[]{ "id", "nome", "nome_plain" },
 | 
						|
							new Field( "activo" ).isEqual( "y" ).and( 
 | 
						|
								new Field( "faz_ecds" ).isEqual( "y" ) ),
 | 
						|
							new String[]{ "nome_plain" }, null );
 | 
						|
		Virtual2DArray array = EXECUTER.executeQuery( select );
 | 
						|
		IDObject prestadores[] = new IDObject[ array.columnLength() ];
 | 
						|
		for( int n = 0; n < prestadores.length; n++ )
 | 
						|
		{
 | 
						|
			Integer id = ( Integer ) array.get( n, 0 );
 | 
						|
			String nome = ( String ) array.get( n, 1 );
 | 
						|
			prestadores[ n ] = new MappableObject( id, nome );
 | 
						|
		}
 | 
						|
		return prestadores;
 | 
						|
	}
 | 
						|
}
 |