diff --git a/trunk/siprp/medicina/presencas/DetalhesRealizacaoDialog.java b/trunk/siprp/medicina/presencas/DetalhesRealizacaoDialog.java index 52cb93c1..6b939411 100644 --- a/trunk/siprp/medicina/presencas/DetalhesRealizacaoDialog.java +++ b/trunk/siprp/medicina/presencas/DetalhesRealizacaoDialog.java @@ -47,6 +47,7 @@ public class DetalhesRealizacaoDialog extends CustomJDialog { center(); } + setVisible( true ); } private void setupComponents() diff --git a/trunk/siprp/medicina/presencas/actions/RealizouParcialmenteAction.java b/trunk/siprp/medicina/presencas/actions/RealizouParcialmenteAction.java index d52f640a..08b6b506 100644 --- a/trunk/siprp/medicina/presencas/actions/RealizouParcialmenteAction.java +++ b/trunk/siprp/medicina/presencas/actions/RealizouParcialmenteAction.java @@ -9,10 +9,19 @@ 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; /** * @@ -35,6 +44,42 @@ public class RealizouParcialmenteAction extends AbstractAction 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 ); + } } }