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/siprp/medicina/presencas/actions/RealizouParcialmenteAction....

86 lines
2.7 KiB

/*
* RealizouParcialmenteAction.java
*
* Created on January 31, 2007, 6:20 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.presencas.actions;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.ui.DialogException;
import java.awt.event.ActionEvent;
import java.util.Arrays;
import java.util.Vector;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import siprp.clientes.ClientesDataProvider;
import siprp.data.Marcacao;
import siprp.medicina.MedicinaDataProvider;
import siprp.medicina.presencas.DetalhesRealizacaoDialog;
import siprp.medicina.presencas.Presenca;
import siprp.medicina.presencas.PresencasDataProvider;
/**
*
* @author fpalma
*/
public class RealizouParcialmenteAction extends AbstractAction
{
protected Presenca presenca;
/** Creates a new instance of RealizouParcialmenteAction */
public RealizouParcialmenteAction( Presenca presenca )
{
super( "Parcialmente" );
this.presenca = presenca;
if( Marcacao.TIPO_MARCACAO_TRABALHADOR_CONSULTA == presenca.getTipo().intValue() )
{
setEnabled( false );
}
}
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog( null, "", "", JOptionPane.ERROR_MESSAGE );
try
{
PresencasDataProvider provider = PresencasDataProvider.getProvider();
ClientesDataProvider clientesProvider =
( ClientesDataProvider ) ClientesDataProvider.getProvider();
MedicinaDataProvider medicinaProvider =
( MedicinaDataProvider ) MedicinaDataProvider.getProvider();
Integer trabalhadorID = medicinaProvider.getTrabalhadorIDByMarcacaoID( presenca.getID() );
Integer empresaID = clientesProvider.getEmpresaIDByTrabalhadorID( trabalhadorID );
Integer realizados[] = medicinaProvider.getDetalhesRealizadosForEstadosMarcacao( presenca.getID() );
Vector realizadosVector = new Vector();
realizadosVector.addAll( Arrays.asList( realizados ) );
IDObject validos[] = medicinaProvider.getDetalhesValidosTrabalhador( empresaID, trabalhadorID );
Vector aRealizar = new Vector();
for( int n = 0; n < validos.length; n++ )
{
Integer id = validos[ n ].getID();
if( !realizadosVector.contains( id ) )
{
aRealizar.add( validos[ n ] );
}
}
DetalhesRealizacaoDialog dialog =
new DetalhesRealizacaoDialog( null, ( IDObject[] ) aRealizar.toArray( new IDObject[ aRealizar.size() ] ) );
Integer escolhidos[] = dialog.getSelected();
if( escolhidos != null )
{
provider.marcarRealizado( presenca.getID(), escolhidos );
setEnabled( false );
}
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a marcar", true );
}
}
}