package gcom.gui.micromedicao.leitura; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.leitura.LeituraAnormalidade; import gcom.micromedicao.leitura.LeituraFiscalizacao; import gcom.micromedicao.medicao.MedicaoHistorico; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * @author R�mulo Aur�lio * */ public class InformarLeituraFiscalizacaoAction extends GcomAction { /** * Este caso de uso permite informar ou corrigir leitura de fiscaliza��o * * [UC0100] Informar Leitura de Fiscaliza��o * * * @author R�mulo Aur�lio * @date 16/05/2007 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); HttpSession sessao = httpServletRequest.getSession(false); InformarLeituraFiscalizacaoActionForm form = (InformarLeituraFiscalizacaoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); Usuario usuarioLogado = (Usuario) sessao .getAttribute(Usuario.USUARIO_LOGADO); String matricula = (String) sessao.getAttribute("matricula"); String dataLeituraFiscalizacao = form.getDataLeituraFiscalizacao(); String matriculaLeituristaFiscalizacao = form .getMatriculaLeituristaFiscalizacao(); LeituraFiscalizacao leituraFiscalizacao = null; if (sessao.getAttribute("leituraFiscalizacao") != null) { leituraFiscalizacao = (LeituraFiscalizacao) sessao .getAttribute("leituraFiscalizacao"); } else { leituraFiscalizacao = new LeituraFiscalizacao(); } /** * [FS0003]-Verificar existencia da matr�cula do funcionario */ FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, matriculaLeituristaFiscalizacao)); Collection colecaoFuncionario = fachada.pesquisar(filtroFuncionario, Funcionario.class.getName()); if (colecaoFuncionario != null && !colecaoFuncionario.isEmpty()) { Funcionario funcionario = (Funcionario) colecaoFuncionario .iterator().next(); funcionario.setId(new Integer(matriculaLeituristaFiscalizacao)); leituraFiscalizacao.setFuncionario(funcionario); } else { throw new ActionServletException("atencao.funcionario.inexistente"); } /** * [FS0005]-Validar Quantidade de D�gitos da Leitura */ Short numeroDigitosLeitura = (Short) sessao .getAttribute("numeroDigitosLeitura"); if (form.getLeituraFiscalizacao().length() > numeroDigitosLeitura) { throw new ActionServletException("atencao.quantidade_digitos_leitura_invalido"); } /** * [FS0004]-Validar Data de Leitura */ String mesAnoReferencia = form.getMesAnoReferencia(); String mesReferencia = mesAnoReferencia.substring(0, 2); String anoReferencia = mesAnoReferencia.substring(3, 7); String anoMesReferencia = anoReferencia + mesReferencia; Integer anoMesReferenciaInt = new Integer(anoMesReferencia); String mes = dataLeituraFiscalizacao.substring(3, 5); String ano = dataLeituraFiscalizacao.substring(6, 10); String anoMes = ano + mes; Integer anoMesInteiro = new Integer(anoMes); if (!((Util.compararAnoMesReferencia(anoMesReferenciaInt, anoMesInteiro, "=")) || (Util.compararAnoMesReferencia( anoMesReferenciaInt + 1, anoMesInteiro, "=")))) { throw new ActionServletException( "atencao.data_leitura_incompativel_ciclo_faturamento"); } leituraFiscalizacao.setdataLeituraEmpresa(Util .converteStringParaDate(dataLeituraFiscalizacao)); LeituraAnormalidade leituraAnormalidade = new LeituraAnormalidade(); if(!form .getAnormalidadeFiscalizacao().equalsIgnoreCase("-1")){ leituraAnormalidade.setId(new Integer(form .getAnormalidadeFiscalizacao())); }else{ leituraAnormalidade.setId(new Integer(0)); } leituraFiscalizacao.setLeituraAnormalidade(leituraAnormalidade); MedicaoHistorico medicaoHistorico = (MedicaoHistorico) sessao .getAttribute("medicaoHistorico"); leituraFiscalizacao.setMedicaoHistorico(medicaoHistorico); leituraFiscalizacao.setId(medicaoHistorico.getId()); if (!form.getLeituraFiscalizacao().equalsIgnoreCase("")) { Integer numeroLeituraEmpresa = new Integer(form .getLeituraFiscalizacao()); leituraFiscalizacao.setNumeroLeituraEmpresa(numeroLeituraEmpresa .intValue()); } fachada.informarLeituraFiscalizacao(usuarioLogado, leituraFiscalizacao); montarPaginaSucesso(httpServletRequest, "Leitura de Fiscaliza��o para o im�vel " + matricula + " informada com sucesso.", "Informar outra Fiscaliza��o", "exibirFiltrarInformarLeituraFiscalizacaoAction.do?menu=sim"); return retorno; } }