package gcom.gui.micromedicao;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.bean.ImovelMicromedicao;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.micromedicao.consumo.ConsumoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.ControladorException;
import java.util.Collection;
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;
/**
* < <Descri��o da Classe>>
*
* @author Administrador
*/
public class SubstituirConsumosAnterioresAction extends GcomAction {
/**
* < <Descri��o do m�todo>>
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("exibirDadosAnalise");
// LeituraConsumoActionForm leituraConsumoActionForm =
// (LeituraConsumoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// String codigoImovel =
// leituraConsumoActionForm.getIdImovelSubstituirConsumo();
Collection colecaoImovelMicromedicao = (Collection) sessao
.getAttribute("colecaoConsumoHistorico");
Iterator iteratorImovelMicromedicao = colecaoImovelMicromedicao
.iterator();
String idImovel = "";
while (iteratorImovelMicromedicao.hasNext()) {
ImovelMicromedicao imovelMicromedicao = (ImovelMicromedicao) iteratorImovelMicromedicao
.next();
if (sessao.getAttribute("idImovelSelecionado") == null) {
idImovel = imovelMicromedicao.getImovel().getId().toString();
} else {
idImovel = ((Integer) sessao
.getAttribute("idImovelSelecionado")).toString();
}
if (imovelMicromedicao.getConsumoHistorico() != null) {
ConsumoHistorico consumoHistorico = imovelMicromedicao
.getConsumoHistorico();
String consumoFaturadoMesAgua = (String) httpServletRequest
.getParameter("agua"
+ imovelMicromedicao.getConsumoHistorico()
.getId().toString());
if (!consumoFaturadoMesAgua.trim().equalsIgnoreCase(
consumoHistorico.getNumeroConsumoCalculoMedia()
.toString())) {
consumoHistorico.setNumeroConsumoCalculoMedia(new Integer(
consumoFaturadoMesAgua));
fachada.atualizarConsumosAnteriores(consumoHistorico);
}
}
if (imovelMicromedicao.getConsumoHistoricoEsgoto() != null) {
ConsumoHistorico consumoHistoricoEsgoto = imovelMicromedicao
.getConsumoHistoricoEsgoto();
String consumoFaturadoMesEsgoto = (String) httpServletRequest
.getParameter("esgoto"
+ imovelMicromedicao
.getConsumoHistoricoEsgoto().getId()
.toString());
if (!consumoFaturadoMesEsgoto.trim().equalsIgnoreCase(
consumoHistoricoEsgoto.getNumeroConsumoCalculoMedia()
.toString())) {
consumoHistoricoEsgoto
.setNumeroConsumoCalculoMedia(new Integer(
consumoFaturadoMesEsgoto));
fachada.atualizarConsumosAnteriores(consumoHistoricoEsgoto);
}
}
Imovel imovel = new Imovel();
imovel.setId(new Integer(idImovel));
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId(MedicaoTipo.LIGACAO_AGUA);
/**
* Alterando o c�lculo da m�dia
*/
try {
boolean houveIntslacaoHidrometro = fachada
.verificarInstalacaoSubstituicaoHidrometro(
imovel.getId(), medicaoTipo);
int[] consumoMedioHidrometroAgua = fachada
.obterVolumeMedioAguaEsgoto(imovel.getId(),
imovelMicromedicao.getAnoMesGrupoFaturamento(),
medicaoTipo.getId(), houveIntslacaoHidrometro);
/**
* Alterando o c�lculo da m�dia
*/
medicaoTipo.setId(MedicaoTipo.POCO);
houveIntslacaoHidrometro = fachada
.verificarInstalacaoSubstituicaoHidrometro(
imovel.getId(), medicaoTipo);
int[] consumoMedioHidrometroEsgoto = fachada
.obterVolumeMedioAguaEsgoto(imovel.getId(),
imovelMicromedicao.getAnoMesGrupoFaturamento(),
medicaoTipo.getId(), houveIntslacaoHidrometro);
fachada.atualizarConsumosMedio(new Integer(idImovel),
imovelMicromedicao.getAnoMesGrupoFaturamento(),
consumoMedioHidrometroAgua[0],
consumoMedioHidrometroEsgoto[0]);
} catch (ControladorException e) {
e.printStackTrace();
}
}
httpServletRequest.setAttribute("sucesso",
"Consumos substitu�dos com sucesso.");
if (sessao.getAttribute("peloMenu") != null) {
retorno = actionMapping.findForward("telaSucesso");
montarPaginaSucesso(httpServletRequest,
"Consumos anteriores substitu�dos do im�vel " + idImovel
+ " com sucesso.",
"Realizar outra Substitui��o de consumos anteriores",
"exibirSubstituirConsumoAnteriorAction.do?menu=sim&peloMenu=true");
}
return retorno;
}
}