diff --git a/trunk/siprp/FichaDataProvider.java b/trunk/siprp/FichaDataProvider.java index 8e4251bb..ca0c4ac9 100644 --- a/trunk/siprp/FichaDataProvider.java +++ b/trunk/siprp/FichaDataProvider.java @@ -262,21 +262,39 @@ public class FichaDataProvider extends MetaProvider implements SearchExecuter { } public Virtual2DArray searchEmpresas( String pattern ) throws Exception { - Select select = new Select( "SELECT e.id, e.designacao_social FROM empresas e ORDER BY lower( e.designacao_social );" ); + Select select = new Select( new String[]{ T_EMPRESAS }, + new String[]{ ID, DESIGNACAO_SOCIAL }, + new Field( DESIGNACAO_SOCIAL ).isLike( "%" + pattern + "%" ).and( + new Field( INACTIVO ).isDifferent( "y" ) ), + new String[]{ "lower(" + DESIGNACAO_SOCIAL + ")" }, null ); +// Select select = new Select( "SELECT e.id, e.designacao_social FROM empresas e ORDER BY lower( e.designacao_social );" ); return executer.executeQuery( select ); } public Virtual2DArray searchEstabelecimentos( String pattern ) throws Exception { - Select select = new Select( "SELECT e.id, e.nome FROM estabelecimentos e WHERE empresa_id = " + SEARCH_EMPRESAS_ID - + " ORDER BY lower( e.nome )"); +// Select select = new Select( "SELECT e.id, e.nome FROM estabelecimentos e WHERE empresa_id = " + SEARCH_EMPRESAS_ID +// + " ORDER BY lower( e.nome )"); + Select select = new Select( new String[]{ T_ESTABELECIMENTOS }, + new String[]{ ID, NOME }, + new Field( NOME ).isLike( "%" + pattern + "%" ).and( + new Field( EMPRESA_ID ).isEqual( new Integer( SEARCH_EMPRESAS_ID ) ) ).and( + new Field( INACTIVO ).isDifferent( "y" ) ), + new String[]{ "lower(" + NOME + ")" }, null ); return executer.executeQuery( select ); } public Virtual2DArray searchTrabalhadores( String pattern ) throws Exception { - Select select = - new Select( "SELECT t.id, t.nome FROM trabalhadores t, estabelecimentos es " - + " WHERE t.estabelecimento_id = es.id " - + " AND es.empresa_id = " + SEARCH_EMPRESAS_ID + " ORDER BY lower(t.nome);" ); +// Select select = +// new Select( "SELECT t.id, t.nome FROM trabalhadores t, estabelecimentos es " +// + " WHERE t.estabelecimento_id = es.id " +// + " AND es.empresa_id = " + SEARCH_EMPRESAS_ID + " ORDER BY lower(t.nome);" ); + Select select = new Select( new String[]{ T_TRABALHADORES, T_ESTABELECIMENTOS }, + new String[]{ T_TRABALHADORES + "." + ID, T_TRABALHADORES + "." + NOME }, + new Field( T_TRABALHADORES + "." + NOME ).isLike( "%" + pattern + "%" ).and( + new Field( ESTABELECIMENTO_ID ).isEqual( new Field( T_ESTABELECIMENTOS + "." + ID ) ) ).and( + new Field( EMPRESA_ID ).isEqual( new Integer( SEARCH_EMPRESAS_ID ) ) ).and( + new Field( T_TRABALHADORES + "." + INACTIVO ).isDifferent( "y" ) ), + new String[]{ "lower(" + T_TRABALHADORES + "." + NOME + ")" }, null ); return executer.executeQuery( select ); }