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