package gcom.gui.atendimentopublico;
import gcom.atendimentopublico.LigacaoOrigem;
import gcom.atendimentopublico.ligacaoagua.CorteTipo;
import gcom.atendimentopublico.ligacaoagua.LigacaoAgua;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaDiametro;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaMaterial;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaPerfil;
import gcom.atendimentopublico.ligacaoagua.MotivoCorte;
import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao;
import gcom.atendimentopublico.ligacaoagua.SupressaoTipo;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.atendimentopublico.ordemservico.SupressaoMotivo;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.faturamento.consumotarifa.ConsumoTarifa;
import gcom.faturamento.consumotarifa.FiltroConsumoTarifa;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
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 processamento da p�gina de atualizar liga��o de �gua
*
* @author Rafael Pinto
* @date 18/07/2006
*/
public class AtualizarLigacaoAguaAction 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);
AtualizarLigacaoAguaActionForm atualizarLigacaoAguaActionForm =
(AtualizarLigacaoAguaActionForm) actionForm;
// Usuario logado no sistema
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
OrdemServico ordemServico = (OrdemServico) sessao.getAttribute("ordemServico");
String idImovel = atualizarLigacaoAguaActionForm.getIdImovel();
if(ordemServico != null){
Imovel imovel = ordemServico.getRegistroAtendimento().getImovel();
LigacaoAgua ligacaoAgua = imovel.getLigacaoAgua();
//Data de Ligacao
String dataLigacao = atualizarLigacaoAguaActionForm.getDataLigacao();
if (dataLigacao != null && !dataLigacao.equals("")){
ligacaoAgua.setDataLigacao(Util.converteStringParaDate(dataLigacao));
}
//Diametro Ligacao
String diametroLigacaoId = atualizarLigacaoAguaActionForm.getDiametroLigacao();
if (diametroLigacaoId != null && !diametroLigacaoId.equals("") &&
!diametroLigacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoAguaDiametro ligacaoAguaDiametro = new LigacaoAguaDiametro();
ligacaoAguaDiametro.setId(new Integer(diametroLigacaoId));
ligacaoAgua.setLigacaoAguaDiametro(ligacaoAguaDiametro);
}
//Material Ligacao
String materialLigacaoId = atualizarLigacaoAguaActionForm.getMaterialLigacao();
if (materialLigacaoId != null && !materialLigacaoId.equals("") &&
!materialLigacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoAguaMaterial ligacaoAguaMaterial = new LigacaoAguaMaterial();
ligacaoAguaMaterial.setId(new Integer(materialLigacaoId));
ligacaoAgua.setLigacaoAguaMaterial(ligacaoAguaMaterial);
}
//Perfil Ligacao
String idPerfilLigacao = atualizarLigacaoAguaActionForm.getPerfilLigacao();
if (idPerfilLigacao != null && !idPerfilLigacao.equals("") &&
!idPerfilLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
//verificar tarifa de consumo associada.
FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa();
filtroConsumoTarifa.adicionarParametro(new ParametroSimples (
FiltroConsumoTarifa.LIGACAO_AGUA_PERFIL,
idPerfilLigacao));
Collection pesquisa = fachada.pesquisar(
filtroConsumoTarifa, ConsumoTarifa.class.getName());
if (!pesquisa.isEmpty()){
Boolean existeTarifaIgual = false;
Iterator iteratorColecaoConsumoTarifa = pesquisa.iterator();
Imovel imovelConsulta=null;
if(atualizarLigacaoAguaActionForm.getMatriculaImovel() != null && atualizarLigacaoAguaActionForm.getMatriculaImovel() != ""){
imovelConsulta= fachada.pesquisarImovel(new Integer(atualizarLigacaoAguaActionForm.getMatriculaImovel()));
}else{
//caso apenas para usuario com permissao especial de atualizarLigacaoAguaSemRA
if(atualizarLigacaoAguaActionForm.getIdImovel() != null && atualizarLigacaoAguaActionForm.getIdImovel() != ""){
imovelConsulta= fachada.pesquisarImovel(new Integer(atualizarLigacaoAguaActionForm.getIdImovel()));
}
}
while(iteratorColecaoConsumoTarifa.hasNext()){
ConsumoTarifa consumoTarifa = (ConsumoTarifa) iteratorColecaoConsumoTarifa.next();
if (consumoTarifa.getLigacaoAguaPerfil() != null){
if (imovelConsulta != null){
if (imovelConsulta.getConsumoTarifa().getId().intValue() == consumoTarifa.getId().intValue()){
existeTarifaIgual = true;
}
}
}
}
if (!existeTarifaIgual){
throw new ActionServletException("atencao.tarifa_consumo_perfil_ligacao",null, "Perfil da Liga��o");
}
LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil();
ligacaoAguaPerfil.setId(new Integer(idPerfilLigacao));
ligacaoAgua.setLigacaoAguaPerfil(ligacaoAguaPerfil);
} else {
LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil();
ligacaoAguaPerfil.setId(new Integer(idPerfilLigacao));
ligacaoAgua.setLigacaoAguaPerfil(ligacaoAguaPerfil);
}
}
//Ramal Local Instalacao
String ramalLocaolInstalacaoId = atualizarLigacaoAguaActionForm.getRamalLocalInstalacao();
if (ramalLocaolInstalacaoId != null && !ramalLocaolInstalacaoId.equals("") &&
!ramalLocaolInstalacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
RamalLocalInstalacao ramalLocalInstalacao = new RamalLocalInstalacao();
ramalLocalInstalacao.setId(new Integer(ramalLocaolInstalacaoId));
ligacaoAgua.setRamalLocalInstalacao(ramalLocalInstalacao);
}
//Motivo do Corte
String motivoCorteId = atualizarLigacaoAguaActionForm.getMotivoCorte();
if (motivoCorteId != null && !motivoCorteId.equals("") &&
!motivoCorteId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
MotivoCorte motivoCorte = new MotivoCorte();
motivoCorte.setId(new Integer(motivoCorteId));
ligacaoAgua.setMotivoCorte(motivoCorte);
}else {
ligacaoAgua.setMotivoCorte(null);
}
//Tipo de Corte
String tipoCorteId = atualizarLigacaoAguaActionForm.getTipoCorte();
if (tipoCorteId != null && !tipoCorteId.equals("") &&
!tipoCorteId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
CorteTipo corteTipo = new CorteTipo();
corteTipo.setId(new Integer(tipoCorteId));
ligacaoAgua.setCorteTipo(corteTipo);
}else {
ligacaoAgua.setCorteTipo(null);
}
//Numero Selo Corte
String numSeloCorte = atualizarLigacaoAguaActionForm.getNumSeloCorte();
if(numSeloCorte != null && !numSeloCorte.equals("") &&
!numSeloCorte.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
ligacaoAgua.setNumeroSeloCorte(new Integer(numSeloCorte));
}else{
ligacaoAgua.setNumeroSeloCorte(null);
}
//Motivo Supressao
String motivoSupressaoId = atualizarLigacaoAguaActionForm.getMotivoSupressao();
if (motivoSupressaoId != null && !motivoSupressaoId.equals("") &&
!motivoSupressaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
SupressaoMotivo supressaoMotivo = new SupressaoMotivo();
supressaoMotivo.setId(new Integer(motivoSupressaoId));
ligacaoAgua.setSupressaoMotivo(supressaoMotivo);
}else {
ligacaoAgua.setSupressaoMotivo(null);
}
//Tipo Supressao
String tipoSupressaoId = atualizarLigacaoAguaActionForm.getTipoSupressao();
if (tipoSupressaoId != null && !tipoSupressaoId.equals("") &&
!tipoSupressaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
SupressaoTipo supressaoTipo = new SupressaoTipo();
supressaoTipo.setId(new Integer(tipoSupressaoId));
ligacaoAgua.setSupressaoTipo(supressaoTipo);
}else {
ligacaoAgua.setSupressaoTipo(null);
}
//Selo Supressao
String numSeloSupressao = atualizarLigacaoAguaActionForm.getNumSeloSupressao();
if (numSeloSupressao != null && !numSeloSupressao.equals("") &&
!numSeloSupressao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
ligacaoAgua.setNumeroSeloSupressao(new Integer(numSeloSupressao));
}else {
ligacaoAgua.setNumeroSeloSupressao(null);
}
String numeroLacre = atualizarLigacaoAguaActionForm.getNumeroLacre();
ligacaoAgua.setNumeroLacre(numeroLacre);
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico =
ligacaoAgua.getHidrometroInstalacaoHistorico();
//Leitura Corte
String leituraCorte = atualizarLigacaoAguaActionForm.getLeituraCorte();
if (leituraCorte != null && !leituraCorte.equals("") &&
!leituraCorte.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
hidrometroInstalacaoHistorico.setNumeroLeituraCorte(new Integer(leituraCorte));
}else if(leituraCorte == null || leituraCorte.equals("") ||
leituraCorte.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
//hidrometroInstalacaoHistorico.setNumeroLeituraCorte(null);
}
//Leitura Supressao
String leituraSupressao = atualizarLigacaoAguaActionForm.getLeituraSupressao();
if (leituraSupressao != null && !leituraSupressao.equals("") &&
!leituraSupressao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(new Integer(leituraSupressao));
}else if(leituraSupressao == null || leituraSupressao.equals("") ||
leituraSupressao.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
//hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(null);
}
if(hidrometroInstalacaoHistorico != null){
hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date());
ligacaoAgua.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico);
}
// Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008
// Ligacao Origem
String idLigacaoOrigem = atualizarLigacaoAguaActionForm
.getIdLigacaoOrigem();
if (idLigacaoOrigem != null
&& !idLigacaoOrigem.equals("")
&& !idLigacaoOrigem.trim().equalsIgnoreCase(
"" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
LigacaoOrigem ligacaoOrigem = new LigacaoOrigem();
ligacaoOrigem.setId(new Integer(idLigacaoOrigem));
ligacaoAgua.setLigacaoOrigem(ligacaoOrigem);
}
//efetuar liga��o de �gua
ligacaoAgua.setImovel(imovel);
Date dataConcorrencia = atualizarLigacaoAguaActionForm.getDataConcorrencia();
ligacaoAgua.setUltimaAlteracao(dataConcorrencia);
fachada.atualizarLigacaoAgua(ligacaoAgua, usuario);
sessao.removeAttribute("imovel");
//Monta a p�gina de sucesso
montarPaginaSucesso(httpServletRequest,"Atualiza��o da Liga��o de �gua efetuada com Sucesso",
"Efetuar outra Atualiza��o Liga��o de �gua",
"exibirAtualizarLigacaoAguaAction.do?menu=sim",
"exibirAtualizarLigacaoAguaAction.do?idOrdemServico="+ordemServico.getId(),
"Atualiza��o Liga��o de �gua efetuada");
}else if(sessao.getAttribute("imovel")!=null){
Imovel imovel = (Imovel) sessao.getAttribute("imovel");
LigacaoAgua ligacaoAgua = imovel.getLigacaoAgua();
//Data de Ligacao
String dataLigacao = atualizarLigacaoAguaActionForm.getDataLigacao();
if (dataLigacao != null && !dataLigacao.equals("")){
ligacaoAgua.setDataLigacao(Util.converteStringParaDate(dataLigacao));
}
//Diametro Ligacao
String diametroLigacaoId = atualizarLigacaoAguaActionForm.getDiametroLigacao();
if (diametroLigacaoId != null && !diametroLigacaoId.equals("") &&
!diametroLigacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoAguaDiametro ligacaoAguaDiametro = new LigacaoAguaDiametro();
ligacaoAguaDiametro.setId(new Integer(diametroLigacaoId));
ligacaoAgua.setLigacaoAguaDiametro(ligacaoAguaDiametro);
}
//Material Ligacao
String materialLigacaoId = atualizarLigacaoAguaActionForm.getMaterialLigacao();
if (materialLigacaoId != null && !materialLigacaoId.equals("") &&
!materialLigacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoAguaMaterial ligacaoAguaMaterial = new LigacaoAguaMaterial();
ligacaoAguaMaterial.setId(new Integer(materialLigacaoId));
ligacaoAgua.setLigacaoAguaMaterial(ligacaoAguaMaterial);
}
//Perfil Ligacao
String perfilLigacaoId = atualizarLigacaoAguaActionForm.getPerfilLigacao();
if (perfilLigacaoId != null && !perfilLigacaoId.equals("") &&
!perfilLigacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil();
ligacaoAguaPerfil.setId(new Integer(perfilLigacaoId));
ligacaoAgua.setLigacaoAguaPerfil(ligacaoAguaPerfil);
}
//Ramal Local Instalacao
String ramalLocaolInstalacaoId = atualizarLigacaoAguaActionForm.getRamalLocalInstalacao();
if (ramalLocaolInstalacaoId != null && !ramalLocaolInstalacaoId.equals("") &&
!ramalLocaolInstalacaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
RamalLocalInstalacao ramalLocalInstalacao = new RamalLocalInstalacao();
ramalLocalInstalacao.setId(new Integer(ramalLocaolInstalacaoId));
ligacaoAgua.setRamalLocalInstalacao(ramalLocalInstalacao);
}
//Motivo do Corte
String motivoCorteId = atualizarLigacaoAguaActionForm.getMotivoCorte();
if (motivoCorteId != null && !motivoCorteId.equals("") &&
!motivoCorteId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
MotivoCorte motivoCorte = new MotivoCorte();
motivoCorte.setId(new Integer(motivoCorteId));
ligacaoAgua.setMotivoCorte(motivoCorte);
}else {
ligacaoAgua.setMotivoCorte(null);
}
//Tipo de Corte
String tipoCorteId = atualizarLigacaoAguaActionForm.getTipoCorte();
if (tipoCorteId != null && !tipoCorteId.equals("") &&
!tipoCorteId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
CorteTipo corteTipo = new CorteTipo();
corteTipo.setId(new Integer(tipoCorteId));
ligacaoAgua.setCorteTipo(corteTipo);
}else {
ligacaoAgua.setCorteTipo(null);
}
//Numero Selo Corte
String numSeloCorte = atualizarLigacaoAguaActionForm.getNumSeloCorte();
if(numSeloCorte != null && !numSeloCorte.equals("") &&
!numSeloCorte.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
ligacaoAgua.setNumeroSeloCorte(new Integer(numSeloCorte));
}else{
ligacaoAgua.setNumeroSeloCorte(null);
}
//Motivo Supressao
String motivoSupressaoId = atualizarLigacaoAguaActionForm.getMotivoSupressao();
if (motivoSupressaoId != null && !motivoSupressaoId.equals("") &&
!motivoSupressaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
SupressaoMotivo supressaoMotivo = new SupressaoMotivo();
supressaoMotivo.setId(new Integer(motivoSupressaoId));
ligacaoAgua.setSupressaoMotivo(supressaoMotivo);
}else {
ligacaoAgua.setSupressaoMotivo(null);
}
//Tipo Supressao
String tipoSupressaoId = atualizarLigacaoAguaActionForm.getTipoSupressao();
if (tipoSupressaoId != null && !tipoSupressaoId.equals("") &&
!tipoSupressaoId.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
SupressaoTipo supressaoTipo = new SupressaoTipo();
supressaoTipo.setId(new Integer(tipoSupressaoId));
ligacaoAgua.setSupressaoTipo(supressaoTipo);
}else {
ligacaoAgua.setSupressaoTipo(null);
}
//Selo Supressao
String numSeloSupressao = atualizarLigacaoAguaActionForm.getNumSeloSupressao();
if (numSeloSupressao != null && !numSeloSupressao.equals("") &&
!numSeloSupressao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
ligacaoAgua.setNumeroSeloSupressao(new Integer(numSeloSupressao));
}else {
ligacaoAgua.setNumeroSeloSupressao(null);
}
String numeroLacre = atualizarLigacaoAguaActionForm.getNumeroLacre();
ligacaoAgua.setNumeroLacre(numeroLacre);
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico =
ligacaoAgua.getHidrometroInstalacaoHistorico();
//Leitura Corte
String leituraCorte = atualizarLigacaoAguaActionForm.getLeituraCorte();
if (leituraCorte != null && !leituraCorte.equals("") &&
!leituraCorte.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
hidrometroInstalacaoHistorico.setNumeroLeituraCorte(new Integer(leituraCorte));
}else if(leituraCorte == null || leituraCorte.equals("") ||
leituraCorte.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
//hidrometroInstalacaoHistorico.setNumeroLeituraCorte(null);
}
//Leitura Supressao
String leituraSupressao = atualizarLigacaoAguaActionForm.getLeituraSupressao();
if (leituraSupressao != null && !leituraSupressao.equals("") &&
!leituraSupressao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(new Integer(leituraSupressao));
}else if(leituraSupressao == null || leituraSupressao.equals("") ||
leituraSupressao.trim().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
//hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(null);
}
if(hidrometroInstalacaoHistorico != null){
hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date());
ligacaoAgua.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico);
}
// Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008
// Ligacao Origem
String idLigacaoOrigem = atualizarLigacaoAguaActionForm.getIdLigacaoOrigem();
if(idLigacaoOrigem !=null && !idLigacaoOrigem.equals("") &&
!idLigacaoOrigem.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
LigacaoOrigem ligacaoOrigem = new LigacaoOrigem();
ligacaoOrigem.setId(new Integer(idLigacaoOrigem));
ligacaoAgua.setLigacaoOrigem(ligacaoOrigem);
}
//efetuar liga��o de �gua
ligacaoAgua.setImovel(imovel);
Date dataConcorrencia = atualizarLigacaoAguaActionForm.getDataConcorrencia();
ligacaoAgua.setUltimaAlteracao(dataConcorrencia);
fachada.atualizarLigacaoAgua(ligacaoAgua, usuario);
sessao.removeAttribute("imovel");
// Monta a p�gina de sucesso
montarPaginaSucesso(httpServletRequest,"Atualiza��o da Liga��o de �gua efetuada com Sucesso",
"Efetuar outra Atualiza��o Liga��o de �gua",
"exibirAtualizarLigacaoAguaAction.do?menu=sim",
"exibirAtualizarLigacaoAguaAction.do?matriculaImovel="+idImovel,
"Atualiza��o Liga��o de �gua efetuada");
} else{
throw new ActionServletException(
"atencao.matricula.imovel.inexistente", null,
"IM�VEL INEXISTENTE");
}
return retorno;
}
}