package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.FiltroOrdemServicoPavimento;
import gcom.atendimentopublico.ordemservico.FiltroOrdemServicoUnidade;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.atendimentopublico.ordemservico.OrdemServicoPavimento;
import gcom.atendimentopublico.ordemservico.OrdemServicoProgramacao;
import gcom.atendimentopublico.ordemservico.OrdemServicoUnidade;
import gcom.atendimentopublico.ordemservico.bean.OSFiltroHelper;
import gcom.atendimentopublico.ordemservico.bean.ObterDadosAtividadeIdOSHelper;
import gcom.atendimentopublico.ordemservico.bean.ObterDadosAtividadesOSHelper;
import gcom.atendimentopublico.ordemservico.bean.ObterDescricaoSituacaoOSHelper;
import gcom.atendimentopublico.ordemservico.bean.PesquisarOrdemServicoHelper;
import gcom.atendimentopublico.registroatendimento.AtendimentoRelacaoTipo;
import gcom.atendimentopublico.registroatendimento.bean.ObterDescricaoSituacaoRAHelper;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.projeto.FiltroProjeto;
import gcom.cadastro.projeto.Projeto;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Action que define o pr�-processamento da p�gina de exibir consultar OS.
*
* @author lms
* @created 04/09/2006
*/
public class ExibirConsultarDadosOrdemServicoAction extends GcomAction {
/**
* Execute do Consultar OS.
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return forward
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("consultarDadosOrdemServico");
// Sess�o
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
ConsultarDadosOrdemServicoActionForm consultarDadosOrdemServicoActionForm = (ConsultarDadosOrdemServicoActionForm) actionForm;
if ( sessao.getAttribute( "manterOs" ) != null && !sessao.getAttribute( "manterOs" ).equals( "" ) ){
httpServletRequest.setAttribute("caminhoRetornoOS", "filtrarOrdemServicoAction.do?voltar=S");
} else {
httpServletRequest.setAttribute("caminhoRetornoOS", "exibirFiltrarOrdemServicoAction.do");
}
OrdemServico ordemServico = null;
Integer idOrdemServico = null;
if (httpServletRequest.getAttribute("numeroOS") != null) {
idOrdemServico = (Integer) httpServletRequest.getAttribute("numeroOS");
} else if (httpServletRequest.getParameter("numeroOSParametro") != null &&
!httpServletRequest.getParameter("numeroOSParametro").equals("")) {
idOrdemServico = new Integer(httpServletRequest.getParameter("numeroOSParametro"));
} else {
idOrdemServico = new Integer(httpServletRequest.getParameter("numeroOS"));
}
if (sessao.getAttribute("colecaoOSHelper") != null) {
PesquisarOrdemServicoHelper filtro = (PesquisarOrdemServicoHelper) sessao.getAttribute("pesquisarOrdemServicoHelper");
List<OSFiltroHelper> colecao = (List<OSFiltroHelper>) sessao.getAttribute("colecaoOSHelper");
Integer totalRegistros = (Integer) sessao.getAttribute("totalRegistros");
Integer numeroPaginasPesquisa = (int) Math.ceil((double) totalRegistros / 10.0);
Integer page = (Integer) sessao.getAttribute("page.offset");
boolean anterior = (httpServletRequest.getParameter("osAnterior") != null) ? true : false;
boolean proximo = (httpServletRequest.getParameter("proximoOS") != null) ? true : false;
int index = obterIndexOSColecao(idOrdemServico, colecao);
if (index != -1) {
if (anterior) index--;
if (proximo) index++;
boolean mudaPagina = false;
if (index > 9 && page < numeroPaginasPesquisa) {
index = 0;
page = page +1;
mudaPagina = true;
}
else if (index < 0 && page > 1) {
index = 9;
page = page -1;
mudaPagina = true;
}
if (mudaPagina) {
filtro.setNumeroPaginasPesquisa(page -1);
sessao.setAttribute("page.offset", page);
Collection<OrdemServico> colecaoOS = fachada.pesquisarOrdemServico(filtro);
if (colecaoOS != null && colecaoOS.size() > 0) {
colecao = (List<OSFiltroHelper>) loadColecaoOSHelper(colecaoOS);
sessao.setAttribute("colecaoOSHelper", colecao);
idOrdemServico = colecao.get(index).getOrdemServico().getId();
} else {
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
}
if (page == 1 && index == 0) {
httpServletRequest.setAttribute("desabilitaBotaoAnterior", "true");
}
if ((page >= numeroPaginasPesquisa) && index >= colecao.size() -1) {
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
if (index >= 0 && index <= 9) {
if (index > colecao.size() -1) {
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
idOrdemServico = colecao.get(index).getOrdemServico().getId();
}
} else {
httpServletRequest.setAttribute("desabilitaBotaoAnterior", "true");
httpServletRequest.setAttribute("desabilitaBotaoProximo", "true");
}
} else {
httpServletRequest.setAttribute("naoHabilitarNavegacao", "OK");
}
ordemServico = pesquisarOrdemServico(idOrdemServico);
consultarDadosOrdemServicoActionForm.reset(actionMapping,
httpServletRequest);
// Dados Gerais da OS
consultarDadosOrdemServicoActionForm.setNumeroOS(ordemServico.getId()
+ "");
consultarDadosOrdemServicoActionForm.setNumeroOSPesquisada(ordemServico
.getId()
+ "");
consultarDadosOrdemServicoActionForm.setSituacaoOSId(ordemServico
.getSituacao()
+ "");
// Pesquisar dados da programa��o
OrdemServicoProgramacao ordemServicoProgramacao = fachada
.pesquisarDataEquipeOSProgramacao(ordemServico.getId());
if (ordemServicoProgramacao != null
&& !ordemServicoProgramacao.equals("")) {
if (ordemServicoProgramacao.getProgramacaoRoteiro()
.getDataRoteiro() != null) {
consultarDadosOrdemServicoActionForm.setDataProgramacao(Util
.formatarData(ordemServicoProgramacao
.getProgramacaoRoteiro().getDataRoteiro()));
} else {
consultarDadosOrdemServicoActionForm.setDataProgramacao("");
}
if (ordemServicoProgramacao.getEquipe().getNome() != null) {
consultarDadosOrdemServicoActionForm
.setEquipeProgramacao(ordemServicoProgramacao
.getEquipe().getNome());
} else {
consultarDadosOrdemServicoActionForm.setEquipeProgramacao("");
}
} else {
consultarDadosOrdemServicoActionForm.setDataProgramacao("");
consultarDadosOrdemServicoActionForm.setEquipeProgramacao("");
}
// Pesquisar dados local de ocorr�ncia
if (ordemServico.getRegistroAtendimento() != null) {
String enderecoOcorrencia = fachada
.obterEnderecoOcorrenciaRA(ordemServico
.getRegistroAtendimento().getId());
consultarDadosOrdemServicoActionForm
.setEnderecoOcorrencia(enderecoOcorrencia);
} else if (ordemServico.getCobrancaDocumento() != null) {
if (ordemServico.getCobrancaDocumento().getImovel() != null) {
String enderecoOcorrencia = fachada
.pesquisarEndereco(ordemServico.getCobrancaDocumento()
.getImovel().getId());
consultarDadosOrdemServicoActionForm
.setEnderecoOcorrencia(enderecoOcorrencia);
}
} else {
consultarDadosOrdemServicoActionForm.setEnderecoOcorrencia("");
}
Imovel imovel = ordemServico.getImovel();
if (imovel != null) {
consultarDadosOrdemServicoActionForm.setMatriculaImovel(""
+ imovel.getId());
consultarDadosOrdemServicoActionForm.setInscricaoImovel(imovel
.getInscricaoFormatada());
consultarDadosOrdemServicoActionForm.setRota(ordemServico
.getImovel().getQuadra().getRota().getCodigo().toString());
if (ordemServico.getImovel().getNumeroSequencialRota() != null) {
consultarDadosOrdemServicoActionForm
.setSequencialRota(ordemServico.getImovel()
.getNumeroSequencialRota().toString());
} else {
consultarDadosOrdemServicoActionForm.setSequencialRota("");
}
} else {
consultarDadosOrdemServicoActionForm.setMatriculaImovel("");
consultarDadosOrdemServicoActionForm.setInscricaoImovel("");
consultarDadosOrdemServicoActionForm.setRota("");
consultarDadosOrdemServicoActionForm.setSequencialRota("");
}
// Caso de Uso [UC0454]
ObterDescricaoSituacaoOSHelper situacaoOS = fachada
.obterDescricaoSituacaoOS(ordemServico.getId());
consultarDadosOrdemServicoActionForm.setSituacaoOS(situacaoOS
.getDescricaoSituacao());
if (ordemServico.getRegistroAtendimento() != null) {
consultarDadosOrdemServicoActionForm.setNumeroRA(ordemServico
.getRegistroAtendimento().getId()
+ "");
// Caso de Uso [UC0420]
ObterDescricaoSituacaoRAHelper situacaoRA = fachada
.obterDescricaoSituacaoRA(ordemServico
.getRegistroAtendimento().getId());
consultarDadosOrdemServicoActionForm.setSituacaoRA(situacaoRA
.getDescricaoSituacao());
}
if (ordemServico.getCobrancaDocumento() != null) {
consultarDadosOrdemServicoActionForm
.setNumeroDocumentoCobranca(ordemServico
.getCobrancaDocumento().getId()
+ "");
}
consultarDadosOrdemServicoActionForm.setDataGeracao(Util
.formatarData(ordemServico.getDataGeracao()));
consultarDadosOrdemServicoActionForm.setTipoServicoId(ordemServico
.getServicoTipo().getId()
+ "");
consultarDadosOrdemServicoActionForm
.setTipoServicoDescricao(ordemServico.getServicoTipo()
.getDescricao());
if (ordemServico.getOsReferencia() != null) {
consultarDadosOrdemServicoActionForm
.setNumeroOSReferencia(ordemServico.getOsReferencia()
.getId()
+ "");
} else {
consultarDadosOrdemServicoActionForm.setNumeroOSReferencia(null);
}
if (ordemServico.getServicoTipoReferencia() != null) {
consultarDadosOrdemServicoActionForm
.setTipoServicoReferenciaId(ordemServico
.getServicoTipoReferencia().getId()
+ "");
consultarDadosOrdemServicoActionForm
.setTipoServicoReferenciaDescricao(ordemServico
.getServicoTipoReferencia().getDescricao());
} else {
consultarDadosOrdemServicoActionForm
.setTipoServicoReferenciaId(null);
}
if (ordemServico.getOsReferidaRetornoTipo() != null) {
consultarDadosOrdemServicoActionForm
.setRetornoOSReferida(ordemServico
.getOsReferidaRetornoTipo().getDescricao());
} else {
consultarDadosOrdemServicoActionForm.setRetornoOSReferida(null);
}
consultarDadosOrdemServicoActionForm.setObservacao(ordemServico
.getObservacao());
String valorServicoOriginal = "";
if (ordemServico.getValorOriginal() != null) {
valorServicoOriginal = ordemServico.getValorOriginal() + "";
consultarDadosOrdemServicoActionForm
.setValorServicoOriginal(valorServicoOriginal.replace(".",
","));
} else {
consultarDadosOrdemServicoActionForm.setValorServicoOriginal("");
}
String valorServicoAtual = "";
if (ordemServico.getValorAtual() != null) {
valorServicoAtual = ordemServico.getValorAtual() + "";
consultarDadosOrdemServicoActionForm
.setValorServicoAtual(valorServicoAtual.replace(".", ","));
} else {
consultarDadosOrdemServicoActionForm.setValorServicoAtual("");
}
consultarDadosOrdemServicoActionForm.setPrioridadeOriginal(ordemServico
.getServicoTipoPrioridadeOriginal().getDescricao());
consultarDadosOrdemServicoActionForm.setPrioridadeAtual(ordemServico
.getServicoTipoPrioridadeAtual().getDescricao());
OrdemServicoUnidade ordemServicoUnidade = consultarOrdemServicoUnidade(
ordemServico.getId(), AtendimentoRelacaoTipo.ABRIR_REGISTRAR);
if (ordemServicoUnidade != null) {
consultarDadosOrdemServicoActionForm
.setUnidadeGeracaoId(ordemServicoUnidade
.getUnidadeOrganizacional().getId()
+ "");
consultarDadosOrdemServicoActionForm
.setUnidadeGeracaoDescricao(ordemServicoUnidade
.getUnidadeOrganizacional().getDescricao());
consultarDadosOrdemServicoActionForm
.setUsuarioGeracaoId(ordemServicoUnidade.getUsuario()
.getId()
+ "");
consultarDadosOrdemServicoActionForm
.setUsuarioGeracaoNome(ordemServicoUnidade.getUsuario()
.getNomeUsuario());
} else {
consultarDadosOrdemServicoActionForm.setUnidadeGeracaoId("");
consultarDadosOrdemServicoActionForm.setUnidadeGeracaoDescricao("");
consultarDadosOrdemServicoActionForm.setUsuarioGeracaoId("");
consultarDadosOrdemServicoActionForm.setUsuarioGeracaoNome("");
}
if (ordemServico.getDataEmissao() != null) {
consultarDadosOrdemServicoActionForm.setDataUltimaEmissao(Util
.formatarData(ordemServico.getDataEmissao()));
} else {
consultarDadosOrdemServicoActionForm.setDataUltimaEmissao("");
}
// Dados de Execu��o de OS
if (new Short(ordemServico.getSituacao()).intValue() == OrdemServico.SITUACAO_ENCERRADO
.intValue()) {
consultarDadosOrdemServicoActionForm.setDataEncerramento(Util
.formatarDataComHora(ordemServico.getDataEncerramento()));
if (ordemServico.getDescricaoParecerEncerramento() != null
&& !ordemServico.equals("")) {
consultarDadosOrdemServicoActionForm
.setParecerEncerramento(ordemServico
.getDescricaoParecerEncerramento());
}
if (ordemServico.getAreaPavimento() != null) {
String areaPavimentacao = ordemServico.getAreaPavimento() + "";
consultarDadosOrdemServicoActionForm
.setAreaPavimentacao(areaPavimentacao.replace(".", ","));
} else {
consultarDadosOrdemServicoActionForm.setAreaPavimentacao("");
}
if (new Short(ordemServico.getIndicadorComercialAtualizado())
.intValue() == 1) {
consultarDadosOrdemServicoActionForm
.setComercialAtualizado("SIM");
} else {
consultarDadosOrdemServicoActionForm
.setComercialAtualizado("N�O");
}
if (ordemServico.getPercentualCobranca() != null) {
String percentualCobrado = ordemServico.getPercentualCobranca()
+ "";
consultarDadosOrdemServicoActionForm
.setPercentualCobranca(percentualCobrado.replace(".",
","));
} else {
consultarDadosOrdemServicoActionForm
.setPercentualCobranca("0,00");
}
if (ordemServico.getServicoNaoCobrancaMotivo() != null) {
consultarDadosOrdemServicoActionForm
.setMotivoNaoCobranca(ordemServico
.getServicoNaoCobrancaMotivo().getDescricao());
consultarDadosOrdemServicoActionForm.setServicoCobrado("N�O");
} else {
consultarDadosOrdemServicoActionForm.setMotivoNaoCobranca(null);
if (ordemServico.getValorAtual() != null
&& ordemServico.getPercentualCobranca() != null) {
BigDecimal valorAtual = new BigDecimal(Util
.converterObjetoParaString(ordemServico
.getValorAtual()));
BigDecimal percentual = new BigDecimal(Util
.converterObjetoParaString(ordemServico
.getPercentualCobranca()));
BigDecimal valorCobrado = valorAtual.multiply(percentual)
.divide(new BigDecimal("100"), 2,
BigDecimal.ROUND_HALF_UP);
consultarDadosOrdemServicoActionForm.setValorCobrado(Util
.formatarMoedaReal(valorCobrado)
+ "");
} else {
consultarDadosOrdemServicoActionForm
.setValorCobrado("0,00");
}
consultarDadosOrdemServicoActionForm.setServicoCobrado("SIM");
}
if (ordemServico.getAtendimentoMotivoEncerramento() != null) {
consultarDadosOrdemServicoActionForm
.setMotivoEncerramento(ordemServico
.getAtendimentoMotivoEncerramento()
.getDescricao());
} else {
consultarDadosOrdemServicoActionForm
.setMotivoEncerramento(null);
}
OrdemServicoUnidade ordemServicoUnidadeEncerramento = consultarOrdemServicoUnidade(
ordemServico.getId(), AtendimentoRelacaoTipo.ENCERRAR);
if (ordemServicoUnidadeEncerramento != null) {
consultarDadosOrdemServicoActionForm
.setUnidadeEncerramentoId(ordemServicoUnidadeEncerramento
.getUnidadeOrganizacional().getId()
+ "");
consultarDadosOrdemServicoActionForm
.setUnidadeEncerramentoDescricao(ordemServicoUnidadeEncerramento
.getUnidadeOrganizacional().getDescricao());
consultarDadosOrdemServicoActionForm
.setUsuarioEncerramentoId(ordemServicoUnidadeEncerramento
.getUsuario().getId()
+ "");
consultarDadosOrdemServicoActionForm
.setUsuarioEncerramentoNome(ordemServicoUnidadeEncerramento
.getUsuario().getNomeUsuario());
}
}
Collection<ObterDadosAtividadesOSHelper> colecaoObterDadosAtividadesOSHelper = fachada
.obterDadosAtividadesOS(ordemServico.getId());
Collection<ObterDadosAtividadeIdOSHelper> colecaoAtividade = new ArrayList();
ObterDadosAtividadeIdOSHelper obterAtividadeIdHelper = null;
if (colecaoObterDadosAtividadesOSHelper != null
&& !colecaoObterDadosAtividadesOSHelper.isEmpty()) {
for (ObterDadosAtividadesOSHelper dadosAtividade : colecaoObterDadosAtividadesOSHelper) {
obterAtividadeIdHelper = new ObterDadosAtividadeIdOSHelper();
obterAtividadeIdHelper.setIdOS(ordemServico.getId());
if (dadosAtividade.isMaterial()) {
if (!atividadePossuiMaterial(colecaoAtividade,
dadosAtividade)) {
obterAtividadeIdHelper.setMaterial(true);
obterAtividadeIdHelper.setAtividade(dadosAtividade
.getAtividade());
colecaoAtividade.add(obterAtividadeIdHelper);
}
} else {
if (!atividadePossuiMaterial(colecaoAtividade,
dadosAtividade)) {
obterAtividadeIdHelper.setPeriodo(true);
obterAtividadeIdHelper.setAtividade(dadosAtividade
.getAtividade());
colecaoAtividade.add(obterAtividadeIdHelper);
}
}
}
consultarDadosOrdemServicoActionForm
.setColecaoOSAtividade(colecaoAtividade);
} else {
consultarDadosOrdemServicoActionForm.setColecaoOSAtividade(null);
}
//Pesquisa Dados de Repavimenta��o
this.montarDadosRepavimentacao(consultarDadosOrdemServicoActionForm);
// Colocado por Raphael Rossiter em 26/10/2006
consultarDadosOrdemServicoActionForm.setNumeroOSParametro("");
httpServletRequest.setAttribute("nomeCampo", "numeroOSParametro");
// Colocado por Hugo Amorim em 13/10/2009
if(ordemServico.getProjeto()!=null){
FiltroProjeto filtroProjeto = new FiltroProjeto();
filtroProjeto.adicionarParametro(new ParametroSimples(FiltroProjeto.ID,ordemServico.getProjeto().getId()));
Collection projetos = fachada.pesquisar(filtroProjeto,Projeto.class.getName());
Projeto projeto = (Projeto) Util.retonarObjetoDeColecao(projetos);
if(projeto!=null){
consultarDadosOrdemServicoActionForm.setNomeProjeto(projeto.getNome());
httpServletRequest.setAttribute("nomeProjeto",true);
}
}
if (sessao.getAttribute("manterOs") == null) {
// Colocado por S�vio Luiz em 24/04/2007
// Caso venha da consulta de documentos cobran�as ent�o n�o mostra
// os but�es de encerra nem atualizar ordem servi�o
if (sessao.getAttribute("caminhoRetornoOS") == null
&& httpServletRequest.getParameter("caminhoRetornoOS") != null) {
sessao.setAttribute("caminhoRetornoOS", httpServletRequest
.getParameter("caminhoRetornoOS"));
}else if (sessao.getAttribute("importarMovimentoACQUAGIS") != null
&& sessao.getAttribute("importarMovimentoACQUAGIS").equals("sim")) {
sessao.setAttribute("caminhoRetornoOS", "filtrarRegistroAtendimentoTramitacaoAction.do?importarMovimentoACQUAGIS=sim");
}else {
sessao.removeAttribute("caminhoRetornoOS");
}
} else {
if (sessao.getAttribute("importarMovimentoACQUAGIS") != null &&
sessao.getAttribute("importarMovimentoACQUAGIS").equals("sim")) {
sessao.setAttribute("caminhoRetornoOS", "filtrarOrdemServicoAction.do?idRa=" + consultarDadosOrdemServicoActionForm.getNumeroRA());
}else {
sessao.removeAttribute("caminhoRetornoOS");
}
}
return retorno;
}
/**
* Consulta a ordem de servi�o pelo id informado
*
* @author Leonardo Regis
* @created 14/08/2006
*/
private OrdemServico pesquisarOrdemServico(Integer id) {
Fachada fachada = Fachada.getInstancia();
OrdemServico retorno = fachada.consultarDadosOrdemServico(id);
if (retorno == null) {
throw new ActionServletException("atencao.naocadastrado", null,
"Ordem de Servi�o");
}
return retorno;
}
/**
* Consulta a Ordem Servi�o Unidade pelo id do OS e Tipo (1=ABRIR/REGISTRAR
* e 3-ENCERRAR)
*
* @author Leonardo Regis
* @date 15/08/2006
*/
private OrdemServicoUnidade consultarOrdemServicoUnidade(Integer idOS,
Integer idAtendimentoTipo) {
OrdemServicoUnidade retorno = null;
Fachada fachada = Fachada.getInstancia();
Collection colecaoOrdemServicoUnidade = null;
FiltroOrdemServicoUnidade filtroOrdemServicoUnidade = new FiltroOrdemServicoUnidade();
filtroOrdemServicoUnidade.adicionarParametro(new ParametroSimples(
FiltroOrdemServicoUnidade.ORDEM_SERVICO_ID, idOS));
filtroOrdemServicoUnidade.adicionarParametro(new ParametroSimples(
FiltroOrdemServicoUnidade.ATENDIMENTO_RELACAO_TIPO_ID,
idAtendimentoTipo));
filtroOrdemServicoUnidade
.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional");
filtroOrdemServicoUnidade
.adicionarCaminhoParaCarregamentoEntidade("usuario");
/**
* Alterado por Arthur Carvalho
* @date 21/12/2009
* Solicitado por Rossiter
*/
filtroOrdemServicoUnidade.setCampoOrderBy(FiltroOrdemServicoUnidade.ULTIMA_ALTERACAO);
colecaoOrdemServicoUnidade = fachada.pesquisar(
filtroOrdemServicoUnidade, OrdemServicoUnidade.class.getName());
if (colecaoOrdemServicoUnidade != null
&& !colecaoOrdemServicoUnidade.isEmpty()) {
retorno = (OrdemServicoUnidade) Util
.retonarObjetoDeColecao(colecaoOrdemServicoUnidade);
}
return retorno;
}
private int obterIndexOSColecao(Integer idOS, Collection<OSFiltroHelper> colecao) {
int index = 0;
for (OSFiltroHelper helper : colecao) {
if (helper.getOrdemServico().getId().equals(idOS)) {
return index;
}
index++;
}
return -1;
}
private boolean atividadePossuiMaterial(
Collection<ObterDadosAtividadeIdOSHelper> colecaoAtividade,
ObterDadosAtividadesOSHelper dadosAtividade) {
boolean retorno = false;
for (ObterDadosAtividadeIdOSHelper helper : colecaoAtividade) {
if (helper.getAtividade().getId().intValue() == dadosAtividade
.getAtividade().getId().intValue()) {
if (!dadosAtividade.isMaterial()) {
helper.setPeriodo(true);
}
retorno = true;
break;
}
}
return retorno;
}
/**
* Carrega cole��o de ordem de servico, situa��o da unidade atual no
* objeto facilitador
*
* @author Rafael Pinto, Pedro Alexandre
* @date 18/08/2006, 14/02/2008
*
* @param colecaoRegistroAtendimento
* @return
*/
private Collection loadColecaoOSHelper(Collection<OrdemServico> colecaoOrdemServico) {
Fachada fachada = Fachada.getInstancia();
Collection colecaoOSHelper = new ArrayList();
UnidadeOrganizacional unidadeAtual = null;
ObterDescricaoSituacaoOSHelper situacao = null;
Imovel imovel = null;
OSFiltroHelper helper = null;
for (Iterator iter = colecaoOrdemServico.iterator(); iter.hasNext();) {
OrdemServico ordemServico = (OrdemServico) iter.next();
situacao = fachada.obterDescricaoSituacaoOS(ordemServico.getId());
if(ordemServico.getRegistroAtendimento() != null) {
unidadeAtual = fachada.obterUnidadeAtualRA(ordemServico.getRegistroAtendimento().getId());
imovel = ordemServico.getRegistroAtendimento().getImovel();
}else if(ordemServico.getCobrancaDocumento() != null){
imovel = ordemServico.getCobrancaDocumento().getImovel();
}
helper = new OSFiltroHelper();
helper.setUnidadeAtual(ordemServico.getUnidadeAtual());
helper.setOrdemServico(ordemServico);
helper.setImovel(imovel);
helper.setUnidadeAtual(unidadeAtual);
helper.setSituacao(situacao.getDescricaoAbreviadaSituacao());
colecaoOSHelper.add(helper);
}
return colecaoOSHelper;
}
/**
* Monta os dados de repavimenta��o
*
* @author Rafael Pinto
* @date 18/03/2011
*
* @param colecaoRegistroAtendimento
* @return void
*/
private void montarDadosRepavimentacao(ConsultarDadosOrdemServicoActionForm form){
FiltroOrdemServicoPavimento filtro = new FiltroOrdemServicoPavimento();
filtro.adicionarParametro(new ParametroSimples(
FiltroOrdemServicoPavimento.ORDEM_SERVICO_ID,
form.getNumeroOS()));
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.PAVIMENTO_RUA);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.PAVIMENTO_CALCADA);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.PAVIMENTO_RUA_RETORNO);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.PAVIMENTO_CALCADA_RETORNO);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.UNIDADE_REPAVIMENTADORA);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.MOTIVO_REJEICAO);
filtro.adicionarCaminhoParaCarregamentoEntidade(FiltroOrdemServicoPavimento.USUARIO_ACEITE);
Collection colecaoOrdemServicoPavimento =
this.getFachada().pesquisar(
filtro,
OrdemServicoPavimento.class.getName());
if (colecaoOrdemServicoPavimento != null && !colecaoOrdemServicoPavimento.isEmpty()) {
OrdemServicoPavimento ordemServicoPavimento =
(OrdemServicoPavimento) Util.retonarObjetoDeColecao(colecaoOrdemServicoPavimento);
if(ordemServicoPavimento.getUnidadeRepavimentadora() != null){
form.setUnidadeRepavimentadoraId(ordemServicoPavimento.getUnidadeRepavimentadora().getId().toString());
form.setUnidadeRepavimentadoraDescricao(ordemServicoPavimento.getUnidadeRepavimentadora().getDescricao());
}
if(ordemServicoPavimento.getPavimentoRua() != null){
form.setTipoPavimentoRua(ordemServicoPavimento.getPavimentoRua().getDescricao());
}
if(ordemServicoPavimento.getAreaPavimentoRua() != null){
form.setAreaPavimentoRua(Util.formataBigDecimal(ordemServicoPavimento.getAreaPavimentoRua(),2,true));
}
if(ordemServicoPavimento.getPavimentoRuaRetorno() != null){
form.setTipoPavimentoRuaRet(ordemServicoPavimento.getPavimentoRuaRetorno().getDescricao());
}
if(ordemServicoPavimento.getAreaPavimentoRuaRetorno() != null){
form.setAreaPavimentoRuaRet(Util.formataBigDecimal(ordemServicoPavimento.getAreaPavimentoRuaRetorno(),2,true));
}
if(ordemServicoPavimento.getPavimentoCalcada() != null){
form.setTipoPavimentoCalcada(ordemServicoPavimento.getPavimentoCalcada().getDescricao());
}
if(ordemServicoPavimento.getAreaPavimentoCalcada() != null){
form.setAreaPavimentoCalcada(Util.formataBigDecimal(ordemServicoPavimento.getAreaPavimentoCalcada(),2,true));
}
if(ordemServicoPavimento.getPavimentoCalcadaRetorno() != null){
form.setTipoPavimentoCalcadaRet(ordemServicoPavimento.getPavimentoCalcadaRetorno().getDescricao());
}
if(ordemServicoPavimento.getAreaPavimentoCalcadaRetorno() != null){
form.setAreaPavimentoCalcadaRet(Util.formataBigDecimal(ordemServicoPavimento.getAreaPavimentoCalcadaRetorno(),2,true));
}
if(ordemServicoPavimento.getDataExecucao() != null){
form.setDataRetornoRepavimentacao(Util.formatarData(ordemServicoPavimento.getDataExecucao()));
}
if(ordemServicoPavimento.getObservacao() != null){
form.setObservacaoRetornoRepavimentacao(ordemServicoPavimento.getObservacao());
}
if(ordemServicoPavimento.getDataRejeicao() != null){
form.setDataRejeicaoRepavimentacao(Util.formatarData(ordemServicoPavimento.getDataRejeicao()));
}
if(ordemServicoPavimento.getMotivoRejeicao() != null){
form.setMotivoRejeicaoRepavimentacao(ordemServicoPavimento.getMotivoRejeicao().getDescricao());
}
if(ordemServicoPavimento.getDescricaoRejeicao() != null){
form.setDescricaoRejeicaoRepavimentacao(ordemServicoPavimento.getDescricaoRejeicao());
}
if(ordemServicoPavimento.getIndicadorAceite() != null){
if(ordemServicoPavimento.getIndicadorAceite().equals(ConstantesSistema.SIM)){
form.setSituacaoAceiteRepavimentacao("Aceita");
}else{
form.setSituacaoAceiteRepavimentacao("N�o Aceita");
}
}else{
form.setSituacaoAceiteRepavimentacao("Sem Aceite");
}
if(ordemServicoPavimento.getDataAceite() != null){
form.setDataAceiteRepavimentacao(Util.formatarData(ordemServicoPavimento.getDataAceite()));
}
if(ordemServicoPavimento.getUsuarioAceite() != null){
form.setUsuarioAceiteId(ordemServicoPavimento.getUsuarioAceite().getLogin());
form.setUsuarioAceiteNome(ordemServicoPavimento.getUsuarioAceite().getNomeUsuario());
}
if(ordemServicoPavimento.getDescricaoMotivoAceite() != null){
form.setDescricaoMotivoAceite(ordemServicoPavimento.getDescricaoMotivoAceite());
}
}
}
}