package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
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.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.bean.ClienteDTO;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.ControleContratoDTO;
import br.com.centralit.citcorpore.bean.ControleContratoModuloSistemaDTO;
import br.com.centralit.citcorpore.bean.ControleContratoOcorrenciaDTO;
import br.com.centralit.citcorpore.bean.ControleContratoPagamentoDTO;
import br.com.centralit.citcorpore.bean.ControleContratoTreinamentoDTO;
import br.com.centralit.citcorpore.bean.ControleContratoVersaoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.ModuloSistemaDTO;
import br.com.centralit.citcorpore.bean.TipoSubscricaoDTO;
import br.com.centralit.citcorpore.negocio.ClienteService;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.ControleContratoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.negocio.ModuloSistemaService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.centralit.citcorpore.negocio.TipoSubscricaoService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
/**
*
* @author pedro
*
*/
@SuppressWarnings({"unused","unchecked"})
public class ControleContrato extends AjaxFormAction {
public Class<ControleContratoDTO> getBeanClass() {
return ControleContratoDTO.class;
}
/**
* Inicializa os dados ao carregar a tela.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ModuloSistemaService moduloSistemaService = (ModuloSistemaService) ServiceLocator.getInstance().getService(ModuloSistemaService.class, WebUtil.getUsuarioSistema(request));
TipoSubscricaoService tipoSubscricaoService = (TipoSubscricaoService) ServiceLocator.getInstance().getService(TipoSubscricaoService.class, null);
/************* CARREGA OS MODULOS DO SISTEMA **************/
Collection<ModuloSistemaDTO> colModulos = moduloSistemaService.list();
if(colModulos != null && colModulos.size() >0){
HTMLTable resultado = document.getTableById("tblModulosAtivos");
if (colModulos != null && !colModulos.isEmpty() && colModulos.size() > 0) {
resultado.addRowsByCollection(colModulos, new String[] {"", "nomeModuloSistema"}, null, "", new String[] {"geraCheckButt"}, null, null);
}
}
/************* CARREGA OS TIPOS DE SUBSCRICAO **************/
HTMLSelect comboSubscricao = (HTMLSelect) document.getSelectById("tipoSubscricao");
ArrayList<TipoSubscricaoDTO> tipos = (ArrayList) tipoSubscricaoService.list();
if(tipos != null && tipos.size() >0){
for (TipoSubscricaoDTO tipo : tipos){
comboSubscricao.addOption(tipo.getIdTipoSubscricao().toString(), tipo.getNomeTipoSubscricao());
}
}
}
/**
* Inclui registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ControleContratoDTO controleContratoDTO = (ControleContratoDTO) document.getBean();
ControleContratoService controleContratoService = (ControleContratoService) ServiceLocator.getInstance().getService(ControleContratoService.class, WebUtil.getUsuarioSistema(request));
Collection<ControleContratoPagamentoDTO> colPagamento = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ControleContratoPagamentoDTO.class, "pagamentoSerialize", request);
Collection<ControleContratoTreinamentoDTO> colTreinamento = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ControleContratoTreinamentoDTO.class, "treinamentoSerialize", request);
Collection<ControleContratoOcorrenciaDTO> colOcorrencia = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ControleContratoOcorrenciaDTO.class, "ocorrenciaSerialize", request);
Collection<ControleContratoVersaoDTO> colVersao = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ControleContratoVersaoDTO.class, "versaoSerialize", request);
if(colPagamento != null){
controleContratoDTO.setLstPagamento((List<ControleContratoPagamentoDTO>) colPagamento);
}
if(colTreinamento != null){
controleContratoDTO.setLstTreinamento((List<ControleContratoTreinamentoDTO>) colTreinamento);
}
if(colOcorrencia != null){
controleContratoDTO.setLstOcorrencia((List<ControleContratoOcorrenciaDTO>) colOcorrencia);
}
if(colVersao != null){
controleContratoDTO.setLstVersao((List<ControleContratoVersaoDTO>) colVersao);
}
List listAux = new ArrayList<String>();
if(!controleContratoDTO.getLstModulos().equals("")){
String[] colAux = controleContratoDTO.getLstModulos().split(";");
if(colAux != null){
for(int i=0; i< colAux.length; i++){
listAux.add(colAux[i]);
}
}
controleContratoDTO.setLstModulosAtivos(listAux);
}
if (controleContratoDTO.getIdControleContrato() == null || controleContratoDTO.getIdControleContrato().intValue() == 0) {
controleContratoDTO.setDataInicio(UtilDatas.getDataAtual());
/*if(catalogoServicoService.verificaSeCatalogoExiste(catalogoServicoDTO)){
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
return;
}*/
controleContratoService.create(controleContratoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
} else {
/*if(catalogoServicoService.verificaSeCatalogoExiste(catalogoServicoDTO)){
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
return;
}*/
controleContratoService.update(controleContratoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
document.executeScript("deleteAllRows();");
HTMLForm form = document.getForm("form");
form.clear();
// document.executeScript("limpar()");
// document.executeScript("limpar_LOOKUP_CATALOGOSERVICO()");
}
/**
* Restaura os dados ao clicar em um registro.
* @author pedro
* @param document
* @param request
* @param response
* @throws Exception
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ControleContratoDTO controleContratoDTO = (ControleContratoDTO) document.getBean();
ControleContratoService catalogoServicoService = (ControleContratoService) ServiceLocator.getInstance().getService(ControleContratoService.class, WebUtil.getUsuarioSistema(request));
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, WebUtil.getUsuarioSistema(request));
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, WebUtil.getUsuarioSistema(request));
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, WebUtil.getUsuarioSistema(request));
FornecedorService fornService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, WebUtil.getUsuarioSistema(request));
ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, WebUtil.getUsuarioSistema(request));
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, WebUtil.getUsuarioSistema(request));
controleContratoDTO = (ControleContratoDTO) catalogoServicoService.restore(controleContratoDTO);
//Recupera nome do contrato
if(controleContratoDTO != null && controleContratoDTO.getIdContrato() != null){
ContratoDTO contratosDTO = new ContratoDTO();
FornecedorDTO fornecedorDTO = new FornecedorDTO();
ClienteDTO clienteDTO = new ClienteDTO();
if(controleContratoDTO != null){
contratosDTO.setIdContrato(controleContratoDTO.getIdContrato());
contratosDTO = (ContratoDTO) contratoService.restore(contratosDTO);
}
if(contratosDTO != null){
clienteDTO.setIdCliente(contratosDTO.getIdCliente());
clienteDTO = (ClienteDTO) clienteService.restore(clienteDTO);
}
if(contratosDTO != null){
fornecedorDTO.setIdFornecedor(contratosDTO.getIdFornecedor());
fornecedorDTO = (FornecedorDTO) fornService.restore(fornecedorDTO);
}
if(contratosDTO != null && contratosDTO.getIdContrato() != null){
document.executeScript("document.form.idContrato.value= "+contratosDTO.getIdContrato()+"");
}
// / document.executeScript("document.formServicoContrato.pesqLockupLOOKUP_CATALOGOSERVICOCONTRATO_IDCONTRATO.value= "+contratosDTO.getIdContrato()+"");
if(contratosDTO != null && clienteDTO != null && fornecedorDTO != null){
controleContratoDTO.setNomeContrato(contratosDTO.getNumero() +" - " +clienteDTO.getNomeFantasia()+" - " +fornecedorDTO.getRazaoSocial());
}
}
document.executeScript("deleteAllRows();");
if(controleContratoDTO != null && controleContratoDTO.getLstVersao() != null){
for(ControleContratoVersaoDTO versoes : (List<ControleContratoVersaoDTO>)controleContratoDTO.getLstVersao()){
if(versoes != null){
/*controleContratoDTO.setNomeVersao(versoes.getNomeCcVersao());
controleContratoDTO.setIdVersao(versoes.getIdCcVersao());*/
HTMLTable table;
table = document.getTableById("tblVersao");
table.deleteAllRows();
table.addRowsByCollection(controleContratoDTO.getLstVersao(), new String[] {"", "nomeCcVersao"}, null, null, new String[] {"gerarButtonDeleteVersao"}, "funcaoClickRowVersao", null);
}
}
}
if(controleContratoDTO != null && controleContratoDTO.getLstPagamento() != null){
for (ControleContratoPagamentoDTO pagamento : (List<ControleContratoPagamentoDTO>)controleContratoDTO.getLstPagamento() ){
if(pagamento != null){
HTMLTable table;
table = document.getTableById("tblPagamento");
table.deleteAllRows();
table.addRowsByCollection(controleContratoDTO.getLstPagamento(), new String[] {"", "dataCcPagamento", "parcelaCcPagamento", "dataAtrasoCcPagamento"}, null, null, new String[] {"gerarButtonDeletePagamento"}, "funcaoClickRowPagamento", null);
}
}
}
if(controleContratoDTO != null && controleContratoDTO.getLstTreinamento() != null){
for(ControleContratoTreinamentoDTO treinamento : (List<ControleContratoTreinamentoDTO>) controleContratoDTO.getLstTreinamento()){
if(treinamento != null){
if(treinamento.getIdEmpregadoTreinamento() != null){
EmpregadoDTO dto = new EmpregadoDTO();
dto.setIdEmpregado(treinamento.getIdEmpregadoTreinamento());
dto = (EmpregadoDTO) empregadoService.restore(dto);
treinamento.setNomeInstrutorCcTreinamento(dto.getNome());
treinamento.setIdEmpregadoTreinamento(dto.getIdEmpregado());
}
HTMLTable table;
table = document.getTableById("tblTreinamento");
table.deleteAllRows();
table.addRowsByCollection(controleContratoDTO.getLstTreinamento(), new String[] {"", "dataCcTreinamento", "nomeCcTreinamento", "nomeInstrutorCcTreinamento"}, null, null, new String[] {"gerarButtonDeleteTreinamento"}, "funcaoClickRowTreinamento", null);
}
}
}
if(controleContratoDTO != null && controleContratoDTO.getLstOcorrencia() != null){
for (ControleContratoOcorrenciaDTO ocorrencia : (List<ControleContratoOcorrenciaDTO>) controleContratoDTO.getLstOcorrencia() ){
if(ocorrencia != null){
if(ocorrencia.getIdEmpregadoOcorrencia() != null){
EmpregadoDTO dto = new EmpregadoDTO();
dto.setIdEmpregado(ocorrencia.getIdEmpregadoOcorrencia());
dto = (EmpregadoDTO) empregadoService.restore(dto);
ocorrencia.setEmpregadoCcOcorrencia(dto.getNome());
controleContratoDTO.setIdUsuarioOcorrencia(dto.getIdEmpregado());
}
HTMLTable table;
table = document.getTableById("tblOcorrencia");
table.deleteAllRows();
table.addRowsByCollection(controleContratoDTO.getLstOcorrencia(), new String[] {"", "dataCcOcorrencia", "assuntoCcOcorrencia", "empregadoCcOcorrencia"}, null, null, new String[] {"gerarButtonDeleteOcorrencia"}, "funcaoClickRowOcorrencia", null);
}
}
}
/** CARREGA LISTA DE INCDENTES **/
/*Collection colIncidentesContrato = solicitacaoServicoService.incidentesPorContrato(controleContratoDTO.getIdContrato());
if(colIncidentesContrato != null){
HTMLTable table;
table = document.getTableById("tblIncidente");
table.deleteAllRows();
table.addRowsByCollection(colIncidentesContrato, new String[] {"", "idSolicitacaoServico", "nomeServico", "numero","nome","nomeUsu"}, null, null, null, null, null);
}*/
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(controleContratoDTO);
if(controleContratoDTO != null && controleContratoDTO.getLstModulosAtivos() != null){
for (ControleContratoModuloSistemaDTO modulos : (List<ControleContratoModuloSistemaDTO>)controleContratoDTO.getLstModulosAtivos()) {
String checked = "moduloAtivo"+modulos.getIdModuloSistema();
document.getCheckboxById(checked).setChecked(true);
}
}
document.executeScript("JANELA_AGUARDE_MENU.hide()");
}
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ControleContratoDTO controleContratoDTO = (ControleContratoDTO) document.getBean();
ControleContratoService controleContratoService = (ControleContratoService) ServiceLocator.getInstance().getService(ControleContratoService.class, WebUtil.getUsuarioSistema(request));
if(controleContratoDTO.getIdControleContrato() != null){
controleContratoDTO.setDataFim(UtilDatas.getDataAtual());
controleContratoService.update(controleContratoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}else{
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.nome"));
//document.alert("Selecione um catalogo!");
}
document.executeScript("deleteAllRows();");
HTMLForm form = document.getForm("form");
form.clear();
}
/* public void restoreInfo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CatalogoServicoDTO catalogoServicoDTO = (CatalogoServicoDTO) document.getBean();
InfoCatalogoServicoService infoService = (InfoCatalogoServicoService) ServiceLocator.getInstance().getService(InfoCatalogoServicoService.class, WebUtil.getUsuarioSistema(request));
InfoCatalogoServicoDTO infoCatalogoServicoDTO = new InfoCatalogoServicoDTO();
if(catalogoServicoDTO.getIdInfoCatalogoServico() != null){
infoCatalogoServicoDTO.setIdInfoCatalogoServico(catalogoServicoDTO.getIdInfoCatalogoServico());
infoCatalogoServicoDTO.setIdCatalogoServico(catalogoServicoDTO.getIdCatalogoServico());
infoCatalogoServicoDTO = (InfoCatalogoServicoDTO) infoService.restore(infoCatalogoServicoDTO);
Integer id = infoCatalogoServicoDTO.getIdInfoCatalogoServico();
String text = UtilStrings.nullToVazio(infoCatalogoServicoDTO.getDescInfoCatalogoServico());
String nome = infoCatalogoServicoDTO.getNomeInfoCatalogoServico();
Integer index = catalogoServicoDTO.getRowIndex();
if(infoCatalogoServicoDTO != null){
document.executeScript("setaInfo('" + nome + "', '" + text + "', '"+index+"');");
}
}
}*/
/**
* Adiciona/atualiza grid servico.
* @author pedro
* @param document
* @param request
* @param response
* @throws Exception
*/
/* public void adicionaGridServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CatalogoServicoDTO catalogoServicoDTO = (CatalogoServicoDTO) document.getBean();
ServicoService servicoContratoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
ServicoDTO bean = new ServicoDTO();
ServContratoCatalogoServDTO servContratoCatalogoServDTO = new ServContratoCatalogoServDTO();
bean.setIdServico(catalogoServicoDTO.getIdServicoContrato());
bean = (ServicoDTO) servicoContratoService.restore(bean);
servContratoCatalogoServDTO.setIdServicoContrato(bean.getIdServico());
servContratoCatalogoServDTO.setNomeServico(bean.getNomeServico());
HTMLTable tblServico = document.getTableById("tblServicoContrato");
tblServico.addRow(servContratoCatalogoServDTO, new String[] {"", "idServicoContrato", "nomeServico" }, new String[] {"idServicoContrato"}, "Servi�o j� selecionado!", new String[] {"gerarButtonDelete"}, null, null);
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblServicoContrato', 'tblServicoContrato');");
}*/
/**
* Retorna o Conteudo de cat�logo de servi�o
* @author pedro
* @param document
* @param request
* @param response
* @throws Exception
*/
/* public void conteudoInfoCatalogoServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CatalogoServicoDTO catalogoServicoDTO = (CatalogoServicoDTO) document.getBean();
InfoCatalogoServicoService infoService = (InfoCatalogoServicoService) ServiceLocator.getInstance().getService(InfoCatalogoServicoService.class, WebUtil.getUsuarioSistema(request));
InfoCatalogoServicoDTO infoCatalogoServicoDTO = new InfoCatalogoServicoDTO();
if(catalogoServicoDTO.getIdInfoCatalogoServico() != null){
infoCatalogoServicoDTO.setIdInfoCatalogoServico(catalogoServicoDTO.getIdInfoCatalogoServico());
infoCatalogoServicoDTO = (InfoCatalogoServicoDTO) infoService.restore(infoCatalogoServicoDTO);
document.executeScript("$('#tituloCatalogo').text('"+infoCatalogoServicoDTO.getNomeInfoCatalogoServico()+"');" +
"$('#POPUP_CONTEUDOCATALOGO').dialog('open');");
HTMLElement m = document.getElementById("conteudoCatalogo");
m.setInnerHTML(infoCatalogoServicoDTO.getDescInfoCatalogoServico());
}
}*/
}