package br.com.centralit.citcorpore.ajaxForms; import java.sql.Time; import java.sql.Timestamp; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Locale; 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.HTMLSelect; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.CidadesDTO; import br.com.centralit.citcorpore.bean.DespesaViagemDTO; import br.com.centralit.citcorpore.bean.FormaPagamentoDTO; import br.com.centralit.citcorpore.bean.IntegranteViagemDTO; import br.com.centralit.citcorpore.bean.MoedaDTO; import br.com.centralit.citcorpore.bean.ParceiroDTO; import br.com.centralit.citcorpore.bean.RequisicaoViagemDTO; import br.com.centralit.citcorpore.bean.RoteiroViagemDTO; import br.com.centralit.citcorpore.bean.TipoMovimFinanceiraViagemDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.CidadesService; import br.com.centralit.citcorpore.negocio.DespesaViagemService; import br.com.centralit.citcorpore.negocio.FormaPagamentoService; import br.com.centralit.citcorpore.negocio.IntegranteViagemService; import br.com.centralit.citcorpore.negocio.MoedaService; import br.com.centralit.citcorpore.negocio.ParceiroService; import br.com.centralit.citcorpore.negocio.RequisicaoViagemService; import br.com.centralit.citcorpore.negocio.RoteiroViagemService; import br.com.centralit.citcorpore.negocio.TipoMovimFinanceiraViagemService; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.Enumerados.TipoDate; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; @SuppressWarnings({"rawtypes","unchecked"}) public class RemarcacaoViagem extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { if(!WebUtil.validarSeUsuarioEstaNaSessao(request, document)) return; } @Override public Class getBeanClass() { return IntegranteViagemDTO.class; } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception{ if(!WebUtil.validarSeUsuarioEstaNaSessao(request, document)) return; } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, RequisicaoViagemDTO requisicaoViagemDto) throws ServiceException, Exception { } /** * Utilizado para remarcar viagem. * Adiciona um novo roteiro e itens despesas ao integrante. * Altera o status da viagem e do integrante para remarcado. * * @param document * @param request * @param response * @throws Exception * @author thiago.borges */ public void remarcarViagem(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ IntegranteViagemDTO integranteViagemDto = (IntegranteViagemDTO) document.getBean(); IntegranteViagemDTO integranteViagemDtoAux = new IntegranteViagemDTO(); RequisicaoViagemDTO requisicaoViagemDTO = new RequisicaoViagemDTO(); RequisicaoViagemService requisicaoViagemService = (RequisicaoViagemService) ServiceLocator.getInstance().getService(RequisicaoViagemService.class, WebUtil.getUsuarioSistema(request)); IntegranteViagemService integranteViagemService = (IntegranteViagemService) ServiceLocator.getInstance().getService(IntegranteViagemService.class, WebUtil.getUsuarioSistema(request)); RoteiroViagemDTO roteiroViagemDto = new RoteiroViagemDTO(); RoteiroViagemDTO roteiroViagemDtoAux = new RoteiroViagemDTO(); RoteiroViagemService roteiroViagemService = (RoteiroViagemService) ServiceLocator.getInstance().getService(RoteiroViagemService.class, WebUtil.getUsuarioSistema(request)); DespesaViagemService despesaViagemService = (DespesaViagemService) ServiceLocator.getInstance().getService(DespesaViagemService.class, WebUtil.getUsuarioSistema(request)); Collection<DespesaViagemDTO> colDespesaDel = new ArrayList<DespesaViagemDTO>(); Collection<DespesaViagemDTO> colDespesa = br.com.citframework.util.WebUtil.deserializeCollectionFromString(DespesaViagemDTO.class, integranteViagemDto.getColDespesaViagemSerialize()); if(colDespesa == null || colDespesa.isEmpty()){ document.alert(UtilI18N.internacionaliza(request, "requisicaoViagem.adicionarItemRemarcar")); return; } if(integranteViagemDto.getRemarcarRoteiro() != null && integranteViagemDto.getRemarcarRoteiro().equalsIgnoreCase("S")){ roteiroViagemDtoAux = roteiroViagemService.findByIdIntegrante(integranteViagemDto.getIdIntegranteViagem()); roteiroViagemDtoAux.setDataFim(UtilDatas.getDataAtual()); roteiroViagemService.update(roteiroViagemDtoAux); roteiroViagemDto.setDataInicio(UtilDatas.getDataAtual()); roteiroViagemDto.setIdSolicitacaoServico(integranteViagemDto.getIdSolicitacao()); roteiroViagemDto.setIdIntegrante(integranteViagemDto.getIdIntegranteViagem()); roteiroViagemDto.setOrigem(integranteViagemDto.getOrigem()); roteiroViagemDto.setDestino(integranteViagemDto.getDestino()); roteiroViagemDto.setIda(integranteViagemDto.getIda()); roteiroViagemDto.setVolta(integranteViagemDto.getVolta()); roteiroViagemDtoAux = new RoteiroViagemDTO(); roteiroViagemDtoAux = (RoteiroViagemDTO) roteiroViagemService.create(roteiroViagemDto); colDespesaDel = despesaViagemService.findDespesaViagemByIdRoteiro(integranteViagemDto.getIdRoteiro()); if(colDespesaDel != null && colDespesaDel.size() > 0){ for(DespesaViagemDTO dto: colDespesaDel){ dto.setDataFim(UtilDatas.getDataAtual()); despesaViagemService.update(dto); } } if(colDespesa != null && colDespesa.size() > 0){ for(DespesaViagemDTO despesaViagemDTO: colDespesa){ despesaViagemDTO.setDataInicio(UtilDatas.getDataAtual()); despesaViagemDTO.setIdRoteiro(roteiroViagemDtoAux.getIdRoteiroViagem()); despesaViagemDTO.setSituacao("Remarcacao"); TipoMovimFinanceiraViagemService tipoMovimentacaoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); TipoMovimFinanceiraViagemDTO tipoMovimFinanceiraDto = new TipoMovimFinanceiraViagemDTO(); tipoMovimFinanceiraDto.setIdtipoMovimFinanceiraViagem(despesaViagemDTO.getIdTipo()); tipoMovimFinanceiraDto = (TipoMovimFinanceiraViagemDTO) tipoMovimentacaoService.restore(tipoMovimFinanceiraDto); if(tipoMovimFinanceiraDto != null && tipoMovimFinanceiraDto.getExigeDataHoraCotacao().equalsIgnoreCase("S")) despesaViagemDTO.setValidade(Timestamp.valueOf(despesaViagemDTO.getPrazoCotacaoAux() + " " + Time.valueOf(despesaViagemDTO.getHoraCotacaoAux() + ":00"))); despesaViagemDTO.setOriginal("N"); despesaViagemDTO.setIdSolicitacaoServico(integranteViagemDto.getIdSolicitacao()); despesaViagemService.create(despesaViagemDTO); } } requisicaoViagemDTO.setIdSolicitacaoServico(integranteViagemDto.getIdSolicitacao()); requisicaoViagemDTO = (RequisicaoViagemDTO) requisicaoViagemService.restore(requisicaoViagemDTO); requisicaoViagemDTO.setEstado(RequisicaoViagemDTO.REMARCADO); requisicaoViagemService.update(requisicaoViagemDTO); integranteViagemDtoAux = (IntegranteViagemDTO) integranteViagemService.restore(integranteViagemDto); integranteViagemDtoAux.setRemarcacao("S"); integranteViagemDtoAux.setEstado(RequisicaoViagemDTO.REMARCADO); integranteViagemService.update(integranteViagemDtoAux); }else{ if(colDespesa != null && colDespesa.size() > 0){ colDespesaDel = despesaViagemService.findDespesaViagemByIdRoteiro(integranteViagemDto.getIdRoteiro()); if(colDespesaDel != null && colDespesaDel.size() > 0){ for(DespesaViagemDTO dto: colDespesaDel){ dto.setDataFim(UtilDatas.getDataAtual()); despesaViagemService.update(dto); } } if(colDespesa != null && colDespesa.size() > 0){ for(DespesaViagemDTO despesaViagemDTO: colDespesa){ despesaViagemDTO.setDataInicio(UtilDatas.getDataAtual()); despesaViagemDTO.setIdRoteiro(integranteViagemDto.getIdRoteiro()); despesaViagemDTO.setSituacao("Remarcacao"); TipoMovimFinanceiraViagemService tipoMovimentacaoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); TipoMovimFinanceiraViagemDTO tipoMovimFinanceiraDto = new TipoMovimFinanceiraViagemDTO(); tipoMovimFinanceiraDto.setIdtipoMovimFinanceiraViagem(despesaViagemDTO.getIdTipo()); tipoMovimFinanceiraDto = (TipoMovimFinanceiraViagemDTO) tipoMovimentacaoService.restore(tipoMovimFinanceiraDto); if(tipoMovimFinanceiraDto != null && tipoMovimFinanceiraDto.getExigeDataHoraCotacao().equalsIgnoreCase("S")) despesaViagemDTO.setValidade(Timestamp.valueOf(despesaViagemDTO.getPrazoCotacaoAux() + " " + Time.valueOf(despesaViagemDTO.getHoraCotacaoAux() + ":00"))); despesaViagemDTO.setOriginal("N"); despesaViagemDTO.setIdSolicitacaoServico(integranteViagemDto.getIdSolicitacao()); despesaViagemService.create(despesaViagemDTO); } } }else{ document.alert(UtilI18N.internacionaliza(request, "requisicaoViagem.integranteNaoPossuiAlteracao")); return; } requisicaoViagemDTO.setIdSolicitacaoServico(integranteViagemDto.getIdSolicitacao()); requisicaoViagemDTO = (RequisicaoViagemDTO) requisicaoViagemService.restore(requisicaoViagemDTO); requisicaoViagemDTO.setEstado(RequisicaoViagemDTO.REMARCADO); requisicaoViagemService.update(requisicaoViagemDTO); integranteViagemDtoAux = (IntegranteViagemDTO) integranteViagemService.restore(integranteViagemDto); integranteViagemDtoAux.setRemarcacao("S"); integranteViagemDtoAux.setEstado(RequisicaoViagemDTO.REMARCADO); integranteViagemService.update(integranteViagemDtoAux); } document.alert(UtilI18N.internacionaliza(request, "remarcaoViagem.efetuadaSucesso")); document.executeScript("limparFormulario()"); document.executeScript("$('.tabsbar a[href="+"#tab1-3"+"]').tab('show');"); } /** * Busca integrantes de viagem que podem ser remarcados * * @param document * @param request * @param response * @throws Exception * @author thiago.borges */ public void pesquisaRequisicoesViagem(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { IntegranteViagemDTO integranteViagemDTO = (IntegranteViagemDTO) document.getBean(); IntegranteViagemService integranteViagemService = (IntegranteViagemService) ServiceLocator.getInstance().getService(IntegranteViagemService.class, WebUtil.getUsuarioSistema(request)); RoteiroViagemDTO roteiroViagemDTO = new RoteiroViagemDTO(); RoteiroViagemService roteiroViagemService = (RoteiroViagemService) ServiceLocator.getInstance().getService(RoteiroViagemService.class, WebUtil.getUsuarioSistema(request)); 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 tblRequisicoesViagem = document.getTableById("tblRequisicoesViagem"); tblRequisicoesViagem.deleteAllRows(); //metodo que recupera a cole��o dos itens da pagina referenciada Collection<IntegranteViagemDTO> colIntegrantes = integranteViagemService.recuperaIntegrantesRemarcacao(integranteViagemDTO, integranteViagemDTO.getEOu()); CidadesService cidadesService = (CidadesService)ServiceLocator.getInstance().getService(CidadesService.class, null); CidadesDTO cidadesDTO = new CidadesDTO(); Collection<IntegranteViagemDTO> colIntegrantesAux = new ArrayList<IntegranteViagemDTO>(); if(colIntegrantes != null && !colIntegrantes.isEmpty()) for(IntegranteViagemDTO dto: colIntegrantes){ dto = (IntegranteViagemDTO) integranteViagemService.restore(dto); roteiroViagemDTO = roteiroViagemService.findByIdIntegrante(dto.getIdIntegranteViagem()); cidadesDTO = cidadesService.findCidadeUF(roteiroViagemDTO.getOrigem()); dto.setNomeOrigem(cidadesDTO.getNomeCidade()+ " - " + cidadesDTO.getNomeUf()); cidadesDTO = cidadesService.findCidadeUF(roteiroViagemDTO.getDestino()); dto.setNomeDestino(cidadesDTO.getNomeCidade()+ " - " + cidadesDTO.getNomeUf()); dto.setIda(roteiroViagemDTO.getIda()); dto.setVolta(roteiroViagemDTO.getVolta()); colIntegrantesAux.add(dto); } if (colIntegrantesAux != null && !colIntegrantesAux.isEmpty()){ tblRequisicoesViagem.addRowsByCollection(colIntegrantesAux, new String[]{"idSolicitacaoServico","ida","volta","nome", "nomeOrigem", "nomeDestino", "estado", ""}, null, null, new String[]{"gerarImg"}, "addItens", null); }else{ document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.resultado")); tblRequisicoesViagem.deleteAllRows(); } } /** * Busca as informa��es do integrante selecionado para remarca��o. * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void recuperaInformacoesIntegrante(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception{ IntegranteViagemDTO integranteViagemDTO = (IntegranteViagemDTO) document.getBean(); document.getElementById("idSolicitacao").setValue(integranteViagemDTO.getIdSolicitacao().toString()); RoteiroViagemService roteiroViagemService = (RoteiroViagemService)ServiceLocator.getInstance().getService(RoteiroViagemService.class, null); IntegranteViagemService integranteViagemService = (IntegranteViagemService)ServiceLocator.getInstance().getService(IntegranteViagemService.class, null); CidadesService cidadesService = (CidadesService)ServiceLocator.getInstance().getService(CidadesService.class, null); CidadesDTO cidadesDTO = new CidadesDTO(); RoteiroViagemDTO roteiroViagemDTO = new RoteiroViagemDTO(); roteiroViagemDTO = roteiroViagemService.findByIdIntegrante(integranteViagemDTO.getIdIntegranteViagem()); integranteViagemDTO = (IntegranteViagemDTO) integranteViagemService.restore(integranteViagemDTO); if(roteiroViagemDTO != null){ document.getElementById("idRoteiro").setValue(roteiroViagemDTO.getIdRoteiroViagem().toString()); cidadesDTO = cidadesService.findCidadeUF(roteiroViagemDTO.getOrigem()); document.getElementById("nomeCidadeOrigem").setValue(cidadesDTO.getNomeCidade()+ " - " + cidadesDTO.getNomeUf()); document.getElementById("idCidadeOrigemAux").setValue(cidadesDTO.getIdCidade().toString()); document.getElementById("origem").setValue(cidadesDTO.getIdCidade().toString()); cidadesDTO = cidadesService.findCidadeUF(roteiroViagemDTO.getDestino()); document.getElementById("nomeCidadeDestino").setValue(cidadesDTO.getNomeCidade()+ " - " + cidadesDTO.getNomeUf()); document.getElementById("idCidadeDestinoAux").setValue(cidadesDTO.getIdCidade().toString()); document.getElementById("destino").setValue(cidadesDTO.getIdCidade().toString()); document.getElementById("ida").setValue(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, roteiroViagemDTO.getIda(), UtilI18N.getLocale())); document.getElementById("volta").setValue(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, roteiroViagemDTO.getVolta(), UtilI18N.getLocale())); document.getElementById("idaAux").setValue(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, roteiroViagemDTO.getIda(), UtilI18N.getLocale())); document.getElementById("voltaAux").setValue(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, roteiroViagemDTO.getVolta(), UtilI18N.getLocale())); document.executeScript("calcularQuantidadeDias()"); } document.getElementById("nomeIntegrante").setValue(integranteViagemDTO.getNome() + " ("+integranteViagemDTO.getIdSolicitacaoServico().toString()+")"); document.getElementById("nomeIntegrante").setDisabled(true); this.atualizaGridItensControleHist(document, request, response, integranteViagemDTO); this.atualizaGridItensMarcacaoOriginal(document, request, response, integranteViagemDTO); } /** * Carrega informa��es da popup de item de despesa * * @param document * @param request * @param response * @throws Exception */ public void carregaPopup(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ this.preencherComboTipoDespesa(document, request, response); this.preencherComboMoeda(document, request, response); this.preencherComboFormaPagamento(document, request, response); } /** * Carrega a grid com o historico de itens de despesa de remarca��es do integrante * * @param document * @param request * @param response * @param integranteViagemDTO * @throws ServiceException * @throws Exception */ @SuppressWarnings("unused") public void atualizaGridItensControleHist(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, IntegranteViagemDTO integranteViagemDTO) throws ServiceException, Exception{ DespesaViagemService despesaViagemService = (DespesaViagemService) ServiceLocator.getInstance().getService(DespesaViagemService.class, null); RoteiroViagemService roteiroViagemService = (RoteiroViagemService) ServiceLocator.getInstance().getService(RoteiroViagemService.class, null); MoedaService moedaService = (MoedaService) ServiceLocator.getInstance().getService(MoedaService.class, null); MoedaDTO moedaDTO = new MoedaDTO(); ParceiroService parceiroService = (ParceiroService) ServiceLocator.getInstance().getService(ParceiroService.class, null); ParceiroDTO parceiroDTO = new ParceiroDTO(); FormaPagamentoService formaPagamentoService = (FormaPagamentoService) ServiceLocator.getInstance().getService(FormaPagamentoService.class, null); FormaPagamentoDTO formaPagamentoDTO = new FormaPagamentoDTO(); TipoMovimFinanceiraViagemService tipoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); TipoMovimFinanceiraViagemDTO movimFinanceiraViagemDTO = new TipoMovimFinanceiraViagemDTO(); DespesaViagemDTO despesaViagemDTO = new DespesaViagemDTO(); Collection<DespesaViagemDTO> colDespesaViagemDTOs = new ArrayList<DespesaViagemDTO>(); Collection<DespesaViagemDTO> colDespesaViagemDtoAux = new ArrayList<DespesaViagemDTO>(); Collection<RoteiroViagemDTO> colRoteiros = roteiroViagemService.findByIdIntegranteTodos(integranteViagemDTO.getIdIntegranteViagem()); if(colRoteiros != null && !colRoteiros.isEmpty()){ for(RoteiroViagemDTO roteiroViagemDTO: colRoteiros){ colDespesaViagemDtoAux = despesaViagemService.findDespesaViagemByIdRoteiro(roteiroViagemDTO.getIdRoteiroViagem()); if(colDespesaViagemDtoAux != null && colDespesaViagemDtoAux.size() > 0){ for(DespesaViagemDTO dto: colDespesaViagemDtoAux ){ if(dto != null && !dto.getOriginal().equalsIgnoreCase("S")){ moedaDTO.setIdMoeda(dto.getIdMoeda()); moedaDTO = (MoedaDTO) moedaService.restore(moedaDTO); formaPagamentoDTO.setIdFormaPagamento(dto.getIdFormaPagamento()); formaPagamentoDTO = (FormaPagamentoDTO) formaPagamentoService.restore(formaPagamentoDTO); movimFinanceiraViagemDTO.setIdtipoMovimFinanceiraViagem(dto.getIdTipo()); movimFinanceiraViagemDTO = (TipoMovimFinanceiraViagemDTO) tipoService.restore(movimFinanceiraViagemDTO); parceiroDTO.setIdParceiro(dto.getIdFornecedor()); parceiroDTO = (ParceiroDTO) parceiroService.restore(parceiroDTO); dto.setTipoDespesa(movimFinanceiraViagemDTO.getClassificacao().trim() + " (" + (movimFinanceiraViagemDTO.getNome()).trim() + ")"); dto.setNomeFornecedor(parceiroDTO.getRazaoSocial()+" - "+parceiroDTO.getNome()); dto.setNomeFormaPagamento(formaPagamentoDTO.getNomeFormaPagamento()); dto.setNomeMoeda(moedaDTO.getNomeMoeda()); dto.setValorTotal(dto.getValor() * dto.getQuantidade()); colDespesaViagemDTOs.add(dto); } } } } } if(colDespesaViagemDTOs != null && !colDespesaViagemDTOs.isEmpty()){ HTMLTable tblDespesaHist; tblDespesaHist = document.getTableById("tblDespesaHist"); tblDespesaHist.deleteAllRows(); tblDespesaHist.addRowsByCollection(colDespesaViagemDTOs, new String[]{"dataInicio","tipoDespesa", "nomeFornecedor", "quantidade", "valorTotal", "nomeFormaPagamento", "nomeMoeda"}, null , null, null, null, null); } } /** * Carrega a grid de itens de despesa originais do integrante * * @param document * @param request * @param response * @param integranteViagemDTO * @throws ServiceException * @throws Exception */ @SuppressWarnings("unused") public void atualizaGridItensMarcacaoOriginal(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, IntegranteViagemDTO integranteViagemDTO) throws ServiceException, Exception{ DespesaViagemService despesaViagemService = (DespesaViagemService) ServiceLocator.getInstance().getService(DespesaViagemService.class, null); RoteiroViagemService roteiroViagemService = (RoteiroViagemService) ServiceLocator.getInstance().getService(RoteiroViagemService.class, null); MoedaService moedaService = (MoedaService) ServiceLocator.getInstance().getService(MoedaService.class, null); MoedaDTO moedaDTO = new MoedaDTO(); ParceiroService parceiroService = (ParceiroService) ServiceLocator.getInstance().getService(ParceiroService.class, null); ParceiroDTO parceiroDTO = new ParceiroDTO(); FormaPagamentoService formaPagamentoService = (FormaPagamentoService) ServiceLocator.getInstance().getService(FormaPagamentoService.class, null); FormaPagamentoDTO formaPagamentoDTO = new FormaPagamentoDTO(); TipoMovimFinanceiraViagemService tipoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); TipoMovimFinanceiraViagemDTO movimFinanceiraViagemDTO = new TipoMovimFinanceiraViagemDTO(); DespesaViagemDTO despesaViagemDTO = new DespesaViagemDTO(); Collection<DespesaViagemDTO> colDespesaViagemDTOs = new ArrayList<DespesaViagemDTO>(); Collection<DespesaViagemDTO> colDespesaViagemDtoAux = new ArrayList<DespesaViagemDTO>(); Collection<RoteiroViagemDTO> colRoteiros = roteiroViagemService.findByIdIntegranteTodos(integranteViagemDTO.getIdIntegranteViagem()); if(colRoteiros != null && !colRoteiros.isEmpty()){ for(RoteiroViagemDTO roteiroViagemDTO: colRoteiros){ colDespesaViagemDtoAux = despesaViagemService.findDespesaViagemByIdRoteiro(roteiroViagemDTO.getIdRoteiroViagem()); if(colDespesaViagemDtoAux != null && colDespesaViagemDtoAux.size() > 0){ for(DespesaViagemDTO dto: colDespesaViagemDtoAux ){ if(dto != null && dto.getOriginal().equalsIgnoreCase("S")){ moedaDTO.setIdMoeda(dto.getIdMoeda()); moedaDTO = (MoedaDTO) moedaService.restore(moedaDTO); formaPagamentoDTO.setIdFormaPagamento(dto.getIdFormaPagamento()); formaPagamentoDTO = (FormaPagamentoDTO) formaPagamentoService.restore(formaPagamentoDTO); movimFinanceiraViagemDTO.setIdtipoMovimFinanceiraViagem(dto.getIdTipo()); movimFinanceiraViagemDTO = (TipoMovimFinanceiraViagemDTO) tipoService.restore(movimFinanceiraViagemDTO); parceiroDTO.setIdParceiro(dto.getIdFornecedor()); parceiroDTO = (ParceiroDTO) parceiroService.restore(parceiroDTO); dto.setTipoDespesa(movimFinanceiraViagemDTO.getClassificacao().trim() + " (" + (movimFinanceiraViagemDTO.getNome()).trim() + ")"); dto.setNomeFornecedor(parceiroDTO.getRazaoSocial()+" - "+parceiroDTO.getNome()); dto.setNomeFormaPagamento(formaPagamentoDTO.getNomeFormaPagamento()); dto.setNomeMoeda(moedaDTO.getNomeMoeda()); dto.setValorTotal(dto.getValor() * dto.getQuantidade()); colDespesaViagemDTOs.add(dto); } } } } } if(colDespesaViagemDTOs != null && !colDespesaViagemDTOs.isEmpty()){ HTMLTable tblItemDespesaOriginal; tblItemDespesaOriginal = document.getTableById("tblItemDespesaOriginal"); tblItemDespesaOriginal.deleteAllRows(); tblItemDespesaOriginal.addRowsByCollection(colDespesaViagemDTOs, new String[]{"dataInicio","tipoDespesa", "nomeFornecedor", "quantidade", "valorTotal", "nomeFormaPagamento", "nomeMoeda"}, null , null, null, null, null); } } /** * Preenche combo de 'Tipo de despesa'. * * @p{ ram document * @param request * @param response * @throws Exception * @author thiago.borges */ public void preencherComboTipoDespesa(DocumentHTML document,HttpServletRequest request, HttpServletResponse response)throws Exception{ TipoMovimFinanceiraViagemService tipoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); String classificacao = ""; List<TipoMovimFinanceiraViagemDTO> listaTipoMovimentacaoFinanceiraViagem = new ArrayList<TipoMovimFinanceiraViagemDTO>(); HTMLSelect tipoDespesaSelect = document.getSelectById("tipoDespesa"); tipoDespesaSelect.removeAllOptions(); tipoDespesaSelect.addOption("", "" + UtilI18N.internacionaliza(request, "citcorpore.comum.selecione") + ""); for(Enumerados.ClassificacaoMovFinViagem classificacaoItem : Enumerados.ClassificacaoMovFinViagem.values()){ classificacao = UtilStrings.removeCaracteresEspeciais(classificacaoItem.getDescricao()); listaTipoMovimentacaoFinanceiraViagem = tipoService.listByClassificacao(classificacao); for(TipoMovimFinanceiraViagemDTO tipoMov : listaTipoMovimentacaoFinanceiraViagem) { tipoDespesaSelect.addOption(tipoMov.getIdtipoMovimFinanceiraViagem().toString(), classificacao.trim() + " (" + (tipoMov.getNome()).trim() + ")"); } } } /** * Preenche combo de 'Moeda'. * * @param document * @param request * @param response * @throws Exception * @author thiago.borges */ public void preencherComboMoeda(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ MoedaService moedaService = (MoedaService) ServiceLocator.getInstance().getService(MoedaService.class, null); HTMLSelect Moeda = (HTMLSelect) document.getSelectById("moeda"); Moeda.removeAllOptions(); Moeda.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); Collection colMoedas = moedaService.findAllAtivos(); if(colMoedas != null && !colMoedas.isEmpty()){ Moeda.addOptions(colMoedas, "idMoeda", "nomeMoeda", null); } document.getElementById("idMoeda").setValue("1"); document.getElementById("nomeMoeda").setValue("Real"); Moeda.setValue("1"); Moeda.setDisabled(true); } /** * Preenche combo de 'Forma de pagamento'. * * @param document * @param request * @param response * @throws Exception * @author thiago.borges */ public void preencherComboFormaPagamento(DocumentHTML document,HttpServletRequest request, HttpServletResponse response)throws Exception{ FormaPagamentoService formaPagamentoService = (FormaPagamentoService) ServiceLocator.getInstance().getService(FormaPagamentoService.class, null); HTMLSelect idFormaPagamentoAux = document.getSelectById("idFormaPagamento"); idFormaPagamentoAux.removeAllOptions(); idFormaPagamentoAux.addOption("", "-- " + UtilI18N.internacionaliza(request, "citcorpore.comum.todos") + " --"); Collection colTipoMovimentacaoFinanceira = formaPagamentoService.list(); if(colTipoMovimentacaoFinanceira!=null){ document.getSelectById("idFormaPagamento").addOptions(colTipoMovimentacaoFinanceira, "idFormaPagamento", "nomeFormaPagamento", null); } } /** * * @param document * @param request * @param response * @throws ServiceException * @throws Exception * @author geber.costa * * Faz o tratamento do tipo da movimenta��o financeira. * Se a Classifica��o for igual a di�ria ent�o o adiantamento = valorUnit�rio * (quantidade + 1), se a classifica��o for qualquer outro diferente * ent�o adiantamento = valorUnit�rio * di�ria * O tratamento para o adiantamento � feito , ele calcula e seta o valor na tela automaticamente. * Esse m�todo tamb�m faz o tratamento para casas decimais * */ public void tratarValoresTipoMovimentacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)throws ServiceException,Exception{ IntegranteViagemDTO integranteViagemDTO = (IntegranteViagemDTO) document.getBean(); if(integranteViagemDTO.getIdTipo() != null && !integranteViagemDTO.getIdTipo().equals("")) { TipoMovimFinanceiraViagemService tipoMovimentacaoService = (TipoMovimFinanceiraViagemService) ServiceLocator.getInstance().getService(TipoMovimFinanceiraViagemService.class, null); TipoMovimFinanceiraViagemDTO tipoMovimFinanceiraDto = new TipoMovimFinanceiraViagemDTO(); tipoMovimFinanceiraDto.setIdtipoMovimFinanceiraViagem(integranteViagemDTO.getIdTipo()); tipoMovimFinanceiraDto = (TipoMovimFinanceiraViagemDTO) tipoMovimentacaoService.restore(tipoMovimFinanceiraDto); if(tipoMovimFinanceiraDto != null) { String classificacao = ""; classificacao = UtilStrings.removeCaracteresEspeciais(tipoMovimFinanceiraDto.getClassificacao()); if(integranteViagemDTO.getValor() == null && tipoMovimFinanceiraDto.getValorPadrao() != null) { NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("pt", "BR")); DecimalFormat decimalFormat = (DecimalFormat) nf; decimalFormat.applyPattern("#,##0.00"); String valorUnit = decimalFormat.format(tipoMovimFinanceiraDto.getValorPadrao()); integranteViagemDTO.setValor(tipoMovimFinanceiraDto.getValorPadrao()); document.getSelectById("valor").setValue(valorUnit); } else { document.getSelectById("valor").setValue(""); } if(classificacao.equalsIgnoreCase(Enumerados.ClassificacaoMovFinViagem.Diaria.toString())) { RequisicaoViagemDTO requisicaoViagemDto = new RequisicaoViagemDTO(); RequisicaoViagemService requisicaoService = (RequisicaoViagemService) ServiceLocator.getInstance().getService(RequisicaoViagemService.class, null); requisicaoViagemDto.setIdSolicitacaoServico(integranteViagemDTO.getIdSolicitacao()); requisicaoViagemDto = (RequisicaoViagemDTO) requisicaoService.restore(requisicaoViagemDto); } document.getElementById("valorAdiantamento").setValue(integranteViagemDTO.getTotalFormatado()); if(tipoMovimFinanceiraDto.getExigeDataHoraCotacao().equalsIgnoreCase("S")) { document.executeScript("$('#labelPrazoCotacao, #labelHoraCotacao').addClass('campoObrigatorio');"); document.getElementById("prazoCotacao").setDisabled(false); document.getElementById("horaCotacao").setDisabled(false); } else { document.executeScript("$('#labelPrazoCotacao, #labelHoraCotacao').removeClass('campoObrigatorio');"); document.getElementById("prazoCotacao").setValue(""); document.getElementById("horaCotacao").setValue(""); document.getElementById("prazoCotacao").setDisabled(true); document.getElementById("horaCotacao").setDisabled(true); } } } else { document.getElementById("quantidade").setValue(""); document.getElementById("valor").setValue(""); document.getElementById("valorAdiantamento").setValue(integranteViagemDTO.getTotalFormatado()); } } /** * Realiza o calculo da quantidade vezes o valor e retorna para a tela do usuario * * @param document * @param request * @param response * @throws ServiceException * @throws Exception */ public void calcularTotal(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)throws ServiceException,Exception{ IntegranteViagemDTO integranteViagemDTO = (IntegranteViagemDTO) document.getBean(); document.getElementById("valorAdiantamento").setValue(integranteViagemDTO.getTotalFormatado()); } }