package gcom.gui.faturamento.consumotarifa;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaPerfil;
import gcom.fachada.Fachada;
import gcom.faturamento.TarifaTipoCalculo;
import gcom.faturamento.consumotarifa.ConsumoTarifa;
import gcom.faturamento.consumotarifa.ConsumoTarifaCategoria;
import gcom.faturamento.consumotarifa.ConsumoTarifaVigencia;
import gcom.faturamento.consumotarifa.FiltroConsumoTarifa;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.faturamento.consumotarifa.bean.CategoriaFaixaConsumoTarifaHelper;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
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;
/**
* < <Descri��o da Classe>>
*
* @author Tiago Moreno
*/
public class InserirConsumoTarifaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirConsumoTarifaActionForm inserirConsumoTarifaActionForm = (InserirConsumoTarifaActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Variavel para testar se o campo naum obrigatorio esta vazio
String descTarifa = inserirConsumoTarifaActionForm.getDescTarifa();
String slcDescTarifa = inserirConsumoTarifaActionForm
.getSlcDescTarifa();
String dataVigencia = inserirConsumoTarifaActionForm.getDataVigencia();
String idLigacaoAguaPerfil = inserirConsumoTarifaActionForm.getIdLigacaoAguaPerfil();
String idTarifaTipoCalculo = inserirConsumoTarifaActionForm.getIdTarifaTipoCalculo();
// Carregando o objeto consumoTarifa
ConsumoTarifa consumoTarifa = new ConsumoTarifa();
if ((descTarifa == null) || (descTarifa.equalsIgnoreCase(""))) {
consumoTarifa.setId(new Integer(slcDescTarifa));
} else {
consumoTarifa.setDescricao(descTarifa);
consumoTarifa
.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO);
consumoTarifa.setUltimaAlteracao(new Date());
}
if (!(idLigacaoAguaPerfil==null) && !(idLigacaoAguaPerfil.equals("")) && (new Integer(idLigacaoAguaPerfil)>0)){
LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil();
ligacaoAguaPerfil.setId(new Integer(idLigacaoAguaPerfil));
consumoTarifa.setLigacaoAguaPerfil(ligacaoAguaPerfil);
}
if (!(idTarifaTipoCalculo==null) && !(idTarifaTipoCalculo.equals("")) && (new Integer(idTarifaTipoCalculo)>0)){
TarifaTipoCalculo tarifaTipoCalculo = new TarifaTipoCalculo();
tarifaTipoCalculo.setId(new Integer(idTarifaTipoCalculo));
consumoTarifa.setTarifaTipoCalculo(tarifaTipoCalculo);
}
// Carregando o objeto consumoTarifaVigencia
// Data de vig�ncia da tarifa
// Para auxiliar na formata��o de uma data
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
Date dataVencimentoTarifa;
try {
dataVencimentoTarifa = formatoData.parse(dataVigencia);
} catch (ParseException ex) {
dataVencimentoTarifa = null;
}
ConsumoTarifaVigencia consumoTarifaVigencia = new ConsumoTarifaVigencia();
consumoTarifaVigencia.setDataVigencia(dataVencimentoTarifa);
if (consumoTarifa.getId() != null) {
consumoTarifaVigencia.setConsumoTarifa(consumoTarifa);
}
consumoTarifaVigencia.setUltimaAlteracao(new Date());
// OBS - O objeto ConsumoTarifa ser� carregado no controlador
Collection<CategoriaFaixaConsumoTarifaHelper> colecaoConsumoTarifaCategoriaHelper = new ArrayList();
Collection<ConsumoTarifaCategoria> colecaoConsumoTarifaCategoria = new ArrayList();
if (sessao.getAttribute("colecaoConsumoTarifaCategoria") != null
&& !((Collection) sessao
.getAttribute("colecaoConsumoTarifaCategoria"))
.isEmpty()) {
colecaoConsumoTarifaCategoriaHelper = (Collection) sessao
.getAttribute("colecaoConsumoTarifaCategoria");
for (CategoriaFaixaConsumoTarifaHelper categoriaFaixaConsumoTarifaHelper : colecaoConsumoTarifaCategoriaHelper) {
String descricaoCategoria = categoriaFaixaConsumoTarifaHelper.getConsumoTarifaCategoria().getCategoria().getDescricao();
String consumoMinimo = httpServletRequest.getParameter("ValorConMinimo."+descricaoCategoria);
String tarifaMinimo = httpServletRequest.getParameter("ValorTarMin."+descricaoCategoria);
if(consumoMinimo != null && !consumoMinimo.equals("")){
categoriaFaixaConsumoTarifaHelper.getConsumoTarifaCategoria().
setNumeroConsumoMinimo(new Integer(consumoMinimo));
}else{
throw new ActionServletException(
"atencao.consumo_minimo_vazio");
}
if(tarifaMinimo != null && !tarifaMinimo.equals("")){
categoriaFaixaConsumoTarifaHelper.getConsumoTarifaCategoria().
setValorTarifaMinima(Util
.formatarMoedaRealparaBigDecimal(tarifaMinimo));
}else{
throw new ActionServletException(
"atencao.tarifa_minimo_vazio");
}
colecaoConsumoTarifaCategoria
.add(categoriaFaixaConsumoTarifaHelper
.getConsumoTarifaCategoria());
}
} else {
throw new ActionServletException("atencao.nenhuma_categoria_tarifa");
}
/*Collection<ConsumoTarifaFaixa> colecaoTarifaFaixa = new ArrayList();
if (sessao.getAttribute("colecaoFaixa") != null) {
colecaoTarifaFaixa = (Collection) sessao
.getAttribute("colecaoFaixa");
}*/
fachada.inserirConsumoTarifa(consumoTarifa, consumoTarifaVigencia,
colecaoConsumoTarifaCategoria);
if (consumoTarifa.getDescricao() == null) {
String idConsumo = inserirConsumoTarifaActionForm
.getSlcDescTarifa();
FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa();
filtroConsumoTarifa.adicionarParametro(new ParametroSimples(
FiltroConsumoTarifa.ID, idConsumo));
Collection colecaoConsumoSelect = (Collection) fachada.pesquisar(
filtroConsumoTarifa, ConsumoTarifa.class.getName());
ConsumoTarifa consumoSelect = (ConsumoTarifa) gcom.util.Util
.retonarObjetoDeColecao(colecaoConsumoSelect);
montarPaginaSucesso(httpServletRequest, consumoSelect
.getDescricao()
+ " de vig�ncia "
+ gcom.util.Util.formatarData(consumoTarifaVigencia
.getDataVigencia()) + " inserida com sucesso.",
"Inserir outra Tarifa de Consumo",
"exibirInserirConsumoTarifaAction.do?menu=sim",
"exibirManterConsumoTarifaExistenteAction.do?idVigencia="
+ consumoTarifaVigencia.getId().toString(),
"Atualizar Tarifa de Consumo Inserida");
} else {
montarPaginaSucesso(httpServletRequest, consumoTarifa
.getDescricao()
+ " de vig�ncia "
+ gcom.util.Util.formatarData(consumoTarifaVigencia
.getDataVigencia()) + " inserida com sucesso.",
"Inserir outra Tarifa de Consumo",
"exibirInserirConsumoTarifaAction.do?menu=sim",
"exibirManterConsumoTarifaExistenteAction.do?idVigencia="
+ consumoTarifaVigencia.getId().toString(),
"Atualizar Tarifa de Consumo Inserida");
}
return retorno;
}
}