package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.ordemservico.FiltroServicoTipo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.atendimentopublico.registroatendimento.EspecificacaoImovelSituacao;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao;
import gcom.cadastro.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.DebitoTipo;
import gcom.faturamento.debito.FiltroDebitoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
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;
/**
* Descri��o da classe
*
* @author R�mulo Aur�lio
* @date 13/11/2006
*/
public class AtualizarAdicionarSolicitacaoEspecificacaoAction extends
GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Set no mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("atualizarAdicionarSolicitacaoEspecificacao");
Collection colecaoSolicitacaoTipoEspecificacao = null;
if (sessao.getAttribute("colecaoSolicitacaoTipoEspecificacao") == null) {
colecaoSolicitacaoTipoEspecificacao = new ArrayList();
} else {
colecaoSolicitacaoTipoEspecificacao = (Collection) sessao
.getAttribute("colecaoSolicitacaoTipoEspecificacao");
}
// String idSolicitacaoTipo = sessao.getAttribute("idTipoSolicitacao",
// idSolicitacaoTipo);
AtualizarAdicionarSolicitacaoEspecificacaoActionForm atualizarAdicionarSolicitacaoEspecificacaoActionForm = (AtualizarAdicionarSolicitacaoEspecificacaoActionForm) actionForm;
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
if (sessao.getAttribute("atualizar") != null) {
// Obs: Se remover tudo da cole��o, qdo a cole�ao tiver mais de um
// elemento vai dar pau. Entao, terei que Instaciar um objeto pra
// receber os dados da colecao que esta na sessao, para depois
// comparar com a que esta sendo alterada, pra depois fazer
// altera��o.
Integer posicaoComponente = (Integer) sessao
.getAttribute("posicaoComponente");
int index = 0;
Iterator colecaoSolicitacaoTipoEspecificacaoIterator = colecaoSolicitacaoTipoEspecificacao
.iterator();
while (colecaoSolicitacaoTipoEspecificacaoIterator.hasNext()) {
index++;
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) colecaoSolicitacaoTipoEspecificacaoIterator
.next();
if (index == posicaoComponente) {
solicitacaoTipoEspecificacao
.setIndicadorSolicitante(new Short("1"));
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento().equals("")) {
// Prazo de previs�o de atendimento
solicitacaoTipoEspecificacao.setDiasPrazo(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento()));
}
// Descri��o da especifica��o
solicitacaoTipoEspecificacao
.setDescricao(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoSolicitacao());
// Pavimento de cal�ada obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorPavimentoCalcada(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada()));
}
// Pavimento de rua obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorPavimentoRua(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua()));
}
// refere-se a liga��o de agua
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorLigacaoAgua(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua()));
}
// Cobran�a de material
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorCobrancaMaterial(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial()));
}
// Matricula do im�vel obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorMatricula(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel()));
}
// indicador Urg�ncia
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorUrgencia(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia()));
}
// Parecer de encerramento obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento().equals(
"")) {
solicitacaoTipoEspecificacao
.setIndicadorParecerEncerramento(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento()));
}
// Gera d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoDebito(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito()));
}
// Gera Cr�dito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoCredito(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito()));
}
// hora e data correntes
solicitacaoTipoEspecificacao.setUltimaAlteracao(new Date());
// Unidade inicial tramita��o
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao().equals("")) {
// Verifica se o c�digo foi modificado
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoUnidadeTramitacao() == null
|| atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoUnidadeTramitacao().trim()
.equals("")) {
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional
.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao()));
filtroUnidadeOrganizacional
.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection unidadeOrganizacionalEncontrado = fachada
.pesquisar(filtroUnidadeOrganizacional,
UnidadeOrganizacional.class
.getName());
if (unidadeOrganizacionalEncontrado != null
&& !unidadeOrganizacionalEncontrado
.isEmpty()) {
UnidadeOrganizacional uinidadeOrganizacional = (UnidadeOrganizacional) ((List) unidadeOrganizacionalEncontrado)
.get(0);
solicitacaoTipoEspecificacao
.setUnidadeOrganizacional(uinidadeOrganizacional);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Unidade Organizacional");
}
} else {
UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional();
unidadeOrganizacional.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao()));
solicitacaoTipoEspecificacao
.setUnidadeOrganizacional(unidadeOrganizacional);
}
} else {
solicitacaoTipoEspecificacao
.setUnidadeOrganizacional(null);
}
// id do tipo da solicita��o gerada
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS().equals("")) {
// Verifica se o c�digo foi modificado
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoServicoOS() == null
|| atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoServicoOS().trim().equals(
"")) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo
.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
Collection servicoTipoEncontrado = fachada
.pesquisar(filtroServicoTipo,
ServicoTipo.class.getName());
if (servicoTipoEncontrado != null
&& !servicoTipoEncontrado.isEmpty()) {
// [SF0003] - Validar Tipo Servi�o
fachada
.verificarServicoTipoReferencia(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
ServicoTipo servicoTipo = (ServicoTipo) ((List) servicoTipoEncontrado)
.get(0);
solicitacaoTipoEspecificacao
.setServicoTipo(servicoTipo);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Servi�o Tipo");
}
} else {
ServicoTipo servicoTipo = new ServicoTipo();
servicoTipo.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
servicoTipo
.setDescricao(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoServicoOS());
solicitacaoTipoEspecificacao
.setServicoTipo(servicoTipo);
}
}
// Gera ordem de servi�o
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoOrdemServico(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico()));
}
// Cliente Obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorCliente(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente()));
}
// Indicador verfificca��o de d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorVerificarDebito(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito()));
}
// Indicador encerramento autom�tico
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico()
.equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorEncerramentoAutomatico(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico()));
}
//Indicador loja virtual
if(Util.verificarNaoVazio(atualizarAdicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual())){
solicitacaoTipoEspecificacao.setIndicadorLojaVirtual(new Short(atualizarAdicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual()));
}
// Situa��o imovel
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel().equals("")) {
EspecificacaoImovelSituacao especificacaoImovelSituacao = new EspecificacaoImovelSituacao();
especificacaoImovelSituacao.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel()));
solicitacaoTipoEspecificacao
.setEspecificacaoImovelSituacao(especificacaoImovelSituacao);
}
Collection colecaoEspecificacaoServicoTipo = (Collection) sessao
.getAttribute("colecaoEspecificacaoServicoTipo");
// recupera a cole��o de especificacao servico tipo
if (colecaoEspecificacaoServicoTipo != null
&& !colecaoEspecificacaoServicoTipo.isEmpty()) {
Collection colecao = new ArrayList();
colecao.addAll(colecaoEspecificacaoServicoTipo);
// [SF0004] - Validar Valor Ordem de Servi�o 2� parte
fachada.verificarOrdemExecucaoForaOrdem(colecao);
solicitacaoTipoEspecificacao
.setEspecificacaoServicoTipos(new HashSet(
colecaoEspecificacaoServicoTipo));
sessao
.removeAttribute("colecaoEspecificacaoServicoTipo");
}
// Colocado por Raphael Rossiter em 25/02/2008
// Tipo de D�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo().equals("")) {
FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo();
filtroDebitoTipo
.adicionarParametro(new ParametroSimples(
FiltroDebitoTipo.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo()));
Collection debitoTipoEncontrado = fachada.pesquisar(
filtroDebitoTipo, DebitoTipo.class.getName());
if (debitoTipoEncontrado != null
&& !debitoTipoEncontrado.isEmpty()) {
DebitoTipo debitoTipo = (DebitoTipo) Util
.retonarObjetoDeColecao(debitoTipoEncontrado);
solicitacaoTipoEspecificacao
.setDebitoTipo(debitoTipo);
} else {
// [FS0007] - Validar Tipo de d�bito
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Tipo de D�bito");
}
} else {
solicitacaoTipoEspecificacao.setDebitoTipo(null);
}
// Valor do D�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito().equals("")) {
solicitacaoTipoEspecificacao
.setValorDebito(Util
.formatarMoedaRealparaBigDecimal(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito()));
} else {
solicitacaoTipoEspecificacao.setValorDebito(null);
}
// Alterar Valor do d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor().equals(
"")) {
solicitacaoTipoEspecificacao
.setIndicadorPermiteAlterarValor(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor()));
}
// Cobrar Juros
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorCobrarJuros(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros()));
}
// indicador de uso ativo
solicitacaoTipoEspecificacao.setIndicadorUso(new Short(
ConstantesSistema.INDICADOR_USO_ATIVO));
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao().equals("")) {
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacaoNovoRA = new SolicitacaoTipoEspecificacao();
solicitacaoTipoEspecificacaoNovoRA
.setId(Integer
.parseInt(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao()));
SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo();
solicitacaoTipo
.setId(Integer
.parseInt(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdTipoSolicitacao()));
solicitacaoTipoEspecificacaoNovoRA
.setSolicitacaoTipo(solicitacaoTipo);
solicitacaoTipoEspecificacao
.setSolicitacaoTipoEspecificacaoNovoRA(solicitacaoTipoEspecificacaoNovoRA);
}
// Informar conta no Registro de Atendimento
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorInformarContaRA(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA()));
}
// Informar conta no Registro de Atendimento
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP().equals(
"")) {
solicitacaoTipoEspecificacao
.setIndicadorInformarPagamentoDuplicidade(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP()));
}
// Informar altera��o no vencimento alternativo
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo()
.equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorAlterarVencimentoAlternativo(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo()));
}
}
}
} else {
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = new SolicitacaoTipoEspecificacao();
solicitacaoTipoEspecificacao
.setIndicadorSolicitante(new Short("1"));
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento().equals("")) {
// Prazo de previs�o de atendimento
solicitacaoTipoEspecificacao.setDiasPrazo(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getPrazoPrevisaoAtendimento()));
}
// Descri��o da especifica��o
solicitacaoTipoEspecificacao
.setDescricao(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoSolicitacao());
// Pavimento de cal�ada obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorPavimentoCalcada(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoCalcada()));
}
// Pavimento de rua obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorPavimentoRua(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPavimentoRua()));
}
// refere-se a liga��o de agua
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua().equals("")) {
solicitacaoTipoEspecificacao.setIndicadorLigacaoAgua(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorLigacaoAgua()));
}
// Cobran�a de material
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorCobrancaMaterial(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrancaMaterial()));
}
// Matricula do im�vel obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel().equals("")) {
solicitacaoTipoEspecificacao.setIndicadorMatricula(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorMatriculaImovel()));
}
// Indicador Urg�ncia
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia().equals("")) {
solicitacaoTipoEspecificacao.setIndicadorUrgencia(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorUrgencia()));
}
// Parecer de encerramento obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorParecerEncerramento(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorParecerEncerramento()));
}
// Gera d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoDebito(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarDebito()));
}
// Gera Cr�dito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoCredito(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGerarCredito()));
}
// Encerramento Autom�tico
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorEncerramentoAutomatico(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorEncerramentoAutomatico()));
}
//Indicador loja virtual
if(Util.verificarNaoVazio(atualizarAdicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual())){
solicitacaoTipoEspecificacao.setIndicadorLojaVirtual(new Short(atualizarAdicionarSolicitacaoEspecificacaoActionForm.getIndicadorLojaVirtual()));
}
// hora e data correntes
solicitacaoTipoEspecificacao.setUltimaAlteracao(new Date());
// Unidade inicial tramita��o
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao().equals("")) {
// Verifica se o c�digo foi modificado
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoUnidadeTramitacao() == null
|| atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoUnidadeTramitacao().trim().equals(
"")) {
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional
.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao()));
filtroUnidadeOrganizacional
.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection unidadeOrganizacionalEncontrado = fachada
.pesquisar(filtroUnidadeOrganizacional,
UnidadeOrganizacional.class.getName());
if (unidadeOrganizacionalEncontrado != null
&& !unidadeOrganizacionalEncontrado.isEmpty()) {
UnidadeOrganizacional uinidadeOrganizacional = (UnidadeOrganizacional) ((List) unidadeOrganizacionalEncontrado)
.get(0);
solicitacaoTipoEspecificacao
.setUnidadeOrganizacional(uinidadeOrganizacional);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Unidade Organizacional");
}
} else {
UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional();
unidadeOrganizacional.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdUnidadeTramitacao()));
solicitacaoTipoEspecificacao
.setUnidadeOrganizacional(unidadeOrganizacional);
}
}
// id do tipo da solicita��o gerada
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS().equals("")) {
// Verifica se o c�digo foi modificado
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoServicoOS() == null
|| atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getDescricaoServicoOS().trim().equals("")) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
Collection servicoTipoEncontrado = fachada.pesquisar(
filtroServicoTipo, ServicoTipo.class.getName());
if (servicoTipoEncontrado != null
&& !servicoTipoEncontrado.isEmpty()) {
// [SF0003] - Validar Tipo Servi�o
fachada.verificarServicoTipoReferencia(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
ServicoTipo servicoTipo = (ServicoTipo) ((List) servicoTipoEncontrado)
.get(0);
solicitacaoTipoEspecificacao
.setServicoTipo(servicoTipo);
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Servi�o Tipo");
}
} else {
ServicoTipo servicoTipo = new ServicoTipo();
servicoTipo.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdServicoOS()));
solicitacaoTipoEspecificacao.setServicoTipo(servicoTipo);
}
}
// Gera ordem de servi�o
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorGeracaoOrdemServico(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorGeraOrdemServico()));
}
// Cliente Obrigat�rio
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente().equals("")) {
solicitacaoTipoEspecificacao.setIndicadorCliente(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCliente()));
}
// Indicador verfificca��o de d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorVerificarDebito(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorVerificarDebito()));
}
// Situa��o imovel
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel().equals("")) {
EspecificacaoImovelSituacao especificacaoImovelSituacao = new EspecificacaoImovelSituacao();
especificacaoImovelSituacao.setId(new Integer(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdSituacaoImovel()));
solicitacaoTipoEspecificacao
.setEspecificacaoImovelSituacao(especificacaoImovelSituacao);
}
Collection colecaoEspecificacaoServicoTipo = (Collection) sessao
.getAttribute("colecaoEspecificacaoServicoTipo");
// recupera a cole��o de especificacao servico tipo
if (colecaoEspecificacaoServicoTipo != null
&& !colecaoEspecificacaoServicoTipo.isEmpty()) {
Collection colecao = new ArrayList();
colecao.addAll(colecaoEspecificacaoServicoTipo);
// [SF0004] - Validar Valor Ordem de Servi�o 2� parte
fachada.verificarOrdemExecucaoForaOrdem(colecao);
solicitacaoTipoEspecificacao
.setEspecificacaoServicoTipos(new HashSet(
colecaoEspecificacaoServicoTipo));
sessao.removeAttribute("colecaoEspecificacaoServicoTipo");
}
// Colocado por Raphael Rossiter em 25/02/2008
// Tipo de D�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo().equals("")) {
FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo();
filtroDebitoTipo.adicionarParametro(new ParametroSimples(
FiltroDebitoTipo.ID,
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdDebitoTipo()));
Collection debitoTipoEncontrado = fachada.pesquisar(
filtroDebitoTipo, DebitoTipo.class.getName());
if (debitoTipoEncontrado != null
&& !debitoTipoEncontrado.isEmpty()) {
DebitoTipo debitoTipo = (DebitoTipo) Util
.retonarObjetoDeColecao(debitoTipoEncontrado);
solicitacaoTipoEspecificacao.setDebitoTipo(debitoTipo);
} else {
// [FS0007] - Validar Tipo de d�bito
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Tipo de D�bito");
}
}
// Valor do D�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito().equals("")) {
solicitacaoTipoEspecificacao
.setValorDebito(Util
.formatarMoedaRealparaBigDecimal(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getValorDebito()));
}
// Alterar Valor do d�bito
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorPermiteAlterarValor(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorPermiteAlterarValor()));
}
// Cobrar Juros
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros().equals("")) {
solicitacaoTipoEspecificacao.setIndicadorCobrarJuros(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorCobrarJuros()));
}
// indicador de uso ativo
solicitacaoTipoEspecificacao.setIndicadorUso(new Short(
ConstantesSistema.INDICADOR_USO_ATIVO));
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao().equals("")) {
SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacaoNovoRA = new SolicitacaoTipoEspecificacao();
solicitacaoTipoEspecificacaoNovoRA
.setId(Integer
.parseInt(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdEspecificacao()));
SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo();
solicitacaoTipo
.setId(Integer
.parseInt(atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIdTipoSolicitacao()));
solicitacaoTipoEspecificacaoNovoRA
.setSolicitacaoTipo(solicitacaoTipo);
solicitacaoTipoEspecificacao
.setSolicitacaoTipoEspecificacaoNovoRA(solicitacaoTipoEspecificacaoNovoRA);
}
// Informar conta no Registro de Atendimento
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorInformarContaRA(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarContaRA()));
}
// Informar Pagamento em duplicidade
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorInformarPagamentoDuplicidade(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorInformarPagamentoDP()));
}
// Informar Altera��o no Vencimento Alternativo
if (atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo() != null
&& !atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo().equals("")) {
solicitacaoTipoEspecificacao
.setIndicadorAlterarVencimentoAlternativo(new Short(
atualizarAdicionarSolicitacaoEspecificacaoActionForm
.getIndicadorAlterarVencimentoAlternativo()));
}
if (!colecaoSolicitacaoTipoEspecificacao
.contains(solicitacaoTipoEspecificacao)) {
colecaoSolicitacaoTipoEspecificacao
.add(solicitacaoTipoEspecificacao);
}
}
sessao.setAttribute("colecaoSolicitacaoTipoEspecificacao",
colecaoSolicitacaoTipoEspecificacao);
// manda um parametro para fechar o popup
httpServletRequest.setAttribute("fecharPopup", 1);
return retorno;
}
}