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.
		
		
		
		
		
			
		
			
				
					
					
						
							94 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
	
	
							94 lines
						
					
					
						
							3.9 KiB
						
					
					
				/*
 | 
						|
 * MarcacoesMedicinaHandler.java
 | 
						|
 *
 | 
						|
 * Created on 28 de Abril de 2006, 9:56
 | 
						|
 *
 | 
						|
 * To change this template, choose Tools | Template Manager
 | 
						|
 * and open the template in the editor.
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.medicina;
 | 
						|
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.jdo.*;
 | 
						|
 | 
						|
import siprp.data.*;
 | 
						|
 | 
						|
/**
 | 
						|
 * Classe auxiliar para tratamento de marcações de Medicina.
 | 
						|
 *
 | 
						|
 * @author Frederico
 | 
						|
 */
 | 
						|
public class MarcacoesMedicinaHandler
 | 
						|
{
 | 
						|
	/** Creates a new instance of MarcacoesMedicinaHandler */
 | 
						|
	public MarcacoesMedicinaHandler()
 | 
						|
	{
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Ajusta os estado das marações corrente e seguinte para uma trabalhador.
 | 
						|
	 * Este método é usado pelo sistema de marcaç&atild;o de fichas de aptidaão para ajustar 
 | 
						|
	 * as marcações existentes às escolhidas na ficha.
 | 
						|
	 *
 | 
						|
	 * @param trabalhadorID um inteiro que representa o trabalhador em questão
 | 
						|
	 * @param motivoCorrente um inteiro que representa o motivo da marcação corrente (admissão/periódico/ocasional)
 | 
						|
	 * @param dataCorrente a data que se pretende para a marcação corrente
 | 
						|
	 * @param motivoSeguinte um inteiro que representa o motivo da marcação seguinte (admissão/periódico/ocasional)
 | 
						|
	 * @param dataSeguinte a data que se pretende para a marcação seguinte
 | 
						|
	 * @throws Exception se houver um erro na comunicação com a Base de Dados
 | 
						|
	 */
 | 
						|
	public void ajustarMarcacoes( Integer trabalhadorID, Integer motivoCorrente, Date dataCorrente, 
 | 
						|
									Integer motivoSeguinte, Date dataSeguinte )
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		Integer idCorrente;
 | 
						|
		Integer idSeguinte;
 | 
						|
		MedicinaDataProvider provider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider();
 | 
						|
		JDOProvider JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
 | 
						|
		TrabalhadorData trabalhador = (TrabalhadorData)JDO.load( TrabalhadorData.class, trabalhadorID );
 | 
						|
		
 | 
						|
		idCorrente = provider.getConsultaIDByTrabalhadorMotivoAndDate( trabalhadorID, motivoCorrente, dataCorrente );
 | 
						|
		MarcacaoTrabalhadorData consultaCorrente;
 | 
						|
		if( idCorrente == null )
 | 
						|
		{
 | 
						|
			consultaCorrente = new MarcacaoTrabalhadorData();
 | 
						|
			consultaCorrente.set( MarcacaoTrabalhadorData.TRABALHADOR, trabalhador );
 | 
						|
			consultaCorrente.set( MarcacaoTrabalhadorData.TIPO, new Integer( MarcacaoTrabalhadorData.TIPO_CONSULTA ) );
 | 
						|
			consultaCorrente.set( Marcacao.DATA, dataCorrente );
 | 
						|
			consultaCorrente.set( MarcacaoTrabalhadorData.MOTIVO, motivoCorrente );
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			consultaCorrente = ( MarcacaoTrabalhadorData ) JDO.load( MarcacaoTrabalhadorData.class, idCorrente );
 | 
						|
		}
 | 
						|
		consultaCorrente.set( Marcacao.REALIZADA, "y" );
 | 
						|
		consultaCorrente.set( MarcacaoTrabalhadorData.ESTADO, new Integer( siprp.medicina.MedicinaDataProvider.ESTADO_REALIZADO ) );
 | 
						|
		consultaCorrente.save();
 | 
						|
		
 | 
						|
		idSeguinte = provider.getConsultaIDByTrabalhadorMotivoAndDate( trabalhadorID, motivoSeguinte, dataSeguinte );
 | 
						|
		if( idSeguinte == null )
 | 
						|
		{
 | 
						|
			idSeguinte = provider.getProximaConsultaIDByTrabalhadorMotivoAndDate( trabalhadorID, motivoSeguinte, dataCorrente );
 | 
						|
			MarcacaoTrabalhadorData consultaSeguinte;
 | 
						|
			if( idSeguinte == null )
 | 
						|
			{
 | 
						|
				consultaSeguinte = new MarcacaoTrabalhadorData();
 | 
						|
				consultaSeguinte.set( MarcacaoTrabalhadorData.TRABALHADOR, trabalhador );
 | 
						|
				consultaSeguinte.set( MarcacaoTrabalhadorData.TIPO, new Integer( MarcacaoTrabalhadorData.TIPO_CONSULTA ) );
 | 
						|
				consultaSeguinte.set( MarcacaoTrabalhadorData.MOTIVO, motivoSeguinte );
 | 
						|
				consultaSeguinte.set( Marcacao.REALIZADA, "y" );
 | 
						|
				consultaSeguinte.set( MarcacaoTrabalhadorData.ESTADO, new Integer( siprp.medicina.MedicinaDataProvider.ESTADO_POR_REALIZAR ) );
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				consultaSeguinte = ( MarcacaoTrabalhadorData ) JDO.load( MarcacaoTrabalhadorData.class, idSeguinte );
 | 
						|
			}
 | 
						|
			consultaSeguinte.set( Marcacao.DATA, dataSeguinte );
 | 
						|
			consultaSeguinte.save();
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |