@Override
public HashMap
<String, Object
> calculaPrazoReposta
(TwebatendimentosTO twebatendimentosTO
) throws NegocioException
{
HashMap
<String, Object
> prazo
= new HashMap
<String, Object
>();
// NOTIVISA 30 dias corridos
if (twebatendimentosTO.getFormaContato() != null
&& "NOTIVISA".equals(twebatendimentosTO.getFormaContato())) {
prazo.put("dias", 30);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_CORRIDOS);
prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
return prazo;
}
if (twebatendimentosTO.getTipoCliente() != null
&& "DISTRIBUIDORA".equals(twebatendimentosTO.getTipoCliente()) && !twebatendimentosTO.isCaixaPadrao()) {
if (TwebatendimentosStatus.SIM.getCodigo().equals(twebatendimentosTO.getRecebido())) {
// 60 dias apos o recebimento da amostra
if (twebatendimentosTO.getDataRecebimento() == null) {
throw new NegocioException("dataRecebimentoAmostraDeveSerInformada");
}
prazo.put("dias", 60);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
prazo.put("dataBaseCalculo", twebatendimentosTO.getDataRecebimento());
return prazo;
} else {
if (TwebatendimentosStatus.NAO.getCodigo().equals(twebatendimentosTO.getRecebido())) {
// 60 dias a contar da data atual
prazo.put("dias", 60);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
prazo.put("dataBaseCalculo", DateUtil.asDate(preferenciasNegocio.consultarDataAtual()));
return prazo;
} else {
// aguarda o recebimento ou nao da amostra
prazo.put("dias", 0);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
return prazo;
}
}
}
// nao havera amostra 60 dias uteis
if (twebatendimentosTO.getHaveraColeta() == null
|| twebatendimentosTO.getHaveraColeta().isBlank()
|| TwebatendimentosStatus.NAO.getCodigo().equals(twebatendimentosTO.getHaveraColeta())
|| TwebatendimentosStatus.VAZIO.getCodigo().equals(twebatendimentosTO.getHaveraColeta())) {
prazo.put("dias", 60);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
return prazo;
}
// havera amostra 90 dias uteis
if (TwebatendimentosStatus.SIM.getCodigo().equals(twebatendimentosTO.getHaveraColeta())) {
prazo.put("dias", 90);
prazo.put("diasUteisCorridos", TwebatengarasStatus.DIAS_UTEIS);
prazo.put("dataBaseCalculo", twebatendimentosTO.getData());
return prazo;
}
if (prazo.isEmpty()) {
throw new NegocioException("naoFoiPossivelDefinirPrazos");
}
return prazo;
}