/* * PresencasDataProvider.java * * Created on February 5, 2007, 5:51 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package siprp.medicina.presencas; import com.evolute.utils.Singleton; 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.Update; import java.util.Date; import siprp.lembretes.LembretesConstants; import siprp.lembretes.LembretesDataProvider; import siprp.medicina.MedicinaConstants; import siprp.medicina.MedicinaDataProvider; /** * * @author lflores */ public class PresencasDataProvider implements MedicinaConstants, LembretesConstants { private static final Object LOCK = new Object(); private static PresencasDataProvider instance = null; private MedicinaDataProvider medicinaProvider; private LembretesDataProvider lembretesProvider; private Executer EXECUTER; /** Creates a new instance of PresencasDataProvider */ public PresencasDataProvider() throws Exception { DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); EXECUTER = dbm.getSharedExecuter( this ); medicinaProvider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider(); lembretesProvider = LembretesDataProvider.getProvider(); } public static PresencasDataProvider getProvider() throws Exception { synchronized( LOCK ) { if( instance == null ) { instance = new PresencasDataProvider(); } } return instance; } protected void apagarDetalhesRealizacao( Integer marcacaoID ) throws Exception { medicinaProvider.deleteDetalhesRealizadosForMarcacao( 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 ); lembretesProvider.apagarLembreteByMarcacaoTrabalhadorID( id ); lembretesProvider.criarLembrete( lembretesProvider.getTipoLembreteByCodigo( CODE_REMARCACOES ).getID(), new Date(), "Trabalhador Faltou", null, null, null, null, null, id, false, null, null ); } 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 ); lembretesProvider.apagarLembreteByMarcacaoTrabalhadorID( id ); lembretesProvider.criarLembrete( lembretesProvider.getTipoLembreteByCodigo( CODE_REMARCACOES ).getID(), new Date(), "SIPRP Desmarcou", null, null, null, null, null, id, false, null, null ); } 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 ); lembretesProvider.apagarLembreteByMarcacaoTrabalhadorID( id ); lembretesProvider.criarLembrete( lembretesProvider.getTipoLembreteByCodigo( CODE_REMARCACOES ).getID(), new Date(), "Trabalhador Desmarcou", null, null, null, null, null, id, false, null, null ); } 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 ); lembretesProvider.apagarLembreteByMarcacaoTrabalhadorID( id ); } 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 ); lembretesProvider.apagarLembreteByMarcacaoTrabalhadorID( id ); lembretesProvider.criarLembrete( lembretesProvider.getTipoLembreteByCodigo( CODE_REMARCACOES ).getID(), new Date(), "N\u00e3 foram realizados todos os ECDs", null, null, null, null, null, id, false, null, null ); } }