package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
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.AtividadesOSDTO;
import br.com.centralit.citcorpore.bean.AtividadesServicoContratoDTO;
import br.com.centralit.citcorpore.bean.CalendarioDTO;
import br.com.centralit.citcorpore.bean.GrupoAssinaturaDTO;
import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO;
import br.com.centralit.citcorpore.bean.JornadaTrabalhoDTO;
import br.com.centralit.citcorpore.bean.OSDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoGrupoDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.ServicoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.ContratoDao;
import br.com.centralit.citcorpore.negocio.AtividadesOSService;
import br.com.centralit.citcorpore.negocio.AtividadesServicoContratoService;
import br.com.centralit.citcorpore.negocio.CalendarioService;
import br.com.centralit.citcorpore.negocio.GrupoAssinaturaService;
import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService;
import br.com.centralit.citcorpore.negocio.OSService;
import br.com.centralit.citcorpore.negocio.PerfilAcessoGrupoService;
import br.com.centralit.citcorpore.negocio.PerfilAcessoSituacaoOSService;
import br.com.centralit.citcorpore.negocio.ServicoContratoService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.negocio.UsuarioService;
import br.com.centralit.citcorpore.negocio.VinculaOsIncidenteService;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.UtilCalculo;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.comparacao.ObjectSimpleComparator;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilFormatacao;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
public class Os extends AjaxFormAction {
@Override
public Class getBeanClass() {
return OSDTO.class;
}
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert("Sess�o expirada! Favor efetuar logon novamente!");
return;
}
OSDTO os = (OSDTO) document.getBean();
HTMLSelect idContrato = document.getSelectById("idServicoContrato");
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
Collection colServicosDoContrato = servicoContratoService.findByIdContrato(os.getIdContrato());
idContrato.removeAllOptions();
idContrato.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecioneServico"));
List colFinal = new ArrayList();
if (colServicosDoContrato != null) {
for (Iterator it = colServicosDoContrato.iterator(); it.hasNext();) {
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) it.next();
if ((servicoContratoDTO.getDeleted() == null) || servicoContratoDTO.getDeleted().equalsIgnoreCase("n")) {
if ((servicoContratoDTO.getDataFim() == null) || servicoContratoDTO.getDataFim().after(UtilDatas.getDataAtual())) {
ServicoDTO servicoDto = new ServicoDTO();
servicoDto.setIdServico(servicoContratoDTO.getIdServico());
servicoDto = (ServicoDTO) servicoService.restore(servicoDto);
if (servicoDto != null) {
String sigla = servicoDto.getSiglaAbrev();
String nomeServico = servicoDto.getNomeServico();
if ((sigla != null) && (nomeServico != null)) {
sigla = sigla.trim();
nomeServico = nomeServico.trim();
if (!sigla.equals("")) {
servicoContratoDTO.setNomeServico(sigla + " - " + nomeServico);
} else {
servicoContratoDTO.setNomeServico(nomeServico);
}
} else {
servicoContratoDTO.setNomeServico(nomeServico);
}
// idContrato.addOption("" + servicoContratoDTO.getIdServicoContrato(), servicoDto.getNomeServico());
if (servicoDto.getIdTipoDemandaServico().intValue() == 2) {
colFinal.add(servicoContratoDTO);
}
}
}
}
}
}
Collections.sort(colFinal, new ObjectSimpleComparator("getNomeServico", ObjectSimpleComparator.ASC));
for (Iterator it = colFinal.iterator(); it.hasNext();) {
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) it.next();
idContrato.addOption("" + servicoContratoDTO.getIdServicoContrato(), servicoContratoDTO.getNomeServico());
}
PerfilAcessoSituacaoOSService perfilAcessoSituacaoOSService = (PerfilAcessoSituacaoOSService) ServiceLocator.getInstance().getService(PerfilAcessoSituacaoOSService.class, null);
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
PerfilAcessoGrupoService perfilAcessoGrupoService = (PerfilAcessoGrupoService) ServiceLocator.getInstance().getService(PerfilAcessoGrupoService.class, null);
Collection colSituacoesPermitidasFinal = new ArrayList();
Collection<GrupoEmpregadoDTO> colGruposUsuario = null;
if (usuario != null) {
// Retorna as permiss�es do usu�rio
colSituacoesPermitidasFinal = perfilAcessoSituacaoOSService.getSituacoesOSPermitidasByUsuario(usuario);
// Retorna os grupos do usu�rio
colGruposUsuario = grupoEmpregadoService.findByIdEmpregado(usuario.getIdEmpregado());
if (colGruposUsuario != null) {
Collection<Integer> colSituacoesPermitidasTemp = null;
for (GrupoEmpregadoDTO grupoEmpregadoDTO : colGruposUsuario) {
PerfilAcessoGrupoDTO perfilAcessoGrupoDTO = new PerfilAcessoGrupoDTO();
perfilAcessoGrupoDTO.setIdGrupo(grupoEmpregadoDTO.getIdGrupo());
perfilAcessoGrupoDTO = perfilAcessoGrupoService.listByIdGrupo(perfilAcessoGrupoDTO);
colSituacoesPermitidasTemp = perfilAcessoSituacaoOSService.getSituacoesOSPermitidasByGrupo(perfilAcessoGrupoDTO);
// Percorre tempor�rio e verifica se j� existe na lista final, se n�o existir adiciona
if (colSituacoesPermitidasTemp != null) {
for (Integer object : colSituacoesPermitidasTemp) {
if (colSituacoesPermitidasFinal == null) {
colSituacoesPermitidasFinal = new ArrayList();
colSituacoesPermitidasFinal.add(object);
} else if (!colSituacoesPermitidasFinal.contains(object)) {
colSituacoesPermitidasFinal.add(object);
}
}
}
}
}
}
this.generateComboSituacoes(document, request, colSituacoesPermitidasFinal);
this.lockUnlockFields(document);
String ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS, "N");
if ((ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS != null) && (ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS.equalsIgnoreCase("S"))) {
this.alimentaComboGrupoAssinatura(document, request, response);
}
if (os.getIdOS() != null) {
this.restore(document, request, response);
} else {
document.focusInFirstActivateField(null);
}
if (colFinal.isEmpty()) {
document.alert(UtilI18N.internacionaliza(request, "os.naoHaServicosTipoDemandaOrdemServico"));
document.executeScript("parent.fecharVisaoFatura()");
}
}
private void lockAllFields(DocumentHTML document) throws Exception {
document.getElementById("dataInicio").setReadonly(true);
document.getElementById("dataInicio").setDisabled(true);
document.getElementById("dataFim").setReadonly(true);
document.getElementById("dataFim").setDisabled(true);
document.getElementById("idServicoContrato").setReadonly(true);
document.getElementById("numero").setReadonly(true);
document.getElementById("ano").setReadonly(true);
document.getElementById("nomeAreaRequisitante").setReadonly(true);
String ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS, "N");
if ((ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS != null) && (ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS.equalsIgnoreCase("S"))) {
HTMLSelect comboGrupoAssinatura = document.getSelectById("idGrupoAssinatura");
if (comboGrupoAssinatura != null) {
comboGrupoAssinatura.setReadonly(true);
}
}
document.getSelectById("situacaoOS").setDisabled(false);
document.getElementById("btnGravar").setDisabled(false);
}
private void lockUnlockFields(DocumentHTML document) throws Exception {
document.getForm("form").lockForm();
document.getSelectById("situacaoOS").setDisabled(false);
document.getElementById("btnGravar").setDisabled(false);
document.getElementById("idOS").setDisabled(false);
document.getElementById("idContrato").setDisabled(false);
document.getElementById("idServicoContrato").setDisabled(false);
document.getElementById("colItens_Serialize").setDisabled(false);
document.getElementById("dataInicio").setDisabled(false);
document.getElementById("dataFim").setDisabled(false);
document.getElementById("numero").setDisabled(false);
document.getElementById("ano").setDisabled(false);
document.getElementById("nomeAreaRequisitante").setDisabled(false);
document.getElementById("demanda").setReadonly(Boolean.TRUE);
document.getElementById("objetivo").setReadonly(Boolean.TRUE);
String ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS, "N");
if ((ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS != null) && (ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS.equalsIgnoreCase("S"))) {
HTMLSelect comboGrupoAssinatura = document.getSelectById("idGrupoAssinatura");
if (comboGrupoAssinatura != null) {
comboGrupoAssinatura.setDisabled(false);
}
}
}
public void generateComboSituacoes(DocumentHTML document, HttpServletRequest request, Collection colSituacoesPermitidas) throws Exception {
OSDTO os = (OSDTO) document.getBean();
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
OSDTO oSDTO = null;
if (os.getIdOS() != null) {
oSDTO = (OSDTO) osService.restore(os);
}
document.getSelectById("situacaoOS").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (colSituacoesPermitidas == null) {
return;
}
for (Iterator it = colSituacoesPermitidas.iterator(); it.hasNext();) {
Integer situacao = (Integer) it.next();
if (oSDTO != null) {
if (oSDTO.getIdOSPai() != null) {
this.setaComboSituacaoExecucao(document, situacao, request);
} else {
this.setaComboSituacaoCriacao(document, situacao, request);
}
} else {
this.setaComboSituacaoCriacao(document, situacao, request);
}
}
}
public void setaComboSituacaoCriacao(DocumentHTML document, Integer situacao, HttpServletRequest request) throws Exception {
OSDTO osDto = new OSDTO();
switch (situacao) {
case 1:
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.criacao"));
break;
case 2:
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.solicitada"));
break;
case 3:
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.autorizada"));
break;
case 4:
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.aprovada"));
break;
case 5:
break;
case 6:
break;
case 7:
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.cancelada"));
break;
case 8:
break;
// default:
// osDto.setSituacaoOS(situacao);
// document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), osDto.getDescricaoSituacaoOS());
}
}
public void setaComboSituacaoExecucao(DocumentHTML document, Integer situacao, HttpServletRequest request) throws Exception {
OSDTO osDto = new OSDTO();
if ((situacao > 4) && (situacao < 7)) {
if (situacao == 5) {
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.execucao"));
} else if (situacao == 6) {
osDto.setSituacaoOS(situacao);
document.getSelectById("situacaoOS").addOption("" + situacao.intValue(), UtilI18N.internacionaliza(request, "perfil.executada"));
}
}
}
public void atualizaGridOS(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO os = (OSDTO) document.getBean();
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
OSDTO oSDTO = (OSDTO) osService.restore(os);
HTMLTable tblOS = document.getTableById("tblOS");
if (os.getSequenciaOS() == null) {
tblOS.addRow(oSDTO, new String[] { "", "", "numero", "nomeAreaRequisitante", "demanda" }, new String[] { "idOS" }, "O.S j� cadastrada!!", new String[] { "exibeIconesOS" }, null, null);
} else {
tblOS.updateRow(oSDTO, new String[] { "", "", "numero", "nomeAreaRequisitante", "demanda" }, new String[] { "idOS" }, "O.S j� cadastrada!!", new String[] { "exibeIconesOS" }, null, null,
os.getSequenciaOS());
}
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblOS', 'tblOS');");
document.executeScript("fecharOS();");
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO os = (OSDTO) document.getBean();
String ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS, "N");
if ((ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS != null) && (ATIVAR_ASSINATURA_PERSONALIZADA_REL_OS.equalsIgnoreCase("S"))) {
if ((os == null) || (os.getIdGrupoAssinatura() == null) || (os.getIdGrupoAssinatura() <= 0)) {
document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.alerta.informeGrupoAssinatura"));
return;
}
}
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
Collection colItens = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(AtividadesOSDTO.class, "colItens_Serialize", request);
Integer idContrato = -1;
try {
idContrato = Integer.parseInt((String) request.getSession(true).getAttribute("NUMERO_CONTRATO_EDICAO"));
} catch (Exception e) {
}
if (idContrato == -1) {
document.alert("N�o foi poss�vel identificar o contrato. Por favor, feche esta tela e fa�a logon novamente!");
return;
}
os.setIdContrato(idContrato);
os.setColItens(colItens);
if ((os.getIdOS() == null) || (os.getIdOS().intValue() == 0)) {
osService.create(os);
} else {
// Se OS est� sendo cancelada, verifica se existe RAs e os cancela se houver
if (os.getSituacaoOS().equals(OSDTO.CANCELADA)) {
document.executeScript("confirmaCancelamento();");
return;
}
osService.update(os);
}
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("GRID_ITENS.deleteAllRows()");
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.OSGravadaSucesso"));
document.executeScript("parent.atualizaOSs()");
document.executeScript("parent.fecharVisao()");
}
public void cancelaOSeRAs(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO os = (OSDTO) document.getBean();
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
VinculaOsIncidenteService vinculaOsIncidenteService = (VinculaOsIncidenteService) ServiceLocator.getInstance().getService(VinculaOsIncidenteService.class, null);
osService.cancelaOsFilhas(os);
osService.update(os);
// Desfaz V�nculo de Incidente
Collection<OSDTO> listaOsFilhas = osService.retornaSeExisteOSFilha(os);
if (listaOsFilhas != null) {
for (OSDTO osdto : listaOsFilhas) {
vinculaOsIncidenteService.deleteByIdOs(osdto.getIdOS());
}
}
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("GRID_ITENS.deleteAllRows()");
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.OSGravadaSucesso"));
document.executeScript("parent.atualizaOSs()");
document.executeScript("parent.fecharVisao()");
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO os = (OSDTO) document.getBean();
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
AtividadesOSService atividadesOSService = (AtividadesOSService) ServiceLocator.getInstance().getService(AtividadesOSService.class, null);
os = (OSDTO) osService.restore(os);
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(os);
document.executeScript("GRID_ITENS.deleteAllRows()");
Collection col = null;
double custoTotal = 0;
if (os != null) {
col = atividadesOSService.findByIdOS(os.getIdOS());
if (col != null) {
for (Iterator it = col.iterator(); it.hasNext();) {
AtividadesOSDTO atividadesOSDTO = (AtividadesOSDTO) it.next();
document.executeScript("GRID_ITENS.addRow()");
document.executeScript("seqSelecionada = NumberUtil.zerosAEsquerda(GRID_ITENS.getMaxIndex(),5)");
String strQtde = "";
String strFormula = atividadesOSDTO.getFormula();
if (atividadesOSDTO.getCustoAtividade() != null) {
strQtde = UtilFormatacao.formatDouble(atividadesOSDTO.getCustoAtividade(), 2);
}
String strId = "";
if (atividadesOSDTO.getIdAtividadeServicoContrato() != null) {
strId = atividadesOSDTO.getIdAtividadeServicoContrato().toString();
}
if (strQtde == null) {
strQtde = "";
}
if (strId == null) {
strId = "";
}
if (strFormula == null) {
strFormula = "";
}
String strDet = atividadesOSDTO.getDescricaoAtividade();
String strObs = atividadesOSDTO.getObsAtividade();
if (strDet != null) {
strDet = strDet.replaceAll("'", "");
} else {
strDet = "";
}
if (strObs != null) {
strObs = strObs.replaceAll("'", "");
} else {
strObs = "";
}
if (atividadesOSDTO.getCustoAtividade() != null) {
custoTotal = custoTotal + atividadesOSDTO.getCustoAtividade().doubleValue();
}
String contabilizar = atividadesOSDTO.getContabilizar();
Integer idServicoContratoContabilInt = atividadesOSDTO.getIdServicoContratoContabil();
String idServicoContratoContabil = "";
if (contabilizar == null) {
contabilizar = "";
}
if (idServicoContratoContabilInt != null) {
idServicoContratoContabil = idServicoContratoContabilInt.toString();
}
if (idServicoContratoContabil == null) {
idServicoContratoContabil = "";
}
document.executeScript("setaRestoreItem('" + atividadesOSDTO.getComplexidade().trim() + "'," + "'" + strDet + "'," + "'"
+ strObs + "'," + "'" + strQtde + "'," + "'" + strFormula + "'," + "'" + strId + "'," + "'" + contabilizar + "'," + "'"
+ idServicoContratoContabil + "'" + ")");
}
document.executeScript("preencheNumeracaoItens()");
}
}
document.getElementById("custoTotal").setInnerHTML("<b>" + UtilFormatacao.formatDouble(custoTotal, 2) + "</b>");
document.executeScript("preencheNumeracaoItens()");
this.lockUnlockFields(document);
if ((os.getSituacaoOS() != null) && (os.getSituacaoOS() != 1)) {
document.executeScript("document.getElementById('btnAtuLista').style.display = 'none';");
}
if (os != null) {
if ((os.getSituacaoOS() != null) && os.getSituacaoOS().equals(OSDTO.EM_CRIACAO)) {
int temp = 0;
if (col != null) {
for (Iterator ite = col.iterator(); ite.hasNext();) {
temp++;
ite.next();
String objHtml = "document.form.obs" + UtilFormatacao.formatInt(temp, "00000");
document.executeScript(objHtml + ".onkeydown = true");
}
}
} else {
// euler.ramos
// Retirar outros itens do Select porque este objeto atualmente n�o aceita readOnly ou disable. vide:http://forum.imasters.com.br/topic/336126-resolvidoreadonly-para-select/
if ((os != null) && (os.getSituacaoOS() != null) && (os.getSituacaoOS().equals(OSDTO.APROVADA))) {
this.refazerSelectServico(document, request, response, os.getIdServicoContrato());
}
this.lockAllFields(document);
}
}
}
private void refazerSelectServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, Integer idServicoContrato) {
HTMLSelect idContrato;
try {
idContrato = document.getSelectById("idServicoContrato");
if (idContrato != null) {
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServiceLocator.getInstance().getService(ServicoService.class, null);
ServicoContratoDTO servicoContratoDTO = servicoContratoService.findByIdServicoContrato(idServicoContrato);
if ((servicoContratoDTO != null) && (servicoContratoDTO.getIdServicoContrato() != null) && (servicoContratoDTO.getNomeServico() != null)) {
idContrato.removeAllOptions();
idContrato.addOption("" + servicoContratoDTO.getIdServicoContrato(), servicoContratoDTO.getNomeServico());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void gravarRegistroExecucao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO osDto = (OSDTO) document.getBean();
document.executeScript("aguarde();");
OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null);
OSDTO beanOs = new OSDTO();
if (osDto != null) {
if (osDto.getQuantidade().intValue() < 1) {
document.alert("Quantidade n�o � um valor v�lido!");
document.executeScript("fechar_aguarde();");
return;
}
beanOs.setIdOS(osDto.getIdOSPai());
beanOs = (OSDTO) osService.restore(beanOs);
beanOs.setIdOS(null);
beanOs.setDataFim(osDto.getDataFimExecucao());
beanOs.setDataInicio(osDto.getDataInicioExecucao());
beanOs.setQuantidade(osDto.getQuantidade());
beanOs.setIdOSPai(osDto.getIdOSPai());
beanOs.setSituacaoOS(new Integer(5));
if (beanOs.getIdOSPai() != null) {
osService.retornaAtividadeCadastradaByPai(beanOs);
}
try {
osService.create(beanOs);
document.executeScript("parent.atualizaOSs()");
document.alert("R.A. gerado com sucesso!");
document.executeScript("fechar_aguarde();");
document.executeScript("$('#POPUP_REGISTRO_EXECUCAO').dialog('close');");
} catch (Exception e) {
document.alert(" Ocorreu uma erro ao gravar: Gerar R.A!");
document.executeScript("fechar_aguarde();");
document.executeScript("$('#POPUP_REGISTRO_EXECUCAO').dialog('close');");
}
}
}
public void restoreInfoServicoContrato(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OSDTO os = (OSDTO) document.getBean();
if (os.getIdServicoContrato() == null) {
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
// Limpar os campos da Tela.
document.getElementById("demanda").setValue("");
document.getElementById("objetivo").setValue("");
document.getElementById("numero").setValue("");
document.getElementById("nomeAreaRequisitante").setValue("");
document.getElementById("situacaoOS").setValue("");
document.executeScript("GRID_ITENS.deleteAllRows()");
document.getElementById("custoTotal").setValue("");
return;
}
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
AtividadesServicoContratoService atividadesServicoContratoService = (AtividadesServicoContratoService) ServiceLocator.getInstance().getService(AtividadesServicoContratoService.class, null);
ServicoContratoDTO servicoContratoDTO = new ServicoContratoDTO();
servicoContratoDTO.setIdServicoContrato(os.getIdServicoContrato());
servicoContratoDTO = (ServicoContratoDTO) servicoContratoService.restore(servicoContratoDTO);
ServicoDTO servicoDto = new ServicoDTO();
servicoDto.setIdServico(servicoContratoDTO.getIdServico());
servicoDto = (ServicoDTO) servicoService.restore(servicoDto);
HTMLForm form = document.getForm("form");
form.clear();
os.setAno(UtilDatas.getYear(UtilDatas.getDataAtual()));
os.setObjetivo(servicoDto.getObjetivo());
os.setDemanda(servicoDto.getNomeServico());
form.setValues(os);
document.executeScript("GRID_ITENS.deleteAllRows()");
Collection col = null;
double custoTotal = 0;
if (os != null) {
col = atividadesServicoContratoService.obterAtividadesAtivasPorIdServicoContrato(os.getIdServicoContrato());
if (col != null) {
ContratoDao contratoDao = new ContratoDao();
UsuarioService uarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
Date dataInicio = os.getDataInicio();
Date dataFim = os.getDataFim();
String qtdUsuariosAtivos = String.valueOf(uarioService.listAtivos().size());
Integer qntDiasUteis = contaDiasUteis(dataInicio, dataFim, servicoContratoDTO.getIdCalendario());
Integer diasCorridos = UtilDatas.dataDiff(dataInicio, dataFim) + 1;
for (Iterator it = col.iterator(); it.hasNext();) {
AtividadesServicoContratoDTO atividadesServicoContratoDTO = (AtividadesServicoContratoDTO) it.next();
document.executeScript("GRID_ITENS.addRow()");
document.executeScript("seqSelecionada = NumberUtil.zerosAEsquerda(GRID_ITENS.getMaxIndex(),5)");
String strDet = atividadesServicoContratoDTO.getDescricaoAtividade();
String strObs = atividadesServicoContratoDTO.getObsAtividade();
String strFormula = atividadesServicoContratoDTO.getFormula();
String contabilizar = atividadesServicoContratoDTO.getContabilizar();
Integer idServicoContratoContabilInt = atividadesServicoContratoDTO.getIdServicoContratoContabil();
String strQtde = "";
String idServicoContratoContabil = "";
if (strDet == null) {
strDet = "";
}
if (strObs == null) {
strObs = "";
}
// come�a o calculo
if ((atividadesServicoContratoDTO.getTipoCusto() != null) && atividadesServicoContratoDTO.getTipoCusto().trim().equals("F")
&& atividadesServicoContratoDTO.getFormulaCalculoFinal() != null) {
atividadesServicoContratoDTO.getHora();
String calculoFormula = atividadesServicoContratoDTO.getFormulaCalculoFinal();
/* @autor edu.braz
* 06/05/2014
/* Verifica na String da formulaOs quando come�a a Chaves pega todo o valor dentro das Chaves e passa um replace mudando seu valor*/
if(calculoFormula.contains("{") || calculoFormula.contains("}")){
int um = calculoFormula.indexOf("{");
int dois = calculoFormula.lastIndexOf("}");
// O valor que deve ser passado para substituir os possiveis valores dentro das Chaves e� 0(Zero) para evitar um NullPointerException.
calculoFormula = calculoFormula.replace(calculoFormula.substring(um + 1,dois), "0");
}
if (calculoFormula.contains("vDiasUteis")) {
calculoFormula = calculoFormula.replaceAll("vDiasUteis", qntDiasUteis.toString());
}
if (calculoFormula.contains("vDiasCorridos")) {
calculoFormula = calculoFormula.replaceAll("vDiasCorridos", diasCorridos.toString());
}
if (calculoFormula.contains("vNumeroUsuarios")) {
calculoFormula = calculoFormula.replaceAll("vNumeroUsuarios", String.valueOf(uarioService.listAtivos().size()));
}
if (atividadesServicoContratoDTO.getEstruturaFormulaOs().contains("vComplexidade")) {
if (calculoFormula.contains("B")) {
Double valorComplex = contratoDao.consultaComplexidade(os.getIdServicoContrato(), "B");
calculoFormula = calculoFormula.replaceAll("B", valorComplex.toString());
}
if (calculoFormula.contains("I")) {
Double valorComplex = contratoDao.consultaComplexidade(os.getIdServicoContrato(), "I");
calculoFormula = calculoFormula.replaceAll("I", valorComplex.toString());
}
if (calculoFormula.contains("M")) {
Double valorComplex = contratoDao.consultaComplexidade(os.getIdServicoContrato(), "M");
calculoFormula = calculoFormula.replaceAll("M", valorComplex.toString());
}
if (calculoFormula.contains("A")) {
Double valorComplex = contratoDao.consultaComplexidade(os.getIdServicoContrato(), "A");
calculoFormula = calculoFormula.replaceAll("A", valorComplex.toString());
}
if (calculoFormula.contains("E")) {
Double valorComplex = contratoDao.consultaComplexidade(os.getIdServicoContrato(), "E");
calculoFormula = calculoFormula.replaceAll("E", valorComplex.toString());
}
}
calculoFormula = calculoFormula.replace(",", ".");
double custo = UtilCalculo.calculaExpressao(calculoFormula);
atividadesServicoContratoDTO.setCustoAtividade(custo);
strFormula = atividadesServicoContratoDTO.getFormula();
/*
* thays.araujo 06/05/2014
* formata��o da formula.
*/
strFormula = strFormula.replaceAll("Dias Corridos", diasCorridos+" Dias Corridos ");
strFormula = strFormula.replaceAll("Dias �teis", qntDiasUteis+" Dias �teis ");
strFormula = strFormula.replaceAll("N�mero Usu�rios", qtdUsuariosAtivos+" N�mero Usu�rios ");
// termina calculo
}
if (atividadesServicoContratoDTO.getCustoAtividade() != null) {
strQtde = UtilFormatacao.formatDouble(atividadesServicoContratoDTO.getCustoAtividade(), 4);
}
String strId = "";
if (atividadesServicoContratoDTO.getIdAtividadeServicoContrato() != null) {
strId = atividadesServicoContratoDTO.getIdAtividadeServicoContrato().toString();
}
if (strDet != null) {
strDet = strDet.replaceAll("'", "");
} else {
strDet = "";
}
if (strObs != null) {
strObs = strObs.replaceAll("'", "");
} else {
strObs = "";
}
if (strQtde == null) {
strQtde = "";
}
if (strFormula == null) {
strFormula = "";
}
if (strId == null) {
strId = "";
}
if (contabilizar == null) {
contabilizar = "";
}
if (idServicoContratoContabilInt != null) {
idServicoContratoContabil = idServicoContratoContabilInt.toString();
}
if (idServicoContratoContabil == null) {
idServicoContratoContabil = "";
}
if (atividadesServicoContratoDTO.getCustoAtividade() != null) {
custoTotal = custoTotal + atividadesServicoContratoDTO.getCustoAtividade().doubleValue();
}
if(atividadesServicoContratoDTO.getComplexidade()== null){
atividadesServicoContratoDTO.setComplexidade("");
}
document.executeScript("setaRestoreItem('" + atividadesServicoContratoDTO.getComplexidade().trim() + "'," + "'" + strDet + "',"
+ "'" + br.com.citframework.util.WebUtil.codificaEnter(strObs) + "'," + "'" + strQtde + "'," + "'" + strFormula + "'," + "'" + strId + "'," + "'" + contabilizar + "',"
+ "'" + idServicoContratoContabil + "'" + ")");
}
document.executeScript("preencheNumeracaoItens()");
}
}
this.lockUnlockFields(document);
document.getElementById("custoTotal").setInnerHTML("<b>" + UtilFormatacao.formatDouble(custoTotal, 2) + "</b>");
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
if (os.getSituacaoOS() == null) {
int temp = 0;
if (col != null) {
for (Iterator ite = col.iterator(); ite.hasNext();) {
temp++;
ite.next();
String objHtml = "document.form.obs" + UtilFormatacao.formatInt(temp, "00000");
/*repsonsavel por blockear o mouse para colar valores no campo*/
document.getElementById("demanda"+UtilFormatacao.formatInt(temp, "00000")).setReadonly(Boolean.TRUE);
document.executeScript(objHtml + ".onkeydown = true");
}
}
}
}
private Integer contaDiasUteis(Date dataInicio, Date dataFim, Integer idCalendario) throws Exception {
Integer totalDiasUteis = 0;
Integer difEmDias = UtilDatas.dataDiff(dataInicio, dataFim);
CalendarioService calendarioService = (CalendarioService) ServiceLocator.getInstance().getService(CalendarioService.class, null);
CalendarioDTO calendarioDto = calendarioService.recuperaCalendario(idCalendario);
int index = 0;
Date dtTemp = dataInicio;
do {
// Verifica se � dia �til (segunda a sexta)
if (UtilDatas.verificaDiaUtil(dtTemp)) {
// Se for dia �til verifica se o dia � ou n�o feriado
JornadaTrabalhoDTO jornada = calendarioService.recuperaJornada(calendarioDto, new java.sql.Date(dtTemp.getTime()));
if (jornada != null) {
// Se n�o for feridao, incrementa quantidade de Dias �teis
totalDiasUteis++;
}
}
// Incrementa um dia na data
dtTemp = UtilDatas.incrementaDiasEmData(dtTemp, 1);
index++;
} while (difEmDias >= index);
return totalDiasUteis;
}
public void reCalculaCusto(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{
Collection colItens = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(AtividadesOSDTO.class, "colItens_Serialize", request);
Double custoTotal = (double) 0;
if ((colItens != null) && (colItens.size()>0)) {
for (Iterator it = colItens.iterator(); it.hasNext();) {
AtividadesOSDTO atividadesOSDTO = (AtividadesOSDTO) it.next();
if (atividadesOSDTO.getCustoAtividade()!=null){
custoTotal += atividadesOSDTO.getCustoAtividade().doubleValue();
}
}
}
document.getElementById("custoTotal").setInnerHTML("<b>" + UtilFormatacao.formatDouble(custoTotal, 2) + "</b>");
}
@SuppressWarnings("unchecked")
private void alimentaComboGrupoAssinatura(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HTMLSelect comboGrupoAssinatura = document.getSelectById("idGrupoAssinatura");
if (comboGrupoAssinatura != null) {
comboGrupoAssinatura.removeAllOptions();
comboGrupoAssinatura.addOption("0", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
GrupoAssinaturaService grupoAssinaturaService = (GrupoAssinaturaService) ServiceLocator.getInstance().getService(GrupoAssinaturaService.class, null);
Collection<GrupoAssinaturaDTO> colGrupoAssinatura = grupoAssinaturaService.list();
if ((colGrupoAssinatura != null) && (colGrupoAssinatura.size() > 0)) {
for (GrupoAssinaturaDTO grupoAssinaturaDTO : colGrupoAssinatura) {
comboGrupoAssinatura.addOption(grupoAssinaturaDTO.getIdGrupoAssinatura().toString(), StringEscapeUtils.escapeJavaScript(grupoAssinaturaDTO.getTitulo().toString()));
}
}
}
}
}