diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/job/GeneracionRetencaoDiariaComissaoJob.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/job/GeneracionRetencaoDiariaComissaoJob.java index 313ac123e..8ac494940 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/job/GeneracionRetencaoDiariaComissaoJob.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/job/GeneracionRetencaoDiariaComissaoJob.java @@ -1,12 +1,20 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.job; +import java.util.Calendar; +import java.util.Date; + import org.apache.log4j.Logger; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.context.ApplicationContext; +import com.rjconsultores.ventaboletos.constantes.Constantes; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.service.CalculoComissaoService; +import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.service.CtrlFechamentoCaixaService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; public class GeneracionRetencaoDiariaComissaoJob implements Job { @@ -14,14 +22,35 @@ public class GeneracionRetencaoDiariaComissaoJob implements Job { private static Logger log = Logger.getLogger(GeneracionRetencaoDiariaComissaoJob.class); private CalculoComissaoService calculoComissaoService; + private CtrlFechamentoCaixaService ctrlFechamentoCaixaService; + private ConstanteService constanteService; @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { - - log.info("Inicio Job retencao diaria da comissao"); ApplicationContext appContext = AppContext.getApplicationContext(); calculoComissaoService = (CalculoComissaoService) appContext.getBean("calculoComissaoService"); - calculoComissaoService.retencaoAutomaticaComissao(); + ctrlFechamentoCaixaService = (CtrlFechamentoCaixaService) appContext.getBean("ctrlFechamentoCaixaService"); + constanteService = (ConstanteService) appContext.getBean("constanteService"); + + Constante reterComissao = constanteService.buscarPorNomeConstante(Constantes.RETER_COMISSAO_ADM_FECHAMENTO_CAIXA); + if(reterComissao == null || !"1".equals(reterComissao.getValorconstante()) ) { + log.info("Sistema nao configurado para reter a comissao diariamente apos o fechamento do caixa"); + return; + } + + Calendar cDataRetencao = Calendar.getInstance(); + cDataRetencao.add(Calendar.DAY_OF_MONTH, -1); + Date feccorte = cDataRetencao.getTime(); + + log.info("Verificando fechamento dos caixas, data: " + DateUtil.getStringDate(feccorte, "dd/MM/yyyy")); + if(!ctrlFechamentoCaixaService.autorizarExecutarRotinaRetencao(feccorte)) { + log.info("Fechamento dos caixas não disponiveis para retencao da comissao"); + return; + } + log.info("fechamento dos caixas concluido, executar rotina de retencao da comissao"); + + log.info("Inicio Job retencao diaria da comissao"); + calculoComissaoService.retencaoAutomaticaComissao(feccorte); log.info("Fim Job retencao diaria da comissao"); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java index ba99f71d4..709a31b2c 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyAppInit.java @@ -39,7 +39,6 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit { private static final String HORA_GENERACION_CORRIDA = "HORA_GENERACION_CORRIDA"; private static final String HORA_EXEC_CONFERENCIA_MOVIMENTO = "HORA_EXEC_CONFERENCIA_MOVIMENTO"; private static final String HORA_EXEC_MONITORAMENTO_REDUCAOZ = "HORA_EXEC_MONITORAMENTO_REDUCAOZ"; - private static final String HORA_EXEC_RETENCAO_DIARIA_COMISSAO = "HORA_EXEC_RETENCAO_DIARIA_COMISSAO"; private static Logger log = Logger.getLogger(MyAppInit.class); SchedulerFactory schedFact = new StdSchedulerFactory(); Scheduler sched; @@ -284,16 +283,12 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit { */ private void jobGeneracionRetencaoDiariaComissao() { try { - Integer[] hora = horaExecucion(HORA_EXEC_RETENCAO_DIARIA_COMISSAO); - if(hora ==null){ - log.info("Não existe hora cadastrada para o job GeneracionRetencaoDiariaComissaoJob. Verificar a constante HORA_EXEC_RETENCAO_DIARIA_COMISSAO"); - return; - } log.info("Início cadastro do job GeneracionRetencaoDiariaComissaoJob"); sched = schedFact.getScheduler(); + //Trigger trigger = TriggerUtils.makeMinutelyTrigger("generacionRetencaoDiariaComissaoTrigger", 5, 5); + Trigger trigger = TriggerUtils.makeHourlyTrigger("generacionRetencaoDiariaComissaoTrigger"); JobDetail jobDetail = new JobDetail("GeneracionRetencaoDiariaComissaoJob", null, GeneracionRetencaoDiariaComissaoJob.class); - Trigger trigger = TriggerUtils.makeDailyTrigger("generacionRetencaoDiariaComissaoTrigger", hora[0], hora[1]); - log.info("GeneracionRetencaoDiariaComissaoJob hora execucão: " + hora[0] + ":" + hora[1] ); + log.info("GeneracionRetencaoDiariaComissaoJob em execucão a cada hora"); trigger.setName("generacionRetencaoDiariaComissaoTrigger"); JobDetail job = sched.getJobDetail(jobDetail.getName(), jobDetail.getGroup()); log.info("Job=" + jobDetail.getName() + "." + jobDetail.getGroup()); diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 2763a8b53..242fc2340 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -473,6 +473,7 @@ com.rjconsultores.ventaboletos.entidad.PricingEspecificoCategoria com.rjconsultores.ventaboletos.entidad.EmpresaEmail com.rjconsultores.ventaboletos.entidad.EmpresaEmailConfig + com.rjconsultores.ventaboletos.entidad.CtrlFechamentoCaixa