package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citcorpore.bean.ColetaPrecoDTO;
import br.com.centralit.citcorpore.bean.CotacaoDTO;
import br.com.centralit.citcorpore.bean.CotacaoItemRequisicaoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.ColetaPrecoService;
import br.com.centralit.citcorpore.negocio.CotacaoItemRequisicaoService;
import br.com.centralit.citcorpore.negocio.CotacaoService;
import br.com.centralit.citcorpore.negocio.PedidoCompraService;
import br.com.centralit.citcorpore.negocio.RequisicaoProdutoService;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoCotacao;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoCotacaoItemRequisicao;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilFormatacao;
import br.com.citframework.util.UtilI18N;
public class ConsultaAprovacaoCotacao extends AjaxFormAction {
@SuppressWarnings("rawtypes")
public Class getBeanClass() {
return CotacaoDTO.class;
}
private void configuraBotoes(DocumentHTML document, HttpServletRequest request, CotacaoDTO cotacaoDto) throws Exception {
if(cotacaoDto.getIdCotacao() != null) {
cotacaoDto.setIdCotacao(cotacaoDto.getIdCotacao());
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null);
cotacaoDto = (CotacaoDTO) cotacaoService.restore(cotacaoDto);
if (cotacaoDto == null)
return;
document.executeScript("document.getElementById('btnReabrirColeta').style.display = 'none'");
SituacaoCotacao situacao = SituacaoCotacao.valueOf(cotacaoDto.getSituacao());
if (situacao.equals(SituacaoCotacao.Publicada)) {
document.executeScript("document.getElementById('btnReabrirColeta').style.display = 'block'");
}
}
document.executeScript("JANELA_AGUARDE_MENU.hide();");
}
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.getSession(true).setAttribute("colUploadsGED", null);
try{
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
CotacaoDTO cotacaoDto = (CotacaoDTO) document.getBean();
if (cotacaoDto.getIdCotacao() == null)
return;
request.setAttribute("idCotacao", ""+cotacaoDto.getIdCotacao());
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null);
cotacaoDto = (CotacaoDTO) cotacaoService.restore(cotacaoDto);
if (cotacaoDto == null)
return;
if (cotacaoDto.getSituacao().equals(SituacaoCotacao.Publicada.name()))
document.executeScript("document.getElementById('divReabrirColeta').style.display = 'block'");
ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, null);
Collection<ColetaPrecoDTO> colColetas = coletaPrecoService.findHabilitadasByIdCotacao(cotacaoDto.getIdCotacao());
if (colColetas == null)
return;
CotacaoItemRequisicaoService cotacaoItemService = (CotacaoItemRequisicaoService) ServiceLocator.getInstance().getService(CotacaoItemRequisicaoService.class, null);
String str =
"<table class=\"table\" width=\"100%\">";
str += " <tr>";
str += " <th style=\"font-size:14px;background-color:#BFC6C3\" colspan=\"4\">"+UtilI18N.internacionaliza(request, "coletaPreco") + "</th>";
str += " <th style=\"font-size:14px;background-color:#BFC6C3\" colspan=\"5\">"+UtilI18N.internacionaliza(request, "requisicaoProduto.requisicao") + "</th>";
str += " </tr>";
str += " <tr>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "coletaPreco.numero") + "</th>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "coletaPreco.pontuacao") + "</th>";
str += " <th width=\"20%\">"+UtilI18N.internacionaliza(request, "fornecedor") + "</th>";
str += " <th >"+UtilI18N.internacionaliza(request, "coletaPreco.item") + "</th>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "coletaPreco.numero") + "</th>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "itemRequisicaoProduto.quantidade") + "</th>";
str += " <th width=\"8%\">"+UtilI18N.internacionaliza(request, "itemRequisicaoProduto.percVariacaoPreco") + "</th>";
str += " <th width=\"8%\">"+UtilI18N.internacionaliza(request, "citcorpore.comum.aprovador") + "</th>";
str += " <th width=\"15%\">"+UtilI18N.internacionaliza(request, "citcorpore.comum.situacao") + "</th>";
str += " </tr>";
for (ColetaPrecoDTO coletaPrecoDto : colColetas) {
Collection<CotacaoItemRequisicaoDTO> colItens = cotacaoItemService.findByIdColetaPreco(coletaPrecoDto.getIdColetaPreco());
int rowSpan = 1;
if (colItens != null && colItens.size() > 0)
rowSpan = colItens.size();
str += "<tr onMouseOver='TrowOn(this,\"#FFCC99\");' onMouseOut='TrowOff(this)'>";
str += " <td rowspan=\""+rowSpan+"\" style=\"text-align:right;\" >"+coletaPrecoDto.getIdColetaPreco()+"</td>";
str += " <td rowspan=\""+rowSpan+"\" >"+UtilFormatacao.formatDouble(coletaPrecoDto.getPontuacao(),2)+"</td>";
str += " <td rowspan=\""+rowSpan+"\" >"+coletaPrecoDto.getNomeFornecedor()+"</td>";
str += " <td rowspan=\""+rowSpan+"\" >"+coletaPrecoDto.getDescricaoItem()+"</td>";
if (colItens != null && colItens.size() > 0) {
int i = 0;
HashMap<String, StringBuilder> mapAprovadores = new HashMap();
RequisicaoProdutoService requisicaoProdutoService = (RequisicaoProdutoService) ServiceLocator.getInstance().getService(RequisicaoProdutoService.class, null);
for (CotacaoItemRequisicaoDTO cotacaoItemDto : colItens) {
StringBuilder aprovadores = mapAprovadores.get(""+cotacaoItemDto.getIdSolicitacaoServico());
if (aprovadores == null) {
aprovadores = requisicaoProdutoService.recuperaLoginAutorizadores(cotacaoItemDto.getIdSolicitacaoServico());
mapAprovadores.put(""+cotacaoItemDto.getIdSolicitacaoServico(), aprovadores);
}
if (i > 0)
str += "<tr>";
String cor = "";
if (cotacaoItemDto.getSituacao().equals(SituacaoCotacaoItemRequisicao.NaoAprovado.name()))
cor = "red";
str += " <td style=\"text-align:right;color:"+cor+"\" >"+cotacaoItemDto.getIdSolicitacaoServico()+"</td>";
str += " <td style=\"text-align:right;color:"+cor+"\" >"+cotacaoItemDto.getQuantidade()+"</td>";
str += " <td style=\"text-align:right;color:"+cor+"\" >"+UtilFormatacao.formatDouble(cotacaoItemDto.getPercVariacaoPreco(),2)+"</td>";
str += " <td style=\"color:"+cor+"\">"+aprovadores.toString()+"</td>";
str += " <td style=\"color:"+cor+"\">"+cotacaoItemDto.getDescrSituacao()+"</td>";
str += "</tr>";
i++;
}
}else{
str += " <td> </td>";
str += " <td> </td>";
str += " <td> </td>";
str += " <td> </td>";
str += " <td> </td>";
str += "</tr>";
}
}
str += "</table>";
document.getElementById("divAprovacoes").setInnerHTML(str);
PedidoCompraService pedidoCompraService = (PedidoCompraService) ServiceLocator.getInstance().getService(PedidoCompraService.class, null);
Collection colPedidos = pedidoCompraService.findEntreguesByIdCotacao(cotacaoDto.getIdCotacao());
if (colPedidos != null && colPedidos.size() > 0)
document.executeScript("document.getElementById('divReabrirColeta').style.display = 'none'");
configuraBotoes(document, request, cotacaoDto);
}finally{
document.executeScript("parent.escondeJanelaAguarde()");
}
}
public void reabreColetaPrecos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
CotacaoDTO cotacaoDto = (CotacaoDTO) document.getBean();
cotacaoDto.setUsuarioDto(usuario);
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null);
cotacaoService.reabreColetaPrecos(cotacaoDto);
document.executeScript("parent.atualiza();");
document.executeScript("parent.exibeAprovacao()");
document.alert(UtilI18N.internacionaliza(request, "cotacao.confirmacaoReaberturaColeta"));
}
}