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.
		
		
		
		
		
			
		
			
				
					
					
						
							353 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
	
	
							353 lines
						
					
					
						
							11 KiB
						
					
					
				| /*
 | |
|  * Marcacao.java
 | |
|  *
 | |
|  * Created on 21 de Maio de 2004, 16:59
 | |
|  */
 | |
| 
 | |
| package siprp.data;
 | |
| 
 | |
| import java.text.*;
 | |
| import java.util.*;
 | |
| 
 | |
| import com.evolute.utils.*;
 | |
| import com.evolute.utils.jdo.*;
 | |
| import com.evolute.utils.tables.*;
 | |
| 
 | |
| import siprp.*;
 | |
| /**
 | |
|  *
 | |
|  * @author  fpalma
 | |
|  */
 | |
| public abstract class Marcacao extends JDOObject
 | |
| 	implements ColumnizedObject
 | |
| 	//, JDOOperationHandlerInterface
 | |
| {
 | |
| 	public static final int TIPO_MARCACAO_TRABALHADOR_EXAMES = 0;
 | |
| 	public static final int TIPO_MARCACAO_TRABALHADOR_CONSULTA = 1;
 | |
| 	public static final int TIPO_MARCACAO_ESTABELECIMENTO = 2;
 | |
| 	public static final int TIPO_MARCACAO_EMPRESA = 3;
 | |
| 	
 | |
| 	public static final int ESTADO_POR_REALIZAR = 0;
 | |
| 	public static final int ESTADO_PARCIALMENTE_REALIZADA = 1;
 | |
| 	public static final int ESTADO_REALIZADA = 2;
 | |
| 	public static final int ESTADO_DESMARCADA_TRABALHADOR = 3;
 | |
| 	public static final int ESTADO_DESMARCADA_SHST = 4;
 | |
| 	public static final int ESTADO_FALTOU = 5;
 | |
| 	
 | |
| 	public static final String DATA = "data";
 | |
| 	public static final String REALIZADA = "realizada";
 | |
| 	public static final String DATA_EMAIL = "data_email";
 | |
| 	public static final String DATA_RELATORIO = "data_relatorio";
 | |
| 	public static final String ANTECEDENCIA_AVISO = "antecedencia_aviso";
 | |
| 	
 | |
| 	protected static final DateFormat DATE_FORMAT = DateFormat.getDateInstance( DateFormat.SHORT );
 | |
| 	protected static JDOProvider JDO;
 | |
| 	
 | |
| 	
 | |
| 	public static Marcacao getMarcacao( int tipo )
 | |
| 	{
 | |
| 		switch( tipo )
 | |
| 		{
 | |
| 			case TIPO_MARCACAO_TRABALHADOR_EXAMES: case TIPO_MARCACAO_TRABALHADOR_CONSULTA:
 | |
| 				return new MarcacaoTrabalhadorData();
 | |
| 				
 | |
| 			case TIPO_MARCACAO_ESTABELECIMENTO:
 | |
| 				return new MarcacaoEstabelecimentoData();
 | |
| 				
 | |
| 			case TIPO_MARCACAO_EMPRESA:
 | |
| 				return new MarcacaoEmpresaData();
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| 	
 | |
| 	public Object getValue( int col )
 | |
| 	{
 | |
| 		switch( col )
 | |
| 		{
 | |
| 			case 0:
 | |
| 				Date data = (Date) get( DATA );
 | |
| 				String dataStr = DATE_FORMAT.format( data );
 | |
| 				return dataStr;
 | |
| 				
 | |
| 			case 1:
 | |
| 				String realizada = (String) get( REALIZADA );
 | |
| //				if( this instanceof MarcacaoEmpresaData )
 | |
| //				{
 | |
| //					return new Boolean( "y".equals( realizada ) );
 | |
| //				}
 | |
| //				else
 | |
| //				{
 | |
| 					
 | |
| 				realizada = "y".equals( realizada ) ? "Sim" : "N\u00e3o";
 | |
| 				return realizada;
 | |
| //				}
 | |
| 				
 | |
| 			case 2:
 | |
| 				if( this instanceof MarcacaoEmpresaData )
 | |
| 				{
 | |
| 					String textoStr = (String ) get( MarcacaoEmpresaData.TEXTO );
 | |
| 					if( textoStr == null )
 | |
| 					{
 | |
| 						textoStr = "";
 | |
| 					}
 | |
| 					textoStr = textoStr.trim();
 | |
| 					int index = textoStr.indexOf( "\n" );
 | |
| 					if( index != -1 )
 | |
| 					{
 | |
| 						textoStr = textoStr.substring( 0, index );
 | |
| 					}
 | |
| 					return textoStr;
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					Date dataRelatorio = (Date) get( DATA_RELATORIO );
 | |
| 					String dataRelatorioStr = ( dataRelatorio != null ? DATE_FORMAT.format( dataRelatorio ) : "" );
 | |
| 					return dataRelatorioStr;
 | |
| 				}
 | |
| 				
 | |
| 			default:
 | |
| 				return null;
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	public static void saveMarcacaoConsultaForTrabalhadorID( Integer trabalhadorID, Date date )
 | |
| 		throws Exception
 | |
| 	{
 | |
| 		if( date != null )
 | |
| 		{
 | |
| 			date = (Date)date.clone();
 | |
| 		}
 | |
| 		FichaDataProvider provider = (FichaDataProvider) FichaDataProvider.getProvider();
 | |
| 		if( trabalhadorID == null )
 | |
| 		{
 | |
| 			return;
 | |
| 		}
 | |
| 		Integer marcacaoID = provider.getMarcacaoIDByTrabalhador( trabalhadorID );
 | |
| 		MarcacaoTrabalhadorData marcacao;
 | |
| 		if( marcacaoID == null )
 | |
| 		{
 | |
| 			marcacao = null;
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			if( JDO == null )
 | |
| 			{
 | |
| 				JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
 | |
| 			}
 | |
| 			marcacao = ( MarcacaoTrabalhadorData ) JDO.load( MarcacaoTrabalhadorData.class, marcacaoID );
 | |
| 		}
 | |
| 		if( date == null && marcacao != null )
 | |
| 		{
 | |
| 			marcacao.delete();
 | |
| 		}
 | |
| 		else if( date != null && marcacao != null )
 | |
| 		{
 | |
| 			marcacao.set( Marcacao.DATA, date );
 | |
| 			marcacao.save();
 | |
| 		}
 | |
| 		else if( date != null && marcacao == null )
 | |
| 		{
 | |
| 			marcacao = new MarcacaoTrabalhadorData();
 | |
| 			if( JDO == null )
 | |
| 			{
 | |
| 				JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
 | |
| 			}
 | |
| 			TrabalhadorData trab = (TrabalhadorData)JDO.load( TrabalhadorData.class, trabalhadorID );
 | |
| 			marcacao.set( MarcacaoTrabalhadorData.TRABALHADOR, trab );
 | |
| 			marcacao.set( MarcacaoTrabalhadorData.TIPO, new Integer( MarcacaoTrabalhadorData.TIPO_CONSULTA ) );
 | |
| 			marcacao.set( Marcacao.DATA, date );
 | |
| 			marcacao.set( Marcacao.REALIZADA, "n" );
 | |
| 			marcacao.set( MarcacaoTrabalhadorData.ESTADO, new Integer( siprp.medicina.MedicinaDataProvider.ESTADO_POR_REALIZAR ) );
 | |
| 			marcacao.set( MarcacaoTrabalhadorData.MOTIVO, new Integer( 2 ) );
 | |
| 			marcacao.save();
 | |
| 		}
 | |
| 	}
 | |
| //	
 | |
| //	public boolean handle( JDOObject object, int operation, int moment )
 | |
| //		throws Exception
 | |
| //	{
 | |
| //		switch( operation )
 | |
| //		{
 | |
| //			case JDOOperationHandlerInterface.OP_SAVE:
 | |
| //				switch( moment )
 | |
| //				{
 | |
| //					case JDOOperationHandlerInterface.MOMENT_BEFORE:
 | |
| //						return preSave( (Marcacao) object );
 | |
| //						
 | |
| //					case JDOOperationHandlerInterface.MOMENT_AFTER:
 | |
| //						return postSave( (Marcacao) object );
 | |
| //				}
 | |
| //				return false;
 | |
| //				
 | |
| //			case JDOOperationHandlerInterface.OP_DELETE:
 | |
| //				switch( moment )
 | |
| //				{
 | |
| //					case JDOOperationHandlerInterface.MOMENT_BEFORE:
 | |
| //						return preDelete( (Marcacao) object );
 | |
| //						
 | |
| //					case JDOOperationHandlerInterface.MOMENT_AFTER:
 | |
| //						return postDelete( (Marcacao) object );
 | |
| //				}
 | |
| //				return false;
 | |
| //		}
 | |
| //		return false;
 | |
| //	}
 | |
| //	
 | |
| //	protected boolean preSave( Marcacao object )
 | |
| //		throws Exception
 | |
| //	{
 | |
| //		return false;
 | |
| //	}
 | |
| //	
 | |
| //	protected boolean postSave( Marcacao object )
 | |
| //		throws Exception
 | |
| //	{
 | |
| //		if( object instanceof MarcacaoEmpresaData )
 | |
| //		{
 | |
| //			AvisoData aviso = (AvisoData) load( AvisoData.class, new Object[]{ get( MarcacaoEmpresaData.ID ), new Integer( AvisoData.TIPO_EMPRESA ) }, new String[]{ AvisoData.EVENTO_ID, AvisoData.TIPO } );
 | |
| //			if( aviso == null )
 | |
| //			{
 | |
| //				aviso = new AvisoData();
 | |
| //			}
 | |
| //			aviso.set( AvisoData.TIPO, new Integer( AvisoData.TIPO_EMPRESA ) );
 | |
| //			EmpresaData empresa = ( EmpresaData ) object.get( MarcacaoEmpresaData.EMPRESA );
 | |
| //			aviso.set( AvisoData.EMPRESA, empresa );
 | |
| //			aviso.set( AvisoData.EVENTO_ID, object.get( MarcacaoEmpresaData.ID ) );
 | |
| //			Date dataEvento = (Date) object.get( DATA );
 | |
| //			aviso.set( AvisoData.DATA_EVENTO, dataEvento );
 | |
| //			aviso.set( AvisoData.DATA_AVISO, dataEvento );
 | |
| //			String descricao = "Tarefa ";
 | |
| //			aviso.set( AvisoData.DESCRICAO, descricao );
 | |
| //			aviso.save();
 | |
| //		}
 | |
| //		else if( object instanceof MarcacaoEstabelecimentoData )
 | |
| //		{
 | |
| //			AvisoData aviso = (AvisoData) load( AvisoData.class, new Object[]{ get( MarcacaoEstabelecimentoData.ID ), new Integer( AvisoData.TIPO_ESTABELECIMENTO ) }, new String[]{ AvisoData.EVENTO_ID, AvisoData.TIPO } );
 | |
| //			if( aviso == null )
 | |
| //			{
 | |
| //				aviso = new AvisoData();
 | |
| //			}
 | |
| //			aviso.set( AvisoData.TIPO, new Integer( AvisoData.TIPO_ESTABELECIMENTO ) );
 | |
| //			EstabelecimentoData estabelecimento = ( EstabelecimentoData ) object.get( MarcacaoEstabelecimentoData.ESTABELECIMENTO );
 | |
| //			aviso.set( AvisoData.ESTABELECIMENTO, estabelecimento );
 | |
| //			EmpresaData empresa = ( EmpresaData )estabelecimento.get( EstabelecimentoData.EMPRESA );
 | |
| //			aviso.set( AvisoData.EMPRESA, empresa );
 | |
| //			aviso.set( AvisoData.EVENTO_ID, object.get( MarcacaoEstabelecimentoData.ID ) );
 | |
| //			Date dataEvento = (Date) object.get( DATA );
 | |
| //			Date dataAviso = new Date( dataEvento.getTime() );
 | |
| //			Calendar cal = Calendar.getInstance();
 | |
| //			cal.setTime( dataAviso );
 | |
| //			cal.add( Calendar.DAY_OF_MONTH, -14 );
 | |
| //			dataAviso = cal.getTime();
 | |
| //			aviso.set( AvisoData.DATA_AVISO, dataAviso );
 | |
| //			aviso.set( AvisoData.DATA_EVENTO, dataEvento );
 | |
| //			String descricao = "Visita ";
 | |
| //			aviso.set( AvisoData.DESCRICAO, descricao );
 | |
| //			cal = Calendar.getInstance();
 | |
| //			cal.setTime( dataEvento );
 | |
| //			cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 );
 | |
| //			cal.set( Calendar.MILLISECOND, 0 );
 | |
| //			dataEvento = cal.getTime();
 | |
| //
 | |
| //			cal = Calendar.getInstance();
 | |
| //			cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 10, 0, 0 );
 | |
| //			cal.set( Calendar.MILLISECOND, 0 );
 | |
| //			Date hoje = cal.getTime();
 | |
| //			if( hoje.before( dataEvento ) )
 | |
| //			{
 | |
| //				aviso.save();
 | |
| //			}
 | |
| //		}
 | |
| //		if( object instanceof MarcacaoTrabalhadorData )
 | |
| //		{
 | |
| //			AvisoData aviso = (AvisoData) load( AvisoData.class, new Object[]{ object.get( MarcacaoTrabalhadorData.ID ), new Integer( AvisoData.TIPO_TRABALHADOR ) }, new String[]{ AvisoData.EVENTO_ID, AvisoData.TIPO } );
 | |
| //			if( aviso == null )
 | |
| //			{
 | |
| //				aviso = new AvisoData();
 | |
| //			}
 | |
| //			aviso.set( AvisoData.TIPO, new Integer( AvisoData.TIPO_TRABALHADOR ) );
 | |
| //			TrabalhadorData trab = ( TrabalhadorData ) object.get( MarcacaoTrabalhadorData.TRABALHADOR );
 | |
| //			aviso.set( AvisoData.TRABALHADOR, trab );
 | |
| //			EstabelecimentoData estabelecimento = ( EstabelecimentoData ) trab.get( TrabalhadorData.ESTABELECIMENTO );
 | |
| //			aviso.set( AvisoData.ESTABELECIMENTO, estabelecimento );
 | |
| //			EmpresaData empresa = ( EmpresaData ) estabelecimento.get( EstabelecimentoData.EMPRESA );
 | |
| //			aviso.set( AvisoData.EMPRESA, empresa );
 | |
| //			aviso.set( AvisoData.EVENTO_ID, object.get( MarcacaoTrabalhadorData.ID ) );
 | |
| //			Date dataEvento = (Date) object.get( DATA );
 | |
| //			Date dataAviso = new Date( dataEvento.getTime() );
 | |
| //			Calendar cal = Calendar.getInstance();
 | |
| //			cal.setTime( dataAviso );
 | |
| //			cal.add( Calendar.DAY_OF_MONTH, -14 );
 | |
| //			dataAviso = cal.getTime();
 | |
| //			aviso.set( AvisoData.DATA_AVISO, dataAviso );
 | |
| //			aviso.set( AvisoData.DATA_EVENTO, dataEvento );
 | |
| //			String descricao = "";
 | |
| //			switch( ( ( Integer ) object.get( MarcacaoTrabalhadorData.TIPO ) ).intValue() )
 | |
| //			{
 | |
| //				case MarcacaoTrabalhadorData.TIPO_EXAMES:
 | |
| //					descricao = "Exames ";
 | |
| //					break;
 | |
| //
 | |
| //				case MarcacaoTrabalhadorData.TIPO_CONSULTA:
 | |
| //					descricao = "Consulta ";
 | |
| //					break;
 | |
| //			}
 | |
| //			aviso.set( AvisoData.DESCRICAO, descricao );
 | |
| //			cal = Calendar.getInstance();
 | |
| //			cal.setTime( dataEvento );
 | |
| //			cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 0, 0, 0 );
 | |
| //			cal.set( Calendar.MILLISECOND, 0 );
 | |
| //			dataEvento = cal.getTime();
 | |
| //
 | |
| //			cal = Calendar.getInstance();
 | |
| //			cal.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DAY_OF_MONTH ), 10, 0, 0 );
 | |
| //			cal.set( Calendar.MILLISECOND, 0 );
 | |
| //			Date hoje = cal.getTime();
 | |
| //			if( hoje.before( dataEvento ) )
 | |
| //			{
 | |
| //				aviso.save();
 | |
| //			}
 | |
| //		}
 | |
| //		else
 | |
| //		{
 | |
| //			return false;
 | |
| //		}
 | |
| //		return true;
 | |
| //	}
 | |
| //	
 | |
| //	protected boolean preDelete( Marcacao object )
 | |
| //		throws Exception
 | |
| //	{
 | |
| //		return false;
 | |
| //	}
 | |
| //	
 | |
| //	protected boolean postDelete( Marcacao object )
 | |
| //		throws Exception
 | |
| //	{
 | |
| //		Integer tipo;
 | |
| //		if( object instanceof MarcacaoEmpresaData )
 | |
| //		{
 | |
| //			tipo = new Integer( AvisoData.TIPO_EMPRESA );
 | |
| //		}
 | |
| //		else if( object instanceof MarcacaoEstabelecimentoData )
 | |
| //		{
 | |
| //			tipo = new Integer( AvisoData.TIPO_ESTABELECIMENTO );
 | |
| //		}
 | |
| //		if( object instanceof MarcacaoTrabalhadorData )
 | |
| //		{
 | |
| //			tipo = new Integer( AvisoData.TIPO_TRABALHADOR );
 | |
| //		}
 | |
| //		else
 | |
| //		{
 | |
| //			return false;
 | |
| //		}
 | |
| //		AvisoData aviso = (AvisoData) load( AvisoData.class, new Object[]{ object.get( "id" ), tipo }, new String[]{ AvisoData.EVENTO_ID, AvisoData.TIPO } );
 | |
| //		if( aviso != null )
 | |
| //		{
 | |
| //			aviso.delete();
 | |
| //		}
 | |
| //		
 | |
| //		return true;
 | |
| //	}
 | |
| }
 |