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