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.
SIPRP/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java

107 lines
3.0 KiB

package siprp.database.cayenne.objects;
import java.util.HashMap;
import java.util.List;
import siprp.database.cayenne.objects.auto._TrabalhadoresEcds;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.processo.ui.OrderedMap;
public class TrabalhadoresEcds extends _TrabalhadoresEcds implements MedicinaConstants
{
private static final long serialVersionUID = 1L;
public String getDataString()
{
return getData() == null ? "(sem data definida)" : sdf.format( getData() );
}
public String getEstadoString()
{
return isNew() ? isNewMessage : (getEstado() == null || getEstado() >= ESTADOS_EXAME_STR.length ? "" : ESTADOS_EXAME_STR[getEstado()]);
}
public HashMap<Integer, String> getEstados()
{
HashMap<Integer, String> result = new HashMap<Integer, String>();
for( int i = 0; i < ESTADOS_EXAME_STR.length; ++i )
{
if( ESTADOS_EXAME_STR[i] != null )
{
result.put( new Integer( i ), ESTADOS_EXAME_STR[i] );
}
}
return result;
}
@Override
public String toString()
{
return getDataString() + ": " + getEstadoString();
}
public OrderedMap<PrtGruposProtocolo> getGruposExamesForPerfil()
{
OrderedMap<PrtGruposProtocolo> grupos = new OrderedMap<PrtGruposProtocolo>();
Trabalhadores trabalhador = this.getToTrabalhadores();
Integer perfil = trabalhador.getPerfil();
if( perfil != null )
{
Empresas empresa = trabalhador.getToEstabelecimentos().getToEmpresas();
List<PrtElementosProtocolo> ecdsPerfil = (List<PrtElementosProtocolo>) empresa.getPrtElementosProtocoloArray();
for( PrtElementosProtocolo ecdPerfil : ecdsPerfil )
{
if( perfil.equals( ecdPerfil.getNumeroPerfil() ) )
{
PrtTiposElementosProtocolo ecd = ecdPerfil.getToPrtTiposElementosProtocolo();
if( ecd != null )
{
PrtGruposProtocolo grupoEcd = ecd.getToPrtGruposProtocolo();
if( grupoEcd != null )
{
String descricao = grupoEcd.getDescricao();
if( descricao != null && !grupos.containsKey( grupoEcd ) )
{
grupos.putLast( grupoEcd, descricao );
Integer estado = getEstadoForGrupoEcd(grupoEcd);
grupos.putLast( grupoEcd, estado != null ? MedicinaConstants.ESTADOS_EXAME_STR[estado] : " " );
}
}
}
}
}
}
return grupos;
}
private Integer getEstadoForGrupoEcd(PrtGruposProtocolo grupoEcd)
{
Integer estado = null;
List<TrabalhadoresEcdsDatas> marcacoes = getTrabalhadoresEcdsDatasArray();
if(marcacoes != null)
{
for(TrabalhadoresEcdsDatas marcacao : marcacoes)
{
List<TrabalhadoresEcd> ecds = marcacao.getTrabalhadoresEcdArray();
for( TrabalhadoresEcd ecd : ecds )
{
if(ecd.getToPrtTiposElementosProtocolo().getToPrtGruposProtocolo().equals( grupoEcd ))
{
if(new Integer(ESTADO_REALIZADO).equals(ecd.getEstado()))
{
return new Integer(ESTADO_REALIZADO);
}
else if(estado == null)
{
estado = ecd.getEstado();
break;
}
}
}
}
}
return estado == null ? ESTADO_POR_REALIZAR : estado;
}
}