diff --git a/trunk/siprp/lembretes/LembretesDataProvider.java b/trunk/siprp/lembretes/LembretesDataProvider.java index a0bf722f..77ff4550 100644 --- a/trunk/siprp/lembretes/LembretesDataProvider.java +++ b/trunk/siprp/lembretes/LembretesDataProvider.java @@ -13,7 +13,9 @@ import com.evolute.utils.Singleton; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; +import com.evolute.utils.sql.Assignment; import com.evolute.utils.sql.Field; +import com.evolute.utils.sql.Insert; import com.evolute.utils.sql.Select; import java.util.Date; @@ -71,7 +73,7 @@ public class LembretesDataProvider return tipos; } - public void criarLembretes( Integer tipoID, + public void criarLembrete( Integer tipoID, Date data, String descricao, String texto, @@ -82,9 +84,25 @@ public class LembretesDataProvider Integer marcacaoTrabalhadorID, boolean enviarEmail, Integer periodicidadeDias, - Integer periodicidade_meses ) + Integer periodicidadeMeses ) throws Exception { - + Insert insert = + new Insert( "lembretes", + new Assignment[]{ + new Assignment( new Field( "tipo_id" ), tipoID ), + new Assignment( new Field( "data" ), data ), + new Assignment( new Field( "descricao" ), descricao ), + new Assignment( new Field( "texto" ), texto ), + new Assignment( new Field( "empresa_id" ), empresaID ), + new Assignment( new Field( "estabelecimento_id" ), estabelecimentoID ), + new Assignment( new Field( "trabalhador_id" ), trabalhadorID ), + new Assignment( new Field( "marcacao_estabelecimento_id" ), marcacaoEstabelecimentoID ), + new Assignment( new Field( "marcacao_trabalhador_id" ), marcacaoTrabalhadorID ), + new Assignment( new Field( "enviar_email" ), enviarEmail ? "y" : "n" ), + new Assignment( new Field( "periodicidade_dias" ), periodicidadeDias ), + new Assignment( new Field( "periodicidade_meses" ), periodicidadeMeses ) } ); + EXECUTER.executeQuery( insert ); } + } diff --git a/trunk/siprp/medicina/presencas/PresencasDataProvider.java b/trunk/siprp/medicina/presencas/PresencasDataProvider.java index ac83da39..5019f03b 100644 --- a/trunk/siprp/medicina/presencas/PresencasDataProvider.java +++ b/trunk/siprp/medicina/presencas/PresencasDataProvider.java @@ -16,6 +16,7 @@ import com.evolute.utils.sql.Assignment; import com.evolute.utils.sql.Field; import com.evolute.utils.sql.Update; import siprp.medicina.MedicinaConstants; +import siprp.medicina.MedicinaDataProvider; /** * @@ -27,6 +28,7 @@ public class PresencasDataProvider private static final Object LOCK = new Object(); private static PresencasDataProvider instance = null; + private MedicinaDataProvider medicinaProvider; private Executer EXECUTER; /** Creates a new instance of PresencasDataProvider */ @@ -35,6 +37,7 @@ public class PresencasDataProvider { DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); EXECUTER = dbm.getSharedExecuter( this ); + medicinaProvider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider(); } public static PresencasDataProvider getProvider() @@ -50,12 +53,79 @@ public class PresencasDataProvider return instance; } + protected void apagarDetalhesRealizacao( Integer marcacaoID ) + throws Exception + { + medicinaProvider.deleteDetalhesRealziadosForMarcacao( marcacaoID ); + } + public void marcarFaltou( Integer id ) throws Exception { + apagarDetalhesRealizacao( id ); + Update update = + new Update( "marcacoes_trabalhador", + new Assignment[]{ + new Assignment( new Field( "realizada" ), "n" ), + new Assignment( new Field( "estado" ), new Integer( ESTADO_FALTOU ) ) + }, + new Field( "id" ).isEqual( id ) ); + EXECUTER.executeQuery( update ); + } + + public void marcarDesmarcadoSHST( Integer id ) + throws Exception + { + apagarDetalhesRealizacao( id ); + Update update = + new Update( "marcacoes_trabalhador", + new Assignment[]{ + new Assignment( new Field( "realizada" ), "n" ), + new Assignment( new Field( "estado" ), new Integer( ESTADO_DESMARCADO_EMPRESA ) ) + }, + new Field( "id" ).isEqual( id ) ); + EXECUTER.executeQuery( update ); + } + + public void marcarDesmarcadoTrabalhador( Integer id ) + throws Exception + { + apagarDetalhesRealizacao( id ); + Update update = + new Update( "marcacoes_trabalhador", + new Assignment[]{ + new Assignment( new Field( "realizada" ), "n" ), + new Assignment( new Field( "estado" ), new Integer( ESTADO_DESMARCADO_TRABALHADOR ) ) + }, + new Field( "id" ).isEqual( id ) ); + EXECUTER.executeQuery( update ); + } + + public void marcarRealizado( Integer id, Integer grupos[] ) + throws Exception + { + apagarDetalhesRealizacao( id ); + medicinaProvider.setDetalhesRealziadosForMarcacao( id, grupos ); + Update update = + new Update( "marcacoes_trabalhador", + new Assignment[]{ + new Assignment( new Field( "realizada" ), "y" ), + new Assignment( new Field( "estado" ), new Integer( ESTADO_REALIZADO ) ) + }, + new Field( "id" ).isEqual( id ) ); + EXECUTER.executeQuery( update ); + } + + public void marcarParcialmenteRealizado( Integer id, Integer grupos[] ) + throws Exception + { + apagarDetalhesRealizacao( id ); + medicinaProvider.setDetalhesRealziadosForMarcacao( id, grupos ); Update update = new Update( "marcacoes_trabalhador", new Assignment[]{ + new Assignment( new Field( "realizada" ), "n" ), + new Assignment( new Field( "estado" ), new Integer( ESTADO_PARCIALMENTE_REALIZADO ) ) }, new Field( "id" ).isEqual( id ) ); EXECUTER.executeQuery( update ); diff --git a/trunk/siprp/medicina/presencas/actions/DesmarcadoSHSTAction.java b/trunk/siprp/medicina/presencas/actions/DesmarcadoSHSTAction.java index d3e163aa..7cf7717a 100644 --- a/trunk/siprp/medicina/presencas/actions/DesmarcadoSHSTAction.java +++ b/trunk/siprp/medicina/presencas/actions/DesmarcadoSHSTAction.java @@ -9,9 +9,11 @@ package siprp.medicina.presencas.actions; +import com.evolute.utils.ui.DialogException; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import siprp.medicina.presencas.Presenca; +import siprp.medicina.presencas.PresencasDataProvider; /** * @@ -35,6 +37,22 @@ public class DesmarcadoSHSTAction extends AbstractAction public void actionPerformed(ActionEvent e) { + try + { + PresencasDataProvider provider = PresencasDataProvider.getProvider(); + for( int n = 0; n < presencas.length; n++ ) + { + provider.marcarDesmarcadoSHST( presencas[ n ].getID() ); + } + if( cardinality == SINGLE ) + { + setEnabled( false ); + } + } + catch( Exception ex ) + { + DialogException.showExceptionMessage( ex, "Erro a marcar", true ); + } } } diff --git a/trunk/siprp/medicina/presencas/actions/DesmarcadoTrabalhadorAction.java b/trunk/siprp/medicina/presencas/actions/DesmarcadoTrabalhadorAction.java index 43ffc82c..93085547 100644 --- a/trunk/siprp/medicina/presencas/actions/DesmarcadoTrabalhadorAction.java +++ b/trunk/siprp/medicina/presencas/actions/DesmarcadoTrabalhadorAction.java @@ -9,9 +9,11 @@ package siprp.medicina.presencas.actions; +import com.evolute.utils.ui.DialogException; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import siprp.medicina.presencas.Presenca; +import siprp.medicina.presencas.PresencasDataProvider; /** * @@ -30,6 +32,16 @@ public class DesmarcadoTrabalhadorAction extends AbstractAction public void actionPerformed(ActionEvent e) { + try + { + PresencasDataProvider provider = PresencasDataProvider.getProvider(); + provider.marcarDesmarcadoTrabalhador( presenca.getID() ); + setEnabled( false ); + } + catch( Exception ex ) + { + DialogException.showExceptionMessage( ex, "Erro a marcar", true ); + } } } diff --git a/trunk/siprp/medicina/presencas/actions/FaltouAction.java b/trunk/siprp/medicina/presencas/actions/FaltouAction.java index 39e02c3d..035c8dd5 100644 --- a/trunk/siprp/medicina/presencas/actions/FaltouAction.java +++ b/trunk/siprp/medicina/presencas/actions/FaltouAction.java @@ -9,9 +9,11 @@ package siprp.medicina.presencas.actions; +import com.evolute.utils.ui.DialogException; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import siprp.medicina.presencas.Presenca; +import siprp.medicina.presencas.PresencasDataProvider; /** * @@ -35,7 +37,21 @@ public class FaltouAction extends AbstractAction public void actionPerformed(ActionEvent e) { + try + { + PresencasDataProvider provider = PresencasDataProvider.getProvider(); + for( int n = 0; n < presencas.length; n++ ) + { + provider.marcarFaltou( presencas[ n ].getID() ); + } + if( cardinality == SINGLE ) + { + setEnabled( false ); + } + } + catch( Exception ex ) + { + DialogException.showExceptionMessage( ex, "Erro a marcar", true ); + } } - - }