package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
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.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.bean.CotacaoDTO;
import br.com.centralit.citcorpore.bean.FornecedorCotacaoDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.AvaliacaoFornecedorService;
import br.com.centralit.citcorpore.negocio.CotacaoService;
import br.com.centralit.citcorpore.negocio.FornecedorCotacaoService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoCotacao;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilI18N;
public class FornecedorCotacao extends AjaxFormAction {
@SuppressWarnings("rawtypes")
public Class getBeanClass() {
return CotacaoDTO.class;
}
private void configuraBotoes(DocumentHTML document, HttpServletRequest request, CotacaoDTO cotacaoDto) throws Exception {
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null);
cotacaoDto = (CotacaoDTO) cotacaoService.restore(cotacaoDto);
if (cotacaoDto == null)
return;
document.executeScript("document.getElementById('addFornecedor').style.display = 'none';");
document.executeScript("document.getElementById('btnSugerirFornecedores').style.display = 'none';");
SituacaoCotacao situacao = SituacaoCotacao.valueOf(cotacaoDto.getSituacao());
request.setAttribute("situacao", situacao);
if (situacao.equals(SituacaoCotacao.EmAndamento)) {
document.executeScript("document.getElementById('addFornecedor').style.display = 'block';");
document.executeScript("document.getElementById('btnSugerirFornecedores').style.display = 'block';");
}
}
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
try{
CotacaoDTO cotacaoDto = (CotacaoDTO) document.getBean();
request.setAttribute("idCotacao", ""+cotacaoDto.getIdCotacao());
exibeFornecedoresCotacao(document, request, cotacaoDto);
configuraBotoes(document, request, cotacaoDto);
}finally{
document.executeScript("parent.escondeJanelaAguarde()");
}
}
private void exibeFornecedoresCotacao(DocumentHTML document, HttpServletRequest request, CotacaoDTO cotacaoDto) throws Exception {
HTMLTable tblFornecedoresCotacao = document.getTableById("tblFornecedoresCotacao");
tblFornecedoresCotacao.deleteAllRows();
FornecedorCotacaoService fornecedorCotacaoService = (FornecedorCotacaoService) ServiceLocator.getInstance().getService(FornecedorCotacaoService.class, null);
Collection<FornecedorCotacaoDTO> colFornecedorCotacao = fornecedorCotacaoService.findByIdCotacao(cotacaoDto.getIdCotacao());
if (colFornecedorCotacao != null && !colFornecedorCotacao.isEmpty()) {
Collection<FornecedorDTO> colFornecedores = new ArrayList();
FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null);
AvaliacaoFornecedorService avaliacaoFornecedorService = (AvaliacaoFornecedorService) ServiceLocator.getInstance().getService(AvaliacaoFornecedorService.class, null);
for (FornecedorCotacaoDTO fornecedorCotacaoDto : colFornecedorCotacao) {
FornecedorDTO fornecedorDto = new FornecedorDTO();
fornecedorDto.setIdFornecedor(fornecedorCotacaoDto.getIdFornecedor());
fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto);
if (fornecedorDto != null) {
if (avaliacaoFornecedorService.fornecedorQualificado(fornecedorDto.getIdFornecedor()))
fornecedorDto.setQualificado(UtilI18N.internacionaliza(request, "citcorpore.comum.sim"));
else
fornecedorDto.setQualificado(UtilI18N.internacionaliza(request, "citcorpore.comum.nao"));
colFornecedores.add(fornecedorDto);
}
}
tblFornecedoresCotacao.addRowsByCollection(colFornecedores,
new String[] {"","cnpjFormatado","nomeFantasia","telefone","email","nomeContato","qualificado"},
null,
"",
new String[] {"gerarImgExclusaoFornec"},
null,
null);
}
}
public void delete(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();
if (cotacaoDto.getIdFornecedor() == null)
return;
FornecedorCotacaoService fornecedorCotacaoService = (FornecedorCotacaoService) ServiceLocator.getInstance().getService(FornecedorCotacaoService.class, null);
FornecedorCotacaoDTO fornecedorCotacaoDto = new FornecedorCotacaoDTO();
fornecedorCotacaoDto.setIdCotacao(cotacaoDto.getIdCotacao());
fornecedorCotacaoDto.setIdFornecedor(cotacaoDto.getIdFornecedor());
fornecedorCotacaoService.delete(fornecedorCotacaoDto);
exibeFornecedoresCotacao(document, request, cotacaoDto);
}
public void sugereFornecedores(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;
}
HTMLTable tblFornecedores = document.getTableById("tblFornecedores");
tblFornecedores.deleteAllRows();
CotacaoDTO cotacaoDto = (CotacaoDTO) document.getBean();
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, WebUtil.getUsuarioSistema(request));
Collection<FornecedorDTO> fornecedores = cotacaoService.sugereFornecedores(cotacaoDto);
if (fornecedores != null && !fornecedores.isEmpty()) {
tblFornecedores.addRowsByCollection(fornecedores,
new String[] {"","cnpjFormatado","nomeFantasia","telefone","email","nomeContato"},
null,
"",
new String[] {"gerarSelecaoFornecedor"},
null,
null);
document.executeScript("document.getElementById('btnSelecionarFornecedores').style.display = 'block';");
}
document.executeScript("$(\"#POPUP_SUGESTAO_FORNECEDORES\").dialog(\"open\");");
}
public void save(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();
Collection<FornecedorDTO> colFornecedores = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(FornecedorDTO.class, "colFornecedores_Serialize", request);
CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null);
cotacaoService.incluiFornecedores(cotacaoDto, colFornecedores);
exibeFornecedoresCotacao(document, request, cotacaoDto);
}
}