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;
|
|
// }
|
|
}
|