×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Marcelo Caser
Added: May 2, 2022 2:56 PM
Views: 7
Tags: no tags
  1. @Override
  2.     public HashMap<String, Object> calculaPrazoReposta(TwebatendimentosTO twebatendimentosTO) throws NegocioException {
  3.         HashMap<String, Object> prazo = new HashMap<String, Object>();
  4.         // NOTIVISA 30 dias corridos
  5.         if (twebatendimentosTO.getFormaContato() != null
  6.                 && "NOTIVISA".equals(twebatendimentosTO.getFormaContato())) {
  7.             prazo.put("dias", 30);
  8.             prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_CORRIDOS);
  9.             prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
  10.             return prazo;
  11.         }
  12.  
  13.         if (twebatendimentosTO.getTipoCliente() != null
  14.                 && "DISTRIBUIDORA".equals(twebatendimentosTO.getTipoCliente()) && !twebatendimentosTO.isCaixaPadrao()) {
  15.             if (TwebatendimentosStatus.SIM.getCodigo().equals(twebatendimentosTO.getRecebido())) {
  16.                 // 60 dias apos o recebimento da amostra
  17.                 if (twebatendimentosTO.getDataRecebimento() == null) {
  18.                     throw new NegocioException("dataRecebimentoAmostraDeveSerInformada");
  19.                 }
  20.                 prazo.put("dias", 60);
  21.                 prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
  22.                 prazo.put("dataBaseCalculo", twebatendimentosTO.getDataRecebimento());
  23.                 return prazo;
  24.             } else {
  25.                 if (TwebatendimentosStatus.NAO.getCodigo().equals(twebatendimentosTO.getRecebido())) {
  26.                     // 60 dias a contar da data atual
  27.                     prazo.put("dias", 60);
  28.                     prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
  29.                     prazo.put("dataBaseCalculo", DateUtil.asDate(preferenciasNegocio.consultarDataAtual()));
  30.                     return prazo;
  31.                 } else {
  32.                     // aguarda o recebimento ou nao da amostra
  33.                     prazo.put("dias", 0);
  34.                     prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
  35.                     prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
  36.                     return prazo;
  37.                 }
  38.             }
  39.         }
  40.  
  41.         // nao havera amostra 60 dias uteis
  42.         if (twebatendimentosTO.getHaveraColeta() == null
  43.                 || twebatendimentosTO.getHaveraColeta().isBlank()
  44.                 || TwebatendimentosStatus.NAO.getCodigo().equals(twebatendimentosTO.getHaveraColeta())
  45.                 || TwebatendimentosStatus.VAZIO.getCodigo().equals(twebatendimentosTO.getHaveraColeta())) {
  46.             prazo.put("dias", 60);
  47.             prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
  48.             prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
  49.             return prazo;
  50.         }
  51.  
  52.         // havera amostra 90 dias uteis
  53.         if (TwebatendimentosStatus.SIM.getCodigo().equals(twebatendimentosTO.getHaveraColeta())) {
  54.             prazo.put("dias", 90);
  55.             prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
  56.             prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
  57.             return prazo;
  58.         }
  59.  
  60.         if (prazo.isEmpty()) {
  61.             throw new NegocioException("naoFoiPossivelDefinirPrazos");
  62.         }
  63.         return prazo;
  64.     }