package gcom.gui.operacional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.operacional.FiltroProducaoAgua; import gcom.operacional.ProducaoAgua; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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 Vin�cius Medeiros * @date 09/06/2008 */ public class InserirProducaoAguaAction extends GcomAction { /** * Este caso de uso permite a inclus�o de uma Producao de Agua * * [UC0812] Inserir Producao de Agua * * * @author Vin�cius Medeiros * @date 09/06/2008 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o caminho de retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); InserirProducaoAguaActionForm inserirProducaoAguaActionForm = (InserirProducaoAguaActionForm) actionForm; // Mudar isso quando for implementado o esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); String anoMesReferencia = inserirProducaoAguaActionForm .getAnoMesReferencia(); String localidadeID = inserirProducaoAguaActionForm.getLocalidadeID(); String volumeProduzido = inserirProducaoAguaActionForm .getVolumeProduzido(); ProducaoAgua producaoAgua = new ProducaoAgua(); Collection colecaoPesquisa = null; Collection colecaoPesquisa2 = null; String mes = anoMesReferencia.substring(0, 2); String ano = anoMesReferencia.substring(3, 7); anoMesReferencia = ano + "" + mes; producaoAgua.setAnoMesReferencia(new Integer(anoMesReferencia)); // Localidade if (localidadeID != null && !localidadeID.equalsIgnoreCase("")) { FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidadeID)); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO)); // Retorna Localidade colecaoPesquisa = fachada.pesquisar(filtroLocalidade, Localidade.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.localidade_inexistente"); } else { Localidade objetoLocalidade = (Localidade) Util .retonarObjetoDeColecao(colecaoPesquisa); producaoAgua.setLocalidade(objetoLocalidade); } } // Volume Produzido if (!"".equals(inserirProducaoAguaActionForm.getVolumeProduzido())) { producaoAgua.setVolumeProduzido(Util.formatarMoedaRealparaBigDecimal(volumeProduzido)); } else { throw new ActionServletException("atencao.required", null, "Volume Produzido"); } producaoAgua.setUltimaAlteracao(new Date()); FiltroProducaoAgua filtroProducaoAgua = new FiltroProducaoAgua(); filtroProducaoAgua.adicionarParametro( new ParametroSimples(FiltroProducaoAgua.MES_ANO_REFERENCIA, producaoAgua.getAnoMesReferencia())); filtroProducaoAgua.adicionarParametro( new ParametroSimples(FiltroProducaoAgua.LOCALIDADE, producaoAgua.getLocalidade())); filtroProducaoAgua.adicionarParametro( new ParametroSimples(FiltroProducaoAgua.VOLUME_PRODUZIDO, producaoAgua.getVolumeProduzido())); colecaoPesquisa2 = (Collection) fachada.pesquisar( filtroProducaoAgua,ProducaoAgua.class.getName()); if (colecaoPesquisa2 != null && !colecaoPesquisa2.isEmpty()) { // Caso j� tenha sido cadastrada a Produ��o de �gua throw new ActionServletException( "atencao.producao_agua_ja_cadastrada"); } else { producaoAgua.setVolumeProduzido(Util.formatarMoedaRealparaBigDecimal(volumeProduzido)); Integer idProducaoAgua = (Integer) fachada.inserir(producaoAgua); montarPaginaSucesso(httpServletRequest, "Produ��o de �gua " + idProducaoAgua + " inserido com sucesso.", "Inserir outra Produ��o de �gua", "exibirInserirProducaoAguaAction.do?menu=sim", "exibirAtualizarProducaoAguaAction.do?idRegistroAtualizacao=" + idProducaoAgua, "Atualizar Produ��o de �gua Inserida"); sessao.removeAttribute("InserirProducaoAguaActionForm"); } return retorno; } }