forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@728 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
ffff4064f2
commit
e52d6e5f8b
@ -0,0 +1,143 @@
|
|||||||
|
/*
|
||||||
|
* RemarcacoesDataProvider.java
|
||||||
|
*
|
||||||
|
* Created on February 14, 2007, 10:56 AM
|
||||||
|
*
|
||||||
|
* To change this template, choose Tools | Template Manager
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package siprp.lembretes.marcacoes;
|
||||||
|
|
||||||
|
import com.evolute.utils.Singleton;
|
||||||
|
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.sql.Expression;
|
||||||
|
import com.evolute.utils.sql.Field;
|
||||||
|
import com.evolute.utils.sql.Select;
|
||||||
|
import com.evolute.utils.sql.Select2;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
import siprp.data.Marcacao;
|
||||||
|
import siprp.database.cayenne.providers.MedicinaDAO;
|
||||||
|
import siprp.lembretes.LembretesConstants;
|
||||||
|
import siprp.lembretes.LembretesDataProvider;
|
||||||
|
import siprp.medicina.MedicinaConstants;
|
||||||
|
import siprp.medicina.processo.database.MedicinaProcessoDAO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author lflores
|
||||||
|
*/
|
||||||
|
public class MarcacoesDataProvider
|
||||||
|
{
|
||||||
|
private static final DateFormat D_F = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
|
||||||
|
|
||||||
|
private static final Object LOCK = new Object();
|
||||||
|
private static MarcacoesDataProvider instance = null;
|
||||||
|
|
||||||
|
private Executer EXECUTER;
|
||||||
|
private LembretesDataProvider lembretesProvider;
|
||||||
|
|
||||||
|
/** Creates a new instance of RemarcacoesDataProvider */
|
||||||
|
public MarcacoesDataProvider()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
|
||||||
|
EXECUTER = dbm.getSharedExecuter( this );
|
||||||
|
lembretesProvider = LembretesDataProvider.getProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MarcacoesDataProvider getProvider()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
synchronized( LOCK )
|
||||||
|
{
|
||||||
|
if( instance == null )
|
||||||
|
{
|
||||||
|
instance = new MarcacoesDataProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expression whereExpressionLembretesRemarcacao( Integer empresaID, Integer estabelecimentoID ) throws Exception
|
||||||
|
{
|
||||||
|
Expression result = new Field( "lembretes.tipo_id" ).isEqual(
|
||||||
|
lembretesProvider.getTipoLembreteByCodigo( LembretesConstants.CODE_MARCACOES ).getID() ).and(
|
||||||
|
new Field( "lembretes.data" ).isLessOrEqual( new Field( "current_date" ) ) ).and(
|
||||||
|
new Field( "lembretes.deleted_date" ).isEqual( null ) );
|
||||||
|
if( empresaID != null )
|
||||||
|
{
|
||||||
|
result = result.and( new Field("empresas.id").isEqual( empresaID ) );
|
||||||
|
if( estabelecimentoID != null )
|
||||||
|
{
|
||||||
|
result = result.and( new Field("estabelecimentos.id").isEqual( estabelecimentoID ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IDObject[] getLembretesMarcacaoTrabalhador( Integer empresaID, Integer estabelecimentoID )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
Select select =
|
||||||
|
new Select2( new String[]{ "lembretes", "marcacoes_trabalhador", "trabalhadores",
|
||||||
|
"estabelecimentos", "empresas", "trabalhadores_consultas_datas", "trabalhadores_ecds_datas"},
|
||||||
|
new Integer [] {
|
||||||
|
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER,
|
||||||
|
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER,
|
||||||
|
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER
|
||||||
|
},
|
||||||
|
new Expression[]{
|
||||||
|
new Field( "lembretes.marcacao_trabalhador_id" ).isEqual( new Field( "marcacoes_trabalhador.id" ) ),/*.or(
|
||||||
|
new Field( "lembretes.trabalhadores_consultas_datas_id" ).isEqual( new Field( "trabalhadores_consultas_datas.id" ) )
|
||||||
|
).or(
|
||||||
|
new Field( "lembretes.trabalhadores_ecds_datas_id" ).isEqual( new Field( "trabalhadores_ecds_datas.id" ) )
|
||||||
|
),
|
||||||
|
*/
|
||||||
|
new Field( "marcacoes_trabalhador.trabalhador_id" ).isEqual( new Field( "trabalhadores.id" ) ).or( new Field( "lembretes.trabalhador_id" ).isEqual( new Field( "trabalhadores.id" ) ) ),
|
||||||
|
new Field( "trabalhadores.estabelecimento_id" ).isEqual( new Field( "estabelecimentos.id" ) ),
|
||||||
|
new Field( "estabelecimentos.empresa_id" ).isEqual( new Field( "empresas.id" ) ),
|
||||||
|
new Field( "lembretes.trabalhadores_consultas_datas_id" ).isEqual( new Field( "trabalhadores_consultas_datas.id" ) ),
|
||||||
|
new Field( "lembretes.trabalhadores_ecds_datas_id" ).isEqual( new Field( "trabalhadores_ecds_datas.id" ) )
|
||||||
|
},
|
||||||
|
new String[]{ "lembretes.id", "lembretes.descricao",
|
||||||
|
"marcacoes_trabalhador.tipo", "lembretes.data",
|
||||||
|
"trabalhadores.nome", "estabelecimentos.nome", "empresas.designacao_social",
|
||||||
|
"trabalhadores.nome_plain" },
|
||||||
|
whereExpressionLembretesRemarcacao( empresaID, estabelecimentoID ),
|
||||||
|
new String[]{ "trabalhadores.nome_plain" },
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
Virtual2DArray array = EXECUTER.executeQuery( select );
|
||||||
|
IDObject lembretes[] = new IDObject[ array.columnLength() ];
|
||||||
|
for( int n = 0; n < lembretes.length; n++ )
|
||||||
|
{
|
||||||
|
Integer id = ( Integer ) array.get( n, 0 );
|
||||||
|
String descricao = ( String ) array.get( n, 1 );
|
||||||
|
Date data = ( Date ) array.get( n, 3 );
|
||||||
|
|
||||||
|
String trabalhador = ( String ) array.get( n, 4 );
|
||||||
|
String split[] = trabalhador.split( " " );
|
||||||
|
trabalhador = split[ 0 ] + " " + ( split.length > 2 ? split[ 1 ].charAt( 0 ) + ". " : " " ) +
|
||||||
|
( split.length > 1 ? split[ split.length - 1 ] : "" );
|
||||||
|
String estabelecimento = ( String ) array.get( n, 5 );
|
||||||
|
String empresa = ( String ) array.get( n, 6 );
|
||||||
|
String str = "<html><body><font color=\"#00009f\">" + trabalhador + "</font>"
|
||||||
|
+ "<br> " + MedicinaConstants.LEMBRETE_RENOVACAO_FICHA_APTIDAO_STRING + " de " + D_F.format( data )
|
||||||
|
+ "<br> <font color=\"#009f00\">" + descricao + "</font>"
|
||||||
|
+ "<br> " + empresa.substring( 0, empresa.length() > 20 ? 20 : empresa.length() )
|
||||||
|
+ " / " + estabelecimento.substring( 0, estabelecimento.length() > 10 ? 10 : estabelecimento.length() )
|
||||||
|
+ "</body></html>";
|
||||||
|
lembretes[ n ] = new MappableObject( id, str );
|
||||||
|
}
|
||||||
|
return lembretes;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue