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.
1436 lines
44 KiB
1436 lines
44 KiB
/*
|
|
* ClientesWindow.java
|
|
*
|
|
* Created on 12 de Maio de 2004, 18:11
|
|
*/
|
|
|
|
package siprp.clientes;
|
|
|
|
import java.awt.*;
|
|
import java.io.*;
|
|
import java.text.*;
|
|
import java.util.*;
|
|
import javax.swing.*;
|
|
import javax.swing.event.*;
|
|
|
|
import com.evolute.utils.*;
|
|
import com.evolute.utils.data.*;
|
|
import com.evolute.utils.dataui.*;
|
|
import com.evolute.utils.date.*;
|
|
import com.evolute.utils.fop.*;
|
|
import com.evolute.utils.jdo.*;
|
|
import com.evolute.utils.strings.*;
|
|
import com.evolute.utils.ui.*;
|
|
import com.evolute.utils.ui.dialog.*;
|
|
import com.evolute.utils.ui.panel.*;
|
|
import com.evolute.utils.ui.search.*;
|
|
import com.evolute.utils.ui.text.*;
|
|
import com.evolute.utils.ui.window.*;
|
|
import com.evolute.utils.xml.*;
|
|
|
|
import siprp.*;
|
|
import siprp.data.*;
|
|
import siprp.ficha.*;
|
|
import siprp.importer.*;
|
|
|
|
/**
|
|
*
|
|
* @author fpalma
|
|
*/
|
|
public class ClientesWindow extends EditorWindow
|
|
implements ListSelectionListener
|
|
{
|
|
private static final DateFormat DF = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
|
|
|
|
public static final Hashtable TR_IMPORT_NAMES_TO_TRAB = new Hashtable();
|
|
public static final Hashtable TR_IMPORT_NAMES_TO_DEMISSOES = new Hashtable();
|
|
|
|
static
|
|
{
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.NOME, TrabalhadorData.NOME );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.SEXO, TrabalhadorData.SEXO );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.NACIONALIDADE, TrabalhadorData.NACIONALIDADE );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.DATA_NASCIMENTO, TrabalhadorData.DATA_NASCIMENTO );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.NUMERO_MECANOGRAFICO, TrabalhadorData.NUMERO_MECANOGRAFICO );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.DATA_ADMISSAO, TrabalhadorData.DATA_ADMISSAO );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.CATEGORIA, TrabalhadorData.CATEGORIA );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.LOCAL_TRABALHO, TrabalhadorData.LOCAL_TRABALHO );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.FUNCAO, TrabalhadorData.FUNCAO_PROPOSTA );
|
|
TR_IMPORT_NAMES_TO_TRAB.put( Importer.DATA_ADMISSAO_FUNCAO, TrabalhadorData.DATA_ADMISSAO_FUNCAO );
|
|
|
|
TR_IMPORT_NAMES_TO_DEMISSOES.put( Importer.NOME, TrabalhadorData.NOME );
|
|
TR_IMPORT_NAMES_TO_DEMISSOES.put( Importer.DATA_DEMISSAO, TrabalhadorData.DATA_DEMISSAO );
|
|
|
|
// JDOObject.registerOperationHandlerForClass( DisableDeleteHandler.INSTANCE, EmpresaData.class );
|
|
// JDOObject.registerOperationHandlerForClass( DisableDeleteHandler.INSTANCE, EstabelecimentoData.class );
|
|
// JDOObject.registerOperationHandlerForClass( DisableDeleteHandler.INSTANCE, TrabalhadorData.class );
|
|
//
|
|
// JDOObject.registerOperationHandlerForClass( MarcacaoSaveAndDeleteHandler.INSTANCE, MarcacaoEmpresaData.class );
|
|
// JDOObject.registerOperationHandlerForClass( MarcacaoSaveAndDeleteHandler.INSTANCE, MarcacaoEstabelecimentoData.class );
|
|
// JDOObject.registerOperationHandlerForClass( MarcacaoSaveAndDeleteHandler.INSTANCE, MarcacaoTrabalhadorData.class );
|
|
}
|
|
|
|
public static final int INDEX_EMPRESA = 0;
|
|
public static final int INDEX_ESTABELECIMENTO = 1;
|
|
public static final int INDEX_TRABALHADOR = 2;
|
|
|
|
private static int hierarchy[] = new int[]{0,0,1};
|
|
private static int permissions[][] =
|
|
new int[][]{ { NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, SELECT_BYNAME_INDEX, DELETE_INDEX },
|
|
{ NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX },
|
|
{ NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX } };
|
|
|
|
private JDOProvider JDO;
|
|
private ClientesDataProvider clientesProvider;
|
|
private ControllableComponent panels[] = new ControllableComponent[ 4 ];
|
|
private EmpresaPanel empresaPanel;
|
|
private JPanel estabelecimentoOuterPanel;
|
|
private JTabbedPane tabbedPane;
|
|
private JTextField estabelecimentoText;
|
|
private EstabelecimentoPanel estabelecimentoPanel;
|
|
private TrabalhadorPanel trabalhadorPanel;
|
|
|
|
private SIPRPTracker tracker;
|
|
|
|
private EmpresaData empresa;
|
|
private Integer elementosProtocolo[][];
|
|
private EstabelecimentoData estabelecimento;
|
|
private TrabalhadorData trabalhador;
|
|
|
|
private AvisosPanel avisos;
|
|
|
|
protected boolean webAware;
|
|
|
|
// public static void main( String args[] )
|
|
// throws Exception
|
|
// {
|
|
// ClientesWindow window = new ClientesWindow();
|
|
// window.show();
|
|
// }
|
|
|
|
/** Creates a new instance of ClientesWindow */
|
|
public ClientesWindow( AvisosPanel avisos )
|
|
throws Exception
|
|
{
|
|
super( permissions );
|
|
this.avisos = avisos;
|
|
webAware = ( ( Boolean ) Singleton.getInstance( SingletonConstants.WEB_AWARE ) ).booleanValue();
|
|
JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
|
|
clientesProvider = ( ClientesDataProvider ) ClientesDataProvider.getProvider();
|
|
setEditorManagerHierarchy( hierarchy );
|
|
setupComponents();
|
|
this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
|
|
}
|
|
|
|
private void setupComponents()
|
|
throws Exception
|
|
{
|
|
setSize( 1000, 740 );
|
|
setTitle( "Gest\u00e3o de Clientes" );
|
|
|
|
changeGroupName( INDEX_ESTABELECIMENTO, "Estabelecimento" );
|
|
JPanel toolbarEstabelecimento = getToolbarPanel( INDEX_ESTABELECIMENTO );
|
|
|
|
changeGroupName( INDEX_TRABALHADOR, "Trabalhador" );
|
|
JPanel toolbarTrabalhador = getToolbarPanel( INDEX_TRABALHADOR );
|
|
|
|
tabbedPane = new JTabbedPane();
|
|
empresaPanel = new EmpresaPanel();
|
|
empresaPanel.setBorder( BorderFactory.createTitledBorder(
|
|
BorderFactory.createEtchedBorder(),
|
|
"Empresa/Entidade" ) );
|
|
estabelecimentoText = new JTextField();
|
|
estabelecimentoPanel = new EstabelecimentoPanel( toolbarEstabelecimento, estabelecimentoText, empresaPanel.getEstabelecimentosTable() );
|
|
estabelecimentoOuterPanel = new JPanel();
|
|
estabelecimentoOuterPanel.setBorder( BorderFactory.createTitledBorder(
|
|
BorderFactory.createEtchedBorder(),
|
|
"Estabelecimento" ) );
|
|
JLabel estabelecimentoLabel = new JLabel( "Designa\u00e7\u00e3o" );
|
|
|
|
trabalhadorPanel = new TrabalhadorPanel( toolbarTrabalhador, empresaPanel.getEstabelecimentosTable() );
|
|
|
|
GridBagLayout gridbag = new GridBagLayout();
|
|
getContentPane().setLayout( gridbag );
|
|
GridBagConstraints constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 1, 1, 1, 1 );
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
|
|
constraints.weighty = 0.5;
|
|
constraints.gridheight = 1;
|
|
gridbag.setConstraints( empresaPanel, constraints );
|
|
getContentPane().add( empresaPanel );
|
|
|
|
constraints.weighty = 0.5;
|
|
constraints.gridheight = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( estabelecimentoOuterPanel, constraints );
|
|
getContentPane().add( estabelecimentoOuterPanel );
|
|
|
|
gridbag = new GridBagLayout();
|
|
estabelecimentoOuterPanel.setLayout( gridbag );
|
|
constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 1, 1, 1, 1 );
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
|
|
constraints.weightx = 0;
|
|
constraints.gridwidth = 1;
|
|
constraints.weighty = 0;
|
|
constraints.gridheight = 1;
|
|
gridbag.setConstraints( estabelecimentoLabel, constraints );
|
|
estabelecimentoOuterPanel.add( estabelecimentoLabel );
|
|
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( estabelecimentoText, constraints );
|
|
estabelecimentoOuterPanel.add( estabelecimentoText );
|
|
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
constraints.weighty = 1;
|
|
constraints.gridheight = GridBagConstraints.REMAINDER;
|
|
gridbag.setConstraints( tabbedPane, constraints );
|
|
estabelecimentoOuterPanel.add( tabbedPane );
|
|
|
|
tabbedPane.add( "Dados", estabelecimentoPanel );
|
|
tabbedPane.add( "Trabalhadores", trabalhadorPanel );
|
|
|
|
panels[ INDEX_EMPRESA ] = empresaPanel;
|
|
panels[ INDEX_ESTABELECIMENTO ] = estabelecimentoPanel;
|
|
panels[ INDEX_TRABALHADOR ] = trabalhadorPanel;
|
|
//empresaPanel.addListSelectionListener( estabelecimentoPanel );
|
|
empresaPanel.addListSelectionListener( trabalhadorPanel );
|
|
empresaPanel.addListSelectionListener( this );
|
|
trabalhadorPanel.addListSelectionListener( this );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
excel();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction;
|
|
}
|
|
}, "Importar",
|
|
"Importar de Excel", "excel",
|
|
0, true );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
excelDemissoes();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction;
|
|
}
|
|
}, "Demiss\u00f5es",
|
|
"Demiss\u00f5es por Excel", null,
|
|
0, true );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
mudarEstabelecimento();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction;
|
|
}
|
|
}, "Mudar Estabelecimento",
|
|
"Mudar Estabelecimento", null,
|
|
INDEX_TRABALHADOR, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
imprimirFicha();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction ;
|
|
}
|
|
}, "Imprimir Ficha de Aptid\u00e3o",
|
|
"Imprimir Ficha de Aptid\u00e3o", null,
|
|
INDEX_TRABALHADOR, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
imprimirEtiquetaTrabalhador();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction ;
|
|
}
|
|
}, "Imprimir Etiqueta",
|
|
"Imprimir Etiqueta de Trabalhador", null,
|
|
INDEX_TRABALHADOR, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
imprimirEtiquetaEstabelecimento();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction ;
|
|
}
|
|
}, "Imprimir Etiqueta",
|
|
"Imprimir Etiqueta de Estabelecimento", null,
|
|
INDEX_ESTABELECIMENTO, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
restaurarEmpresa();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return true;
|
|
}
|
|
}, "Restaurar Empresa",
|
|
"Restaurar Empresa", null,
|
|
INDEX_EMPRESA, false );
|
|
|
|
if( webAware )
|
|
{
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
utilizadorWeb( false );
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return editAction;
|
|
}
|
|
}, "Utilizador Web da Empresa",
|
|
"Utilizador Web da Empresa", null,
|
|
INDEX_EMPRESA, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
utilizadorWeb( true );
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return true;
|
|
}
|
|
}, "Utilizador Web",
|
|
"Utilizador Web", null,
|
|
INDEX_EMPRESA, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
noticias();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return true;
|
|
}
|
|
}, "Not\u00edcias",
|
|
"Not\u00edcias", null,
|
|
INDEX_EMPRESA, false );
|
|
}
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
restaurarEstabelecimento();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return newAction || saveAction;
|
|
}
|
|
}, "Restaurar Estabelecimento",
|
|
"Restaurar Estabelecimento", null,
|
|
INDEX_ESTABELECIMENTO, false );
|
|
|
|
registerAction( new ActionHandler(){
|
|
public void execute()
|
|
{
|
|
restaurarTrabalhador();
|
|
}
|
|
|
|
public boolean activate( boolean newAction, boolean editAction,
|
|
boolean cancelAction, boolean saveAction,
|
|
boolean deleteAction, boolean selectAction )
|
|
{
|
|
return newAction || saveAction;
|
|
}
|
|
}, "Restaurar Trabalhador",
|
|
"Restaurar Trabalhador", null,
|
|
INDEX_TRABALHADOR, false );
|
|
|
|
new CopyPasteHandler( estabelecimentoText );
|
|
}
|
|
|
|
public boolean searchByName( )
|
|
{
|
|
SearchDialog search;
|
|
Integer empresaID;
|
|
// switch( index )
|
|
// {
|
|
// case INDEX_EMPRESA:
|
|
search = new SearchDialog( SearchExecuterFactory.getSearchExecuter( EmpresaData.class ), null, false, null, true );
|
|
empresaID = ( Integer )search.getSelected();
|
|
if( empresaID != null )
|
|
{
|
|
try
|
|
{
|
|
empresa = (EmpresaData) JDO.load( EmpresaData.class, empresaID );
|
|
elementosProtocolo = clientesProvider.getElementosProtocoloForEmpresa( empresaID, 2 );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar a empresa", true );
|
|
empresa = null;
|
|
}
|
|
reload( INDEX_EMPRESA );
|
|
}
|
|
// break;
|
|
// }
|
|
return true;
|
|
}
|
|
|
|
public boolean newItem( int index )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public void reload( int index )
|
|
{
|
|
//System.out.println( "RELOAD: " + index + " e: " + empresa + " e: " +estabelecimento + " t: " + trabalhador );
|
|
switch( index )
|
|
{
|
|
case INDEX_EMPRESA:
|
|
empresaPanel.fill( new Object[]{ empresa, elementosProtocolo } );
|
|
estabelecimentoPanel.setEmpresa( empresa );
|
|
break;
|
|
|
|
case INDEX_ESTABELECIMENTO:
|
|
// trabalhadorPanel.fill( null );
|
|
estabelecimentoPanel.fill( estabelecimento );
|
|
trabalhadorPanel.setEstabelecimento( estabelecimento );
|
|
break;
|
|
|
|
case INDEX_TRABALHADOR:
|
|
trabalhadorPanel.fill( trabalhador );
|
|
// trabalhadorPanel.reload();
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
public boolean save( int index )
|
|
{
|
|
boolean isNew = false;
|
|
Object object = panels[ index ].save();
|
|
try
|
|
{
|
|
switch( index )
|
|
{
|
|
case INDEX_EMPRESA:
|
|
empresa = (EmpresaData) ( ( Object [] )object )[ 0 ];
|
|
if( empresa.get( EmpresaData.ID ) == null )
|
|
{
|
|
isNew = true;
|
|
}
|
|
elementosProtocolo = (Integer [][]) ( ( Object [] )object )[ 1 ];
|
|
// System.out.println( empresa.debug() );
|
|
ContactoData c1 = ( ContactoData )empresa.get( EmpresaData.CONTACTO_1 );
|
|
ContactoData c2 = ( ContactoData )empresa.get( EmpresaData.CONTACTO_2 );
|
|
// empresa.set( EmpresaData.CONTACTO_1, null );
|
|
// empresa.set( EmpresaData.CONTACTO_2, null );
|
|
// empresa.save();
|
|
|
|
// empresa.set( EmpresaData.CONTACTO_1, c1 );
|
|
|
|
// empresa.set( EmpresaData.CONTACTO_2, c2 );
|
|
c1.save();
|
|
c2.save();
|
|
|
|
// empresa.set( EmpresaData.INACTIVO, "n" );
|
|
empresa.set( EmpresaData.DESIGNACAO_SOCIAL_PLAIN,
|
|
com.evolute.utils.strings.StringPlainer.convertString( ( String )
|
|
empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) ) );
|
|
empresa.save();
|
|
clientesProvider.setElementosProtocoloForEmpresa(
|
|
( Integer ) empresa.get( EmpresaData.ID ), elementosProtocolo );
|
|
|
|
if( isNew )
|
|
{
|
|
estabelecimentoPanel.setEmpresa( empresa );
|
|
}
|
|
( ( EmpresaPanel )panels[ INDEX_EMPRESA ] ).reloadMarcacoes();
|
|
break;
|
|
|
|
case INDEX_ESTABELECIMENTO:
|
|
estabelecimento = (EstabelecimentoData) object;
|
|
if( estabelecimento.get( EstabelecimentoData.ID ) == null )
|
|
{
|
|
isNew = true;
|
|
}
|
|
ContactoData c = ( ContactoData )estabelecimento.get( EstabelecimentoData.CONTACTO );
|
|
c.save();
|
|
if( estabelecimento.get( EstabelecimentoData.EMPRESA ) == null )
|
|
{
|
|
JOptionPane.showMessageDialog( this, "Erro a guardar estabelecimento (NULL).", "Erro...",
|
|
JOptionPane.ERROR_MESSAGE );
|
|
return false;
|
|
}
|
|
estabelecimento.set( EstabelecimentoData.NOME_PLAIN,
|
|
com.evolute.utils.strings.StringPlainer.convertString( ( String )
|
|
estabelecimento.get( EstabelecimentoData.NOME ) ) );
|
|
estabelecimento.save();
|
|
estabelecimentoPanel.postSave();
|
|
if( isNew )
|
|
{
|
|
trabalhadorPanel.setEstabelecimento( estabelecimento );
|
|
}
|
|
break;
|
|
|
|
case INDEX_TRABALHADOR:
|
|
trabalhador = (TrabalhadorData) object;
|
|
trabalhador.set( TrabalhadorData.NOME_PLAIN,
|
|
com.evolute.utils.strings.StringPlainer.convertString( ( String )
|
|
trabalhador.get( TrabalhadorData.NOME ) ) );
|
|
trabalhador.save();
|
|
trabalhadorPanel.postSave();
|
|
break;
|
|
|
|
default:
|
|
( ( JDOObject )object ).save();
|
|
}
|
|
// object.save();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a gravar", true );
|
|
return false;
|
|
}
|
|
//reload( index );
|
|
return true;
|
|
}
|
|
|
|
public void enableComponents( int index, boolean enable )
|
|
{
|
|
panels[ index ].setEnabled( enable );
|
|
avisos.setEnabled( !empresaPanel.isEnabled() && !estabelecimentoPanel.isEnabled() && !trabalhadorPanel.isEnabled(),
|
|
AvisoConstants.TIPO_EMPRESA );
|
|
}
|
|
|
|
public void clear( int index )
|
|
{
|
|
panels[ index ].fill( null );
|
|
}
|
|
|
|
public void valueChanged( ListSelectionEvent e )
|
|
{
|
|
Object source = e.getSource();
|
|
Integer id;
|
|
if( source.equals( empresaPanel ) )
|
|
{
|
|
id = empresaPanel.getSelectedEstabelecimento();
|
|
if( id != null )
|
|
{
|
|
select( INDEX_ESTABELECIMENTO );
|
|
try
|
|
{
|
|
estabelecimento = ( EstabelecimentoData ) JDO.load( EstabelecimentoData.class, id );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar o estabelecimento", true );
|
|
estabelecimento = null;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
estabelecimento = null;
|
|
}
|
|
reload( INDEX_ESTABELECIMENTO );
|
|
}
|
|
else if( source.equals( trabalhadorPanel ) )
|
|
{
|
|
id = trabalhadorPanel.getSelectedTrabalhador();
|
|
//System.out.println( "trabalhadorid: " + id );
|
|
if( id != null )
|
|
{
|
|
try
|
|
{
|
|
trabalhador = (TrabalhadorData) JDO.load( TrabalhadorData.class, id );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar o trabalhador", true );
|
|
trabalhador = null;
|
|
}
|
|
select( INDEX_TRABALHADOR );
|
|
}
|
|
else
|
|
{
|
|
trabalhador = null;
|
|
}
|
|
|
|
reload( INDEX_TRABALHADOR );
|
|
}
|
|
}
|
|
|
|
public boolean delete( int index )
|
|
{
|
|
String yes = "Sim";
|
|
String no = "N\u00e3o";
|
|
switch( index )
|
|
{
|
|
case INDEX_EMPRESA:
|
|
if( empresa == null )
|
|
{
|
|
return false;
|
|
}
|
|
if( JOptionPane.showOptionDialog(
|
|
this, "Tem a certeza que quer apagar esta Empresa?", "Apagar Empresa...",
|
|
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, new String[]{ no, yes }, no ) == 1 )
|
|
{
|
|
try
|
|
{
|
|
empresa.delete();
|
|
empresa = null;
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a apagar", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
break;
|
|
case INDEX_ESTABELECIMENTO:
|
|
if( estabelecimento == null )
|
|
{
|
|
return false;
|
|
}
|
|
if( JOptionPane.showOptionDialog(
|
|
this, "Tem a certeza que quer apagar este Estabelecimento?", "Apagar Estabelecimento...",
|
|
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, new String[]{ no, yes }, no ) == 1 )
|
|
{
|
|
try
|
|
{
|
|
estabelecimento.delete();
|
|
estabelecimento = null;
|
|
reload( INDEX_EMPRESA );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a apagar", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
break;
|
|
case INDEX_TRABALHADOR:
|
|
if( trabalhador == null )
|
|
{
|
|
return false;
|
|
}
|
|
if( JOptionPane.showOptionDialog(
|
|
this, "Tem a certeza que quer apagar este Trabalhador?", "Apagar Trabalhador...",
|
|
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, new String[]{ no, yes }, no ) == 1 )
|
|
{
|
|
try
|
|
{
|
|
TrabalhadorData trabalhadorAux = trabalhador;
|
|
trabalhador = null;
|
|
trabalhadorAux.delete();
|
|
|
|
reload( INDEX_ESTABELECIMENTO );
|
|
try
|
|
{
|
|
trabalhadorPanel.reloaList();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a apagar", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private void excel()
|
|
{
|
|
FileDialog fd = new FileDialog( this, "Escolha um ficheiro Excel:", FileDialog.LOAD );
|
|
fd.setDirectory( System.getProperty( "user.home" ) );
|
|
fd.setFilenameFilter( new FilenameFilter() {
|
|
public boolean accept( File dir, String name )
|
|
{
|
|
return (name!=null) && (name.indexOf( ".xls" ) != -1);
|
|
}
|
|
} );
|
|
fd.setVisible( true );
|
|
//String filename = "c:\\test.xls";
|
|
String filename = fd.getFile();
|
|
if( filename != null )
|
|
{
|
|
filename = fd.getDirectory() + File.separator + filename;
|
|
try
|
|
{
|
|
Importer importer = new Importer( this, filename, true, Importer.TYPE_ADMISSAO );
|
|
Hashtable hash[] = importer.getMultipleData();
|
|
Vector activate = new Vector();
|
|
if( hash != null )
|
|
{
|
|
// load all (active) trabalhadores for this company
|
|
IDObject trab[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllTrabalhadoresForEmpresa(
|
|
( Integer )empresa.get( EmpresaData.ID ) );
|
|
Hashtable trabalhadores = new Hashtable();
|
|
for( int i = 0; i < trab.length; ++i )
|
|
{
|
|
trabalhadores.put( trab[ i ].toString().trim().toLowerCase(), trab[ i ].getID() );
|
|
}
|
|
// load all active estabelecimentos for this company
|
|
IDObject estab[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllEstabelecimentosForEmpresa(
|
|
( Integer )empresa.get( EmpresaData.ID ) );
|
|
Hashtable estabelecimentos = new Hashtable();
|
|
for( int i = 0; i < estab.length; ++i )
|
|
{
|
|
estabelecimentos.put( estab[ i ].toString().trim().toLowerCase(), estab[ i ].getID() );
|
|
}
|
|
Hashtable estabCache = new Hashtable();
|
|
for( int i = 0; i < hash.length; ++i )
|
|
{
|
|
// if( hash[ i ] == null )
|
|
// {
|
|
// continue;
|
|
// }
|
|
for( int j = 0; j < Importer.NAMES.length; ++j )
|
|
{
|
|
if( hash[ i ] == null )
|
|
{
|
|
continue;
|
|
}
|
|
Object value = hash[ i ].remove( Importer.NAMES[ j ] );
|
|
if( Importer.NAMES[ j ].equals( Importer.NOME ) )
|
|
{
|
|
if( value != null
|
|
&& trabalhadores.get( value.toString().trim().toLowerCase() ) == null )
|
|
{
|
|
trabalhadores.put( value.toString().trim().toLowerCase(), value );
|
|
|
|
hash[ i ].put( TR_IMPORT_NAMES_TO_TRAB.get( Importer.NOME ),
|
|
value.toString().trim() );
|
|
hash[ i ].put( TrabalhadorData.NOME_PLAIN,
|
|
com.evolute.utils.strings.StringPlainer.convertString( value.toString().trim(), false, false ) );
|
|
}
|
|
else
|
|
{
|
|
Integer tID = (Integer) trabalhadores.get( value.toString().trim().toLowerCase() );
|
|
if( tID != null )
|
|
{
|
|
activate.add( tID );
|
|
}
|
|
hash[ i ] = null;
|
|
}
|
|
}
|
|
else if( Importer.NAMES[ j ].equals( Importer.LOCAL_TRABALHO ) )
|
|
{
|
|
if( value == null )
|
|
{
|
|
value = "sede";
|
|
}
|
|
Integer eid = ( Integer )estabelecimentos.get( value.toString().trim().toLowerCase() );
|
|
EstabelecimentoData esta;
|
|
if( eid == null )
|
|
{
|
|
// save this estab
|
|
esta = new EstabelecimentoData();
|
|
esta.set( EstabelecimentoData.EMPRESA, empresa );
|
|
esta.set( EstabelecimentoData.NOME, value.toString().trim() );
|
|
esta.set( EstabelecimentoData.NOME_PLAIN, com.evolute.utils.strings.StringPlainer.convertString( value.toString().trim(), false, false ) );
|
|
esta.save();
|
|
estabelecimentos.put( value.toString().trim().toLowerCase(),
|
|
esta.get( EstabelecimentoData.ID ) );
|
|
|
|
}
|
|
else
|
|
{
|
|
esta = ( EstabelecimentoData )estabCache.get( value );
|
|
if( esta == null )
|
|
{
|
|
esta = (EstabelecimentoData) JDO.load( EstabelecimentoData.class, eid );
|
|
estabCache.put( value, esta );
|
|
}
|
|
}
|
|
//System.out.println( "Put " + i + " esta " + esta.debug() );
|
|
hash[ i ].put( TrabalhadorData.ESTABELECIMENTO,
|
|
esta );
|
|
hash[ i ].put( TR_IMPORT_NAMES_TO_TRAB.get( Importer.LOCAL_TRABALHO ),
|
|
value.toString().trim() );
|
|
}
|
|
else
|
|
{
|
|
if( Importer.NAMES[ j ].indexOf( Importer.DATA_PREFIX ) == 0 )
|
|
{
|
|
value = DateUtils.guessDate( (String)value );
|
|
if( value != null )
|
|
{
|
|
hash[ i ].put( TR_IMPORT_NAMES_TO_TRAB.get( Importer.NAMES[ j ] ),
|
|
value );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( Importer.NAMES[ j ].equals( Importer.SEXO ) )
|
|
{
|
|
if( value == null || ( (String) value ).length() == 0 )
|
|
{
|
|
value = "m";
|
|
}
|
|
else
|
|
{
|
|
value = ( (String) value ).substring(0,1).toLowerCase();
|
|
if( !value.equals( "m" ) && !value.equals( "f" ) )
|
|
{
|
|
value = "m";
|
|
}
|
|
}
|
|
}
|
|
if( value != null )
|
|
{
|
|
hash[ i ].put( TR_IMPORT_NAMES_TO_TRAB.get( Importer.NAMES[ j ] ),
|
|
value.toString().trim() );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for( int i = 0; i < hash.length; ++i )
|
|
{
|
|
if( hash[ i ] == null )
|
|
{
|
|
continue;
|
|
}
|
|
// save trab
|
|
TrabalhadorData tr = new TrabalhadorData();
|
|
tr.setHashData( hash[ i ] );
|
|
// o estabelecimento nao faz parte da lista por causa do UI
|
|
tr.set( TrabalhadorData.ESTABELECIMENTO,
|
|
hash[ i ].get( TrabalhadorData.ESTABELECIMENTO ) );
|
|
tr.set( TrabalhadorData.PERFIL, new Integer( 1 ) );
|
|
// System.out.println( "T: " + i + "\n" + tr.debug() );
|
|
tr.save();
|
|
}
|
|
for( int i = 0; i < activate.size(); i++ )
|
|
{
|
|
TrabalhadorData trabalhadorR = (TrabalhadorData)JDO.load( TrabalhadorData.class, ( Integer ) activate.elementAt( i ) );
|
|
trabalhadorR.set( TrabalhadorData.INACTIVO, "n" );
|
|
trabalhadorR.save();
|
|
}
|
|
}
|
|
reload( INDEX_EMPRESA );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
JOptionPane.showMessageDialog( this, "Erro a importar", "Erro...", JOptionPane.ERROR_MESSAGE );
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void excelDemissoes()
|
|
{
|
|
FileDialog fd = new FileDialog( this, "Escolha um ficheiro Excel:", FileDialog.LOAD );
|
|
fd.setDirectory( System.getProperty( "user.home" ) );
|
|
fd.setFilenameFilter( new FilenameFilter() {
|
|
public boolean accept( File dir, String name )
|
|
{
|
|
return (name!=null) && (name.indexOf( ".xls" ) != -1);
|
|
}
|
|
} );
|
|
fd.setVisible( true );
|
|
//String filename = "c:\\test.xls";
|
|
String filename = fd.getFile();
|
|
if( filename != null )
|
|
{
|
|
filename = fd.getDirectory() + File.separator + filename;
|
|
try
|
|
{
|
|
Importer importer = new Importer( this, filename, true, Importer.TYPE_DEMISSAO );
|
|
Hashtable hash[] = importer.getMultipleData();
|
|
Vector invalidos = new Vector();
|
|
Vector validos = new Vector();
|
|
Vector semData = new Vector();
|
|
if( hash != null )
|
|
{
|
|
// load all (active) trabalhadores for this company
|
|
IDObject trab[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllTrabalhadoresForEmpresa(
|
|
( Integer )empresa.get( EmpresaData.ID ) );
|
|
Hashtable trabalhadores = new Hashtable();
|
|
for( int i = 0; i < trab.length; ++i )
|
|
{
|
|
trabalhadores.put( StringPlainer.convertString(
|
|
trab[ i ].toString().trim().toLowerCase() ), trab[ i ].getID() );
|
|
}
|
|
Hashtable estabCache = new Hashtable();
|
|
for( int i = 0; i < hash.length; ++i )
|
|
{
|
|
// if( hash[ i ] == null )
|
|
// {
|
|
// continue;
|
|
// }
|
|
for( int j = 0; j < Importer.NAMES_DEMISSAO.length; ++j )
|
|
{
|
|
if( hash[ i ] == null )
|
|
{
|
|
continue;
|
|
}
|
|
Object value = hash[ i ].remove( Importer.NAMES_DEMISSAO[ j ] );
|
|
if( Importer.NAMES_DEMISSAO[ j ].equals( Importer.NOME ) )
|
|
{
|
|
System.out.println( "VALUE NOME: " + value );
|
|
if( value != null
|
|
&& !trabalhadores.containsKey( StringPlainer.convertString( value.toString().trim().toLowerCase() ) ) )
|
|
{
|
|
invalidos.add( new String[]{ value.toString().trim(),
|
|
StringPlainer.convertString( value.toString().trim(), false, false ) } );
|
|
hash[ i ] = null;
|
|
}
|
|
else if( value != null )
|
|
{
|
|
Integer tID = (Integer) trabalhadores.get( StringPlainer.convertString( value.toString().trim().toLowerCase() ) );
|
|
hash[ i ].put( TrabalhadorData.ID, tID );
|
|
validos.add( new String[]{ value.toString().trim(),
|
|
StringPlainer.convertString( value.toString().trim(), false, false ) } );
|
|
}
|
|
else
|
|
{
|
|
hash[ i ] = null;
|
|
}
|
|
}
|
|
else if( Importer.NAMES_DEMISSAO[ j ].equals( Importer.DATA_DEMISSAO ) )
|
|
{
|
|
value = DateUtils.guessDate( (String)value );
|
|
if( value != null )
|
|
{
|
|
hash[ i ].put( TR_IMPORT_NAMES_TO_DEMISSOES.get( Importer.NAMES_DEMISSAO[ j ] ),
|
|
value );
|
|
}
|
|
else
|
|
{
|
|
hash[ i ] = null;
|
|
validos.removeElementAt( validos.size() - 1 );
|
|
semData.add( new String[]{ value.toString().trim(),
|
|
StringPlainer.convertString( value.toString().trim(), false, false ) } );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//System.out.println( "HASH.LENGTH: " + hash.length );
|
|
for( int i = 0; i < hash.length; ++i )
|
|
{
|
|
//System.out.println( "HASH[ " + i + " ]: " + hash[ i ] );
|
|
if( hash[ i ] == null )
|
|
{
|
|
//System.out.println( "TRABALHADOR:continue" );
|
|
continue;
|
|
}
|
|
//System.out.println( "TRABALHADOR:not continue" );
|
|
TrabalhadorData tr = (TrabalhadorData)JDO.load( TrabalhadorData.class, ( Integer ) hash[ i ].get( TrabalhadorData.ID ) );
|
|
//System.out.println( "TRABALHADORID: " + tr.get( TrabalhadorData.ID ) );
|
|
tr.set( TrabalhadorData.DATA_DEMISSAO, hash[ i ].get( TrabalhadorData.DATA_DEMISSAO ) );
|
|
//System.out.println( "TRABALHADORDEMISSAO: " + tr.get( TrabalhadorData.DATA_DEMISSAO ) );
|
|
tr.save();
|
|
}
|
|
StringBuffer buff = new StringBuffer( "" );
|
|
buff.append( "Demitidos:\n" );
|
|
for( int i = 0; i < validos.size(); i++ )
|
|
{
|
|
buff.append( ( ( String [] ) validos.elementAt( i ) )[ 1 ] + "\n" );
|
|
}
|
|
buff.append( "\nSem data ou data inv\u00e1lida:\n" );
|
|
for( int i = 0; i < semData.size(); i++ )
|
|
{
|
|
buff.append( ( ( String [] ) semData.elementAt( i ) )[ 1 ] + "\n" );
|
|
}
|
|
buff.append( "\nN\u00e3o encontrados na base de dados:\n" );
|
|
for( int i = 0; i < invalidos.size(); i++ )
|
|
{
|
|
buff.append( ( ( String [] ) invalidos.elementAt( i ) )[ 1 ] + "\n" );
|
|
}
|
|
new LongMessageDialog( this, false, buff.toString(), new Dimension( 600, 500 ) );
|
|
}
|
|
reload( INDEX_EMPRESA );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
JOptionPane.showMessageDialog( this, "Erro a importar", "Erro...", JOptionPane.ERROR_MESSAGE );
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public void mudarEstabelecimento()
|
|
{
|
|
ListAction lAction = new ListAction(){
|
|
public String getListActionName()
|
|
{
|
|
return "Escolher";
|
|
}
|
|
|
|
public boolean executeListAction( int line, Object value )
|
|
{
|
|
if( trabalhador == null )
|
|
{
|
|
return false;
|
|
}
|
|
try
|
|
{
|
|
EstabelecimentoData eatabelecimentoNovo = (EstabelecimentoData)JDO.load( EstabelecimentoData.class, ( (IDObject)value ).getID() );
|
|
trabalhador.set( TrabalhadorData.ESTABELECIMENTO, eatabelecimentoNovo );
|
|
trabalhador.save();
|
|
trabalhador = null;
|
|
reload( INDEX_ESTABELECIMENTO );
|
|
trabalhadorPanel.reloaList();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
|
|
try
|
|
{
|
|
IDObject estab[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllEstabelecimentosForEmpresa(
|
|
( Integer )empresa.get( EmpresaData.ID ) );
|
|
ListActionDialog dialog = new ListActionDialog( this, "Escolher Estabelecimento", new String []{ "Designa\u00e7\u00e3o" },
|
|
new Vector( Arrays.asList( estab ) ), lAction );
|
|
dialog.setSize( 250, 200 );
|
|
dialog.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void setJDOObject( JDOObject object )
|
|
{
|
|
empresa = null;
|
|
estabelecimento = null;
|
|
trabalhador = null;
|
|
reload(0);
|
|
if( object instanceof TrabalhadorData )
|
|
{
|
|
tabbedPane.setSelectedIndex( 1 );
|
|
trabalhador = (TrabalhadorData) object;
|
|
estabelecimento = (EstabelecimentoData)trabalhador.get( TrabalhadorData.ESTABELECIMENTO );
|
|
empresa = (EmpresaData)estabelecimento.get( EstabelecimentoData.EMPRESA );
|
|
}
|
|
else if( object instanceof EstabelecimentoData )
|
|
{
|
|
tabbedPane.setSelectedIndex( 0 );
|
|
estabelecimento = (EstabelecimentoData)object;
|
|
empresa = (EmpresaData)estabelecimento.get( EstabelecimentoData.EMPRESA );
|
|
}
|
|
else if( object instanceof EmpresaData )
|
|
{
|
|
empresa = (EmpresaData)object;
|
|
}
|
|
if( empresa != null )
|
|
{
|
|
try
|
|
{
|
|
elementosProtocolo =
|
|
clientesProvider.getElementosProtocoloForEmpresa(
|
|
( Integer ) empresa.get( EmpresaData.ID ), 2 );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar dados do protocolo.", true );
|
|
elementosProtocolo = new Integer[2][0];
|
|
}
|
|
}
|
|
reload(0);
|
|
if( empresa != null )
|
|
{
|
|
select( INDEX_EMPRESA );
|
|
}
|
|
if( estabelecimento != null )
|
|
{
|
|
empresaPanel.setSelectedEstabelecimento( estabelecimento );
|
|
}
|
|
if( trabalhador != null )
|
|
{
|
|
trabalhadorPanel.setSelectedTrabalhador( trabalhador );
|
|
}
|
|
}
|
|
|
|
public void postSetup()
|
|
{
|
|
}
|
|
|
|
public void restaurarEmpresa()
|
|
{
|
|
ListAction lAction = new ListAction(){
|
|
public String getListActionName()
|
|
{
|
|
return "Restaurar";
|
|
}
|
|
|
|
public boolean executeListAction( int line, Object value )
|
|
{
|
|
try
|
|
{
|
|
EmpresaData empresaR = (EmpresaData)JDO.load( EmpresaData.class, ( (IDObject)value ).getID() );
|
|
empresaR.set( EmpresaData.INACTIVO, "n" );
|
|
empresaR.save();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a restaurar a Empresa", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
|
|
try
|
|
{
|
|
IDObject empresas[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllEmpresasDeleted();
|
|
ListActionDialog dialog = new ListActionDialog( this, "Restaurar Empresa", new String []{ "Designa\u00e7\u00e3o Social" },
|
|
new Vector( Arrays.asList( empresas ) ), lAction );
|
|
dialog.setSize( 250, 200 );
|
|
dialog.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a criar lista de Empresas", true );
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void restaurarEstabelecimento()
|
|
{
|
|
ListAction lAction = new ListAction(){
|
|
public String getListActionName()
|
|
{
|
|
return "Restaurar";
|
|
}
|
|
|
|
public boolean executeListAction( int line, Object value )
|
|
{
|
|
try
|
|
{
|
|
EstabelecimentoData estabelecimentoR = (EstabelecimentoData)JDO.load( EstabelecimentoData.class, ( (IDObject)value ).getID() );
|
|
estabelecimentoR.set( EstabelecimentoData.INACTIVO, "n" );
|
|
estabelecimentoR.save();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a restaurar o Estabelecimento", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
if( empresa == null )
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
IDObject estabelecimentos[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllEstabelecimentosDeletedForEmpresa( ( Integer ) empresa.get( EmpresaData.ID ) );
|
|
ListActionDialog dialog = new ListActionDialog( this, "Restaurar Estabelecimento", new String []{ "Nome" },
|
|
new Vector( Arrays.asList( estabelecimentos ) ), lAction );
|
|
dialog.setSize( 250, 200 );
|
|
dialog.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a criar lista de Estabelecimentos", true );
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void restaurarTrabalhador()
|
|
{
|
|
ListAction lAction = new ListAction(){
|
|
public String getListActionName()
|
|
{
|
|
return "Restaurar";
|
|
}
|
|
|
|
public boolean executeListAction( int line, Object value )
|
|
{
|
|
try
|
|
{
|
|
TrabalhadorData trabalhadorR = (TrabalhadorData)JDO.load( TrabalhadorData.class, ( (IDObject)value ).getID() );
|
|
trabalhadorR.set( TrabalhadorData.INACTIVO, "n" );
|
|
trabalhadorR.save();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a restaurar o Trabalhador", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
if( estabelecimento == null )
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
IDObject trabalhadores[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllTrabalhadoresDeletedForEstabelecimento( ( Integer ) estabelecimento.get( EstabelecimentoData.ID ) );
|
|
ListActionDialog dialog = new ListActionDialog( this, "Restaurar Trabalhador", new String []{ "Nome" },
|
|
new Vector( Arrays.asList( trabalhadores ) ), lAction );
|
|
dialog.setSize( 250, 200 );
|
|
dialog.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a criar lista de Trabalhadores", true );
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
protected void utilizadorWeb( boolean siprp )
|
|
{
|
|
// new Exception().printStackTrace();
|
|
if( !siprp && empresa == null )
|
|
{
|
|
JOptionPane.showMessageDialog( this, "Tem de escolher uma empresa", "Erro...",
|
|
JOptionPane.ERROR_MESSAGE );
|
|
}
|
|
try
|
|
{
|
|
|
|
UserWindow window = new UserWindow( this, siprp ? null : ( Integer ) empresa.get( EmpresaData.ID ) );
|
|
window.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a estabelecer a liga\u00e7\u00e3o com a p\u00e1gina", true );
|
|
}
|
|
}
|
|
|
|
public void noticias()
|
|
{
|
|
try
|
|
{
|
|
NoticiasDialog dialog = new NoticiasDialog( this );
|
|
dialog.setVisible( true );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar not\u00edcias", true );
|
|
}
|
|
}
|
|
|
|
public void imprimirFicha()
|
|
{
|
|
ListAction lAction = new ListAction(){
|
|
public String getListActionName()
|
|
{
|
|
return "Escolher";
|
|
}
|
|
|
|
public boolean executeListAction( int line, Object value )
|
|
{
|
|
if( trabalhador == null )
|
|
{
|
|
return false;
|
|
}
|
|
try
|
|
{
|
|
printFicha(( (IDObject)value ).getID() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
if( trabalhador == null )
|
|
{
|
|
return;
|
|
}
|
|
Vector linhas;
|
|
try
|
|
{
|
|
IDObject fichas[] = ( ( FichaDataProvider )FichaDataProvider.getProvider()
|
|
).getAllFichasForTrabalhador( ( Integer ) trabalhador.get( TrabalhadorData.ID ) );
|
|
linhas = new Vector( Arrays.asList( fichas ) );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a criar lista de Fichas anteriores", true );
|
|
return;
|
|
}
|
|
ListActionDialog dialog = new ListActionDialog( this, "Imprimir Fichas Anteriores", new String[]{ "Data" },
|
|
linhas, lAction );
|
|
dialog.setSize( 250, 200 );
|
|
dialog.setVisible( true );
|
|
}
|
|
|
|
private void printFicha( Integer exameID )
|
|
throws Exception
|
|
{
|
|
// MetaObject exame = fdpProvider.load( fdpProvider.EXAMES, new DBKey( exameID ) );
|
|
ExameData exame = (ExameData) JDO.load( ExameData.class, exameID );
|
|
byte pdf[] = (byte []) exame.get( ExameData.PDF );
|
|
if( exame == null )
|
|
{
|
|
throw new Exception( "N\u00e3o existe exame" );
|
|
}
|
|
TrabalhadorData trabalhadorExame = ( TrabalhadorData ) exame.get( ExameData.TRABALHADOR );
|
|
String nomeFicheiro = StringPlainer.convertString( ( String ) trabalhadorExame.get( TrabalhadorData.NOME ) );
|
|
nomeFicheiro.replaceAll( " ", "_" );
|
|
ExamePDF ePDF = new ExamePDF();
|
|
ePDF.print( pdf, nomeFicheiro );
|
|
}
|
|
|
|
public void setTracker( SIPRPTracker tracker )
|
|
{
|
|
this.tracker = tracker;
|
|
estabelecimentoPanel.setTracker( tracker );
|
|
trabalhadorPanel.setTracker( tracker );
|
|
}
|
|
|
|
public void imprimirEtiquetaTrabalhador()
|
|
{
|
|
if( trabalhador == null )
|
|
{
|
|
return;
|
|
}
|
|
String nomeEmpresa = ( ( String ) empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) );
|
|
String nomeTrabalhador = ( ( String ) trabalhador.get( TrabalhadorData.NOME ) );
|
|
String numeroMecanografico = ( ( String ) trabalhador.get( TrabalhadorData.NUMERO_MECANOGRAFICO ) );
|
|
String sexo = "m".equals( trabalhador.get( TrabalhadorData.SEXO ) ) ? "M" : "F";
|
|
Date data = ( Date ) trabalhador.get( TrabalhadorData.DATA_NASCIMENTO );
|
|
String dataNascimento = data != null ? DF.format( data ) : "--";
|
|
String nacionalidade = ( String ) trabalhador.get( TrabalhadorData.NACIONALIDADE );
|
|
data = ( Date ) trabalhador.get( TrabalhadorData.DATA_ADMISSAO );
|
|
String dataAdmissao = data != null ? DF.format( data ) : "--";
|
|
String categoria = ( String ) trabalhador.get( TrabalhadorData.CATEGORIA );
|
|
String funcao = ( String ) trabalhador.get( TrabalhadorData.FUNCAO_PROPOSTA );
|
|
try
|
|
{
|
|
Integer id = clientesProvider.getEtiquetaID();
|
|
EtiquetaData etiqueta = ( EtiquetaData ) JDO.load( EtiquetaData.class, id );
|
|
EtiquetaPrinter printer = new EtiquetaPrinter( etiqueta );
|
|
Vector<Object[]> linhas = new Vector<Object[]>();
|
|
linhas.add( new Object[]{ nomeEmpresa, new Double( 1.0 ) } );
|
|
linhas.add( new Object[]{ nomeTrabalhador, new Double( 1.0 ) } );
|
|
linhas.add( new Object[]{ "N\u00ba mec.:" + ( numeroMecanografico != null ? numeroMecanografico.toString() : "" ), new Double( 0.80 ),
|
|
"Sexo:" + sexo, new Double( 0.20 ) } );
|
|
linhas.add( new Object[]{ "Data nasc:" + dataNascimento, new Double( 0.4 ),
|
|
"Nacionalidade:" + nacionalidade, new Double( 0.85 ) } );
|
|
linhas.add( new Object[]{ "Data adm.:" + dataAdmissao, new Double( 0.4 ),
|
|
"Categoria:" + categoria, new Double( 0.6 ) } );
|
|
linhas.add( new Object[]{ "Fun\u00e7\u00e3o:" + funcao, new Double( 1.0 ) } );
|
|
printer.print( linhas );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar etiqueta.", true );
|
|
}
|
|
}
|
|
|
|
public void imprimirEtiquetaEstabelecimento()
|
|
{
|
|
if( estabelecimento == null )
|
|
{
|
|
return;
|
|
}
|
|
String nomeEmpresa = ( ( String ) empresa.get( EmpresaData.DESIGNACAO_SOCIAL ) );
|
|
String nomeEstabelecimento = ( ( String ) estabelecimento.get( EstabelecimentoData.NOME ) );
|
|
ContactoData contacto = ( ContactoData )estabelecimento.get( EstabelecimentoData.CONTACTO );
|
|
String nomeContacto = "";
|
|
if( contacto != null )
|
|
{
|
|
nomeContacto = ( String )contacto.get( ContactoData.NOME );
|
|
}
|
|
String morada = ( ( String ) estabelecimento.get( EstabelecimentoData.MORADA ) );
|
|
String codigoPostal = ( ( String ) estabelecimento.get( EstabelecimentoData.CODIGO_POSTAL ) );
|
|
String local = ( ( String ) estabelecimento.get( EstabelecimentoData.LOCALIDADE ) );
|
|
|
|
try
|
|
{
|
|
Integer id = clientesProvider.getEtiquetaID();
|
|
EtiquetaData etiqueta = ( EtiquetaData ) JDO.load( EtiquetaData.class, id );
|
|
EtiquetaPrinter printer = new EtiquetaPrinter( etiqueta );
|
|
Vector<Object[]> linhas = new Vector<Object[]>();
|
|
linhas.add( new Object[]{ nomeEmpresa, new Double( 1.0 ) } );
|
|
linhas.add( new Object[]{ nomeContacto, new Double( 1.0 ) } );
|
|
linhas.add( new Object[]{ morada, new Double( 1.0 ) } );
|
|
linhas.add( new Object[]{ codigoPostal + " " + local, new Double( 1.0 ) } );
|
|
printer.print( linhas );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar etiqueta.", true );
|
|
}
|
|
}
|
|
}
|