package gcom.gui.atendimentopublico;
import gcom.atendimentopublico.LigacaoOrigem;
import gcom.atendimentopublico.bean.IntegracaoComercialHelper;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgoto;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgoto;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoCaixaInspecao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoDestinoAguasPluviais;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoDestinoDejetos;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoDiametro;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoEsgotamento;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoMaterial;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoPerfil;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
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;
/**
* Description of the Class
*
* @author Leandro Cavalcanti
* @created 20 de Junho de 2006
*/
public class EfetuarLigacaoEsgotoAction 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) {
// localiza o action no objeto actionmapping
ActionForward retorno = actionMapping.findForward("telaSucesso");
HttpSession sessao = httpServletRequest.getSession(false);
EfetuarLigacaoEsgotoActionForm ligacaoEsgotoActionForm = (EfetuarLigacaoEsgotoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
// Usuario logado no sistema
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
String ordemServicoId = ligacaoEsgotoActionForm.getIdOrdemServico();
String materialLigacao = ligacaoEsgotoActionForm.getMaterialLigacao();
String perfilLigacao = ligacaoEsgotoActionForm.getPerfilLigacao();
String percentual = ligacaoEsgotoActionForm.getPercentualColeta()
.toString().replace(",", ".");
String percentualEsgoto = ligacaoEsgotoActionForm.getPercentualEsgoto()
.toString().replace(",", ".");
String idServicoMotivoNaoCobranca = ligacaoEsgotoActionForm
.getMotivoNaoCobranca();
String valorPercentual = ligacaoEsgotoActionForm
.getPercentualCobranca();
String indicadorCaixaGordura = ligacaoEsgotoActionForm
.getIndicadorCaixaGordura();
String ligacaoEsgotoEsgotamento = ligacaoEsgotoActionForm
.getCondicaoEsgotamento();
String ligacaoEsgotoDestinoDejetos = ligacaoEsgotoActionForm
.getDestinoDejetos();
String ligacaoEsgotoCaixaInspecao = ligacaoEsgotoActionForm
.getSituacaoCaixaInspecao();
String ligacaoEsgotoDestinoAguasPluviais = ligacaoEsgotoActionForm
.getDestinoAguasPluviais();
String idLigacaoOrigem = ligacaoEsgotoActionForm.getIdLigacaoOrigem();
String idImovel = ligacaoEsgotoActionForm.getIdImovel();
String indicadorLigacaoEsgoto = ligacaoEsgotoActionForm.getIndicadorLigacao();
Imovel imovel = null;
LigacaoEsgoto ligacaoEsgoto = new LigacaoEsgoto();
FiltroLigacaoEsgoto filtroLigacaoEsgoto = new FiltroLigacaoEsgoto();
if (sessao.getAttribute("imovel") != null) {
imovel = (Imovel) sessao.getAttribute("imovel");
filtroLigacaoEsgoto.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgoto.ID, imovel.getId()));
} else if (idImovel != null && !idImovel.trim().equals("")) {
filtroLigacaoEsgoto.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgoto.ID, idImovel));
}
Collection colecaoLigacaoEsgoto = fachada.pesquisar(filtroLigacaoEsgoto, LigacaoEsgoto.class.getName());
if (colecaoLigacaoEsgoto != null && !colecaoLigacaoEsgoto.isEmpty()) {
ligacaoEsgoto = (LigacaoEsgoto) Util.retonarObjetoDeColecao(colecaoLigacaoEsgoto);
}
if (idImovel != null && !idImovel.equalsIgnoreCase("")) {
imovel = new Imovel();
imovel.setId(new Integer(idImovel));
imovel.setUltimaAlteracao(new Date());
/*--------------------- In�cioDados da Liga��o Esgoto ------------------------*/
// lesg_iccaixagordura
ligacaoEsgoto.setIndicadorCaixaGordura(new Short(
indicadorCaixaGordura));
ligacaoEsgoto.setIndicadorLigacaoEsgoto(new Short(indicadorLigacaoEsgoto));
// lagu_tultimaalteracao
ligacaoEsgoto.setUltimaAlteracao(new Date());
// lest_id
ligacaoEsgoto.setId(imovel.getId());
// LEST_ID
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO);
// ligacaoEsgoto.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
String diametroLigacao = ligacaoEsgotoActionForm
.getDiametroLigacao();
if (diametroLigacao != null
&& !diametroLigacao.equals("")
&& !diametroLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoDiametro ligacaoEsgotoDiametro = new LigacaoEsgotoDiametro();
ligacaoEsgotoDiametro.setId(new Integer(diametroLigacao));
ligacaoEsgoto.setLigacaoEsgotoDiametro(ligacaoEsgotoDiametro);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Diametro da Liga��o");
}
if (ligacaoEsgotoActionForm.getDataLigacao() != null
&& !ligacaoEsgotoActionForm.getDataLigacao().equals("")) {
Date data = Util.converteStringParaDate(ligacaoEsgotoActionForm
.getDataLigacao());
ligacaoEsgoto.setDataLigacao(data);
} else {
throw new ActionServletException("atencao.informe_campo", null,
" Data da Liga��o");
}
if (materialLigacao != null
&& !materialLigacao.equals("")
&& !materialLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoMaterial ligacaoEsgotoMaterialMaterial = new LigacaoEsgotoMaterial();
ligacaoEsgotoMaterialMaterial
.setId(new Integer(materialLigacao));
ligacaoEsgoto
.setLigacaoEsgotoMaterial(ligacaoEsgotoMaterialMaterial);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Material da Liga��o");
}
if (perfilLigacao != null
&& !perfilLigacao.equals("")
&& !perfilLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoPerfil ligacaoEsgotoPerfil = new LigacaoEsgotoPerfil();
ligacaoEsgotoPerfil.setId(new Integer(perfilLigacao));
ligacaoEsgoto.setLigacaoEsgotoPerfil(ligacaoEsgotoPerfil);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Perfil da Liga��o");
}
// item 4.5 - [FS006] caso 1,3
if (percentual != null && !percentual.equals("")) {
BigDecimal percentualInformadoColeta = new BigDecimal(
percentual);
if (percentualInformadoColeta != null
&& !percentualInformadoColeta.equals("")
&& (percentualInformadoColeta.intValue() <= ConstantesSistema.NUMERO_MAXIMO_CONSUMO_MINIMO_FIXADO)) {
ligacaoEsgoto
.setPercentualAguaConsumidaColetada(percentualInformadoColeta);
}
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Percentual de Coleta");
}
// Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008
// Ligacao Origem
if (idLigacaoOrigem != null
&& !idLigacaoOrigem.equals("")
&& !idLigacaoOrigem.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoOrigem ligacaoOrigem = new LigacaoOrigem();
ligacaoOrigem.setId(new Integer(idLigacaoOrigem));
ligacaoEsgoto.setLigacaoOrigem(ligacaoOrigem);
}
if (percentualEsgoto != null && !percentualEsgoto.equals("")) {
BigDecimal percentualEsgotoColeta = new BigDecimal(
percentualEsgoto);
ligacaoEsgoto.setPercentual(percentualEsgotoColeta);
}
// Condica��o do Esgotamento
if (ligacaoEsgotoEsgotamento != null
&& Integer.parseInt(ligacaoEsgotoEsgotamento) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoEsgotamento le = new LigacaoEsgotoEsgotamento();
le.setId(Integer.parseInt(ligacaoEsgotoEsgotamento));
ligacaoEsgoto.setLigacaoEsgotoEsgotamento(le);
}
// Destino dos dejetos
if (ligacaoEsgotoDestinoDejetos != null
&& Integer.parseInt(ligacaoEsgotoDestinoDejetos) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoDestinoDejetos ledd = new LigacaoEsgotoDestinoDejetos();
ledd.setId(Integer.parseInt(ligacaoEsgotoDestinoDejetos));
ligacaoEsgoto.setLigacaoEsgotoDestinoDejetos(ledd);
}
// Situacao da caixa de inspecao
if (ligacaoEsgotoCaixaInspecao != null
&& Integer.parseInt(ligacaoEsgotoCaixaInspecao) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoCaixaInspecao leci = new LigacaoEsgotoCaixaInspecao();
leci.setId(Integer.parseInt(ligacaoEsgotoCaixaInspecao));
ligacaoEsgoto.setLigacaoEsgotoCaixaInspecao(leci);
}
// Destino das Aguas Pluviais
if (ligacaoEsgotoDestinoAguasPluviais != null
&& Integer.parseInt(ligacaoEsgotoDestinoAguasPluviais) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoDestinoAguasPluviais ledap = new LigacaoEsgotoDestinoAguasPluviais();
ledap
.setId(Integer
.parseInt(ligacaoEsgotoDestinoAguasPluviais));
ligacaoEsgoto.setLigacaoEsgotoDestinoAguasPluviais(ledap);
}
ligacaoEsgoto.setImovel(imovel);
String qtdParcelas = ligacaoEsgotoActionForm
.getQuantidadeParcelas();
IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper();
integracaoComercialHelper.setLigacaoEsgoto(ligacaoEsgoto);
integracaoComercialHelper.setImovel(imovel);
integracaoComercialHelper.setOrdemServico(null);
integracaoComercialHelper.setQtdParcelas(qtdParcelas);
fachada.inserirLigacaoEsgoto(integracaoComercialHelper);
if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
montarPaginaSucesso(httpServletRequest,
"Liga��o de Esgoto efetuada com Sucesso",
"Efetuar outra Liga��o de Esgoto",
"exibirEfetuarLigacaoEsgotoAction.do?menu=sim",
"exibirAtualizarLigacaoEsgotoAction.do?menu=sim&matriculaImovel="
+ imovel.getId(),
"Atualiza��o Liga��o de Esgoto efetuada");
}
}
OrdemServico ordemServico = null;
if (ordemServicoId != null && !ordemServicoId.equals("")) {
ordemServico = (OrdemServico) sessao.getAttribute("ordemServico");
if (ordemServico == null) {
throw new ActionServletException(
"atencao.ordem_servico_inexistente", null,
"ORDEM DE SERVI�O INEXISTENTE");
}
ligacaoEsgoto.setImovel(imovel);
if (ligacaoEsgotoActionForm.getDataLigacao() != null
&& ligacaoEsgotoActionForm.getDataLigacao() != "") {
Date data = Util.converteStringParaDate(ligacaoEsgotoActionForm
.getDataLigacao());
ligacaoEsgoto.setDataLigacao(data);
} else {
throw new ActionServletException("atencao.informe_campo", null,
" Data da Liga��o");
}
/*--------------------- In�cioDados da Liga��o Esgoto ------------------------*/
// lesg_iccaixagordura
ligacaoEsgoto.setIndicadorCaixaGordura(new Short(
indicadorCaixaGordura));
ligacaoEsgoto.setIndicadorLigacaoEsgoto(new Short(indicadorLigacaoEsgoto));
// lagu_tultimaalteracao
ligacaoEsgoto.setUltimaAlteracao(new Date());
// lest_id
ligacaoEsgoto.setId(imovel.getId());
// LEST_ID
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId(LigacaoEsgotoSituacao.LIGADO);
// ligacaoEsgoto.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
String diametroLigacao = ligacaoEsgotoActionForm
.getDiametroLigacao();
if (diametroLigacao != null
&& !diametroLigacao.equals("")
&& !diametroLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoDiametro ligacaoEsgotoDiametro = new LigacaoEsgotoDiametro();
ligacaoEsgotoDiametro.setId(new Integer(diametroLigacao));
ligacaoEsgoto.setLigacaoEsgotoDiametro(ligacaoEsgotoDiametro);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Diametro da Liga��o");
}
if (materialLigacao != null
&& !materialLigacao.equals("")
&& !materialLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoMaterial ligacaoEsgotoMaterialMaterial = new LigacaoEsgotoMaterial();
ligacaoEsgotoMaterialMaterial
.setId(new Integer(materialLigacao));
ligacaoEsgoto
.setLigacaoEsgotoMaterial(ligacaoEsgotoMaterialMaterial);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Material da Liga��o");
}
if (perfilLigacao != null
&& !perfilLigacao.equals("")
&& !perfilLigacao.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoEsgotoPerfil ligacaoEsgotoPerfil = new LigacaoEsgotoPerfil();
ligacaoEsgotoPerfil.setId(new Integer(perfilLigacao));
ligacaoEsgoto.setLigacaoEsgotoPerfil(ligacaoEsgotoPerfil);
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Perfil da Liga��o");
}
// item 4.5 - [FS006] caso 1,3
if (percentual != null && !percentual.equals("")) {
BigDecimal percentualInformadoColeta = new BigDecimal(
percentual);
if (percentualInformadoColeta != null
&& !percentualInformadoColeta.equals("")
&& (percentualInformadoColeta.intValue() <= ConstantesSistema.NUMERO_MAXIMO_CONSUMO_MINIMO_FIXADO)) {
ligacaoEsgoto
.setPercentualAguaConsumidaColetada(percentualInformadoColeta);
}
} else {
throw new ActionServletException(
"atencao.informe_campo_obrigatorio", null,
"Percentual de Coleta");
}
// Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008
// Ligacao Origem
if (idLigacaoOrigem != null
&& !idLigacaoOrigem.equals("")
&& !idLigacaoOrigem.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoOrigem ligacaoOrigem = new LigacaoOrigem();
ligacaoOrigem.setId(new Integer(idLigacaoOrigem));
ligacaoEsgoto.setLigacaoOrigem(ligacaoOrigem);
}
if (percentualEsgoto != null && !percentualEsgoto.equals("")) {
BigDecimal percentualEsgotoColeta = new BigDecimal(
percentualEsgoto);
ligacaoEsgoto.setPercentual(percentualEsgotoColeta);
}
// Condica��o do Esgotamento
if (ligacaoEsgotoEsgotamento != null
&& Integer.parseInt(ligacaoEsgotoEsgotamento) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoEsgotamento le = new LigacaoEsgotoEsgotamento();
le.setId(Integer.parseInt(ligacaoEsgotoEsgotamento));
ligacaoEsgoto.setLigacaoEsgotoEsgotamento(le);
}
// Destino dos dejetos
if (ligacaoEsgotoDestinoDejetos != null
&& Integer.parseInt(ligacaoEsgotoDestinoDejetos) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoDestinoDejetos ledd = new LigacaoEsgotoDestinoDejetos();
ledd.setId(Integer.parseInt(ligacaoEsgotoDestinoDejetos));
ligacaoEsgoto.setLigacaoEsgotoDestinoDejetos(ledd);
}
// Situacao da caixa de inspecao
if (ligacaoEsgotoCaixaInspecao != null
&& Integer.parseInt(ligacaoEsgotoCaixaInspecao) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoCaixaInspecao leci = new LigacaoEsgotoCaixaInspecao();
leci.setId(Integer.parseInt(ligacaoEsgotoCaixaInspecao));
ligacaoEsgoto.setLigacaoEsgotoCaixaInspecao(leci);
}
// Destino das Aguas Pluviais
if (ligacaoEsgotoDestinoAguasPluviais != null
&& Integer.parseInt(ligacaoEsgotoDestinoAguasPluviais) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
LigacaoEsgotoDestinoAguasPluviais ledap = new LigacaoEsgotoDestinoAguasPluviais();
ledap
.setId(Integer
.parseInt(ligacaoEsgotoDestinoAguasPluviais));
ligacaoEsgoto.setLigacaoEsgotoDestinoAguasPluviais(ledap);
}
if (ordemServico != null
&& ligacaoEsgotoActionForm.getIdTipoDebito() != null) {
ServicoNaoCobrancaMotivo servicoNaoCobrancaMotivo = null;
ordemServico.setIndicadorComercialAtualizado(new Short("1"));
BigDecimal valorAtual = new BigDecimal(0);
if (ligacaoEsgotoActionForm.getValorDebito() != null) {
String valorDebito = ligacaoEsgotoActionForm
.getValorDebito().toString().replace(".", "");
valorDebito = valorDebito.replace(",", ".");
valorAtual = new BigDecimal(valorDebito);
ordemServico.setValorAtual(valorAtual);
}
if (idServicoMotivoNaoCobranca != null
&& !idServicoMotivoNaoCobranca
.equals(ConstantesSistema.NUMERO_NAO_INFORMADO
+ "")) {
servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo();
servicoNaoCobrancaMotivo.setId(new Integer(
idServicoMotivoNaoCobranca));
}
ordemServico
.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo);
if (valorPercentual != null) {
ordemServico.setPercentualCobranca(new BigDecimal(
ligacaoEsgotoActionForm.getPercentualCobranca()));
}
ordemServico.setUltimaAlteracao(new Date());
}
String qtdParcelas = ligacaoEsgotoActionForm
.getQuantidadeParcelas();
IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper();
integracaoComercialHelper.setLigacaoEsgoto(ligacaoEsgoto);
integracaoComercialHelper.setImovel(imovel);
integracaoComercialHelper.setOrdemServico(ordemServico);
integracaoComercialHelper.setQtdParcelas(qtdParcelas);
integracaoComercialHelper.setUsuarioLogado(usuario);
if (ligacaoEsgotoActionForm.getVeioEncerrarOS().equalsIgnoreCase(
"FALSE")) {
integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE);
fachada.inserirLigacaoEsgoto(integracaoComercialHelper);
} else {
integracaoComercialHelper.setVeioEncerrarOS(Boolean.TRUE);
sessao.setAttribute("integracaoComercialHelper",
integracaoComercialHelper);
if (sessao.getAttribute("semMenu") == null) {
retorno = actionMapping
.findForward("encerrarOrdemServicoAction");
} else {
retorno = actionMapping
.findForward("encerrarOrdemServicoPopupAction");
}
sessao.removeAttribute("caminhoRetornoIntegracaoComercial");
}
if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
montarPaginaSucesso(httpServletRequest,
"Liga��o de Esgoto efetuada com Sucesso",
"Efetuar outra Liga��o de Esgoto",
"exibirEfetuarLigacaoEsgotoAction.do?menu=sim",
"exibirAtualizarLigacaoEsgotoAction.do?menu=sim&idOrdemServico="
+ ordemServico.getId(),
"Atualiza��o Liga��o de Esgoto efetuada");
}
}
return retorno;
/*
* else { throw new ActionServletException(
* "atencao.informe_campo_obrigatorio", null, "Ordem de Servi�o"); }
*/
}
}