package gcom.gui.faturamento.autoinfracao; import gcom.atendimentopublico.ordemservico.FiscalizacaoSituacao; import gcom.cadastro.funcionario.FiltroFuncionario; import gcom.cadastro.funcionario.Funcionario; import gcom.fachada.Fachada; import gcom.faturamento.autoinfracao.AutoInfracaoSituacao; import gcom.faturamento.autoinfracao.AutosInfracao; import gcom.faturamento.autoinfracao.FiltroAutoInfracaoSituacao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; 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; public class AtualizarAutoInfracaoAction extends GcomAction { /** * * [UC0896] Manter Autos de Infra��o * * * @author R�mulo Aur�lio * @date 05/05/2009 * * * @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) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); AtualizarAutoInfracaoActionForm form = (AtualizarAutoInfracaoActionForm) actionForm; // Usuario logado no sistema Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); AutosInfracao autosInfracao = (AutosInfracao) sessao .getAttribute("objetoAutosInfracao"); // Funcionario if (form.getIdFuncionario() != null && !form.getIdFuncionario().equals("")) { String idFuncionario = form.getIdFuncionario(); Funcionario funcionario = this.validarFuncionario(idFuncionario); autosInfracao .setFuncionario(funcionario); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Funcion�rio Respons�vel"); } // Situacao do Auto AutoInfracaoSituacao autoInfracaoSituacao = null; if (form.getIdAutoInfracaoSituacao() != null && !form.getIdAutoInfracaoSituacao().equals("-1")) { FiltroAutoInfracaoSituacao filtroAutoInfracaoSituacao = new FiltroAutoInfracaoSituacao(); filtroAutoInfracaoSituacao.adicionarParametro(new ParametroSimples( FiltroAutoInfracaoSituacao.ID, form .getIdAutoInfracaoSituacao())); Collection<AutoInfracaoSituacao> colecaoAutoInfracaoSituacao = this .getFachada().pesquisar(filtroAutoInfracaoSituacao, AutoInfracaoSituacao.class.getName()); autoInfracaoSituacao = (AutoInfracaoSituacao) Util .retonarObjetoDeColecao(colecaoAutoInfracaoSituacao); autoInfracaoSituacao.setId(new Integer(form .getIdAutoInfracaoSituacao())); autosInfracao.setAutoInfracaoSituacao(autoInfracaoSituacao); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Situa��o do Auto"); } // Irregularidade Constatada if (form.getIdFiscalizacaoSituacao() != null && !form.getIdFiscalizacaoSituacao().equals("-1")) { FiscalizacaoSituacao fiscalizacaoSituacao = new FiscalizacaoSituacao(); fiscalizacaoSituacao.setId(new Integer(form .getIdFiscalizacaoSituacao())); autosInfracao.setFiscalizacaoSituacao(fiscalizacaoSituacao); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Irregularidade Constatada"); } // Data emissao if (form.getDataEmissao() != null && !form.getDataEmissao().equals("")) { Date dataEmissao = Util.converteStringParaDate(form .getDataEmissao()); autosInfracao.setDataEmissao(dataEmissao); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Data de Emiss�o"); } // Data Inicio Recurso if (autoInfracaoSituacao.getIndicadorDataInicioRecurso().toString().equals( AutoInfracaoSituacao.OBRIGATORIO.toString())) { if (form.getDataInicioRecurso() != null && !form.getDataInicioRecurso().equals("")) { Date dataInicioRecurso = Util.converteStringParaDate(form .getDataInicioRecurso()); autosInfracao.setDataInicioRecurso(dataInicioRecurso); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Data de In�cio do Recurso"); } } else if (autoInfracaoSituacao.getIndicadorDataInicioRecurso().toString().equals( AutoInfracaoSituacao.OPCIONAL.toString())) { if (form.getDataInicioRecurso() != null && !form.getDataInicioRecurso().equals("")) { Date dataInicioRecurso = Util.converteStringParaDate(form .getDataInicioRecurso()); autosInfracao.setDataInicioRecurso(dataInicioRecurso); } } // Data Termino Recurso if (autoInfracaoSituacao.getIndicadorDataTerminoRecurso().toString().equals( AutoInfracaoSituacao.OBRIGATORIO.toString())) { if (form.getDataTerminoRecurso() != null && !form.getDataTerminoRecurso().equals("")) { Date dataTerminoRecurso = Util.converteStringParaDate(form .getDataTerminoRecurso()); autosInfracao.setDataTerminoRecurso(dataTerminoRecurso); } else { throw new ActionServletException( "atencao.campo_selecionado.obrigatorio", null, "Data de T�rmino do Recurso"); } } else if (autoInfracaoSituacao.getIndicadorDataTerminoRecurso().toString() .equals(AutoInfracaoSituacao.OPCIONAL.toString())) { if (form.getDataTerminoRecurso() != null && !form.getDataTerminoRecurso().equals("")) { Date dataTerminoRecurso = Util.converteStringParaDate(form .getDataTerminoRecurso()); autosInfracao.setDataTerminoRecurso(dataTerminoRecurso); } } // Observacao if (form.getObservacao() != null && !form.getObservacao().equals("")) { autosInfracao.setObservacao(form.getObservacao()); } autosInfracao.setNumeroParcelasDebito(new Integer(form.getQuantidadeParcelas())); autosInfracao.setDebitoTipo(null); if(fachada.validarExistenciaDebitoAtivosAutoInfracao(autosInfracao.getId())){ throw new ActionServletException("atencao.auto_possui_debitos_ativos"); } fachada.atualizarAutoInfracao(autosInfracao, usuarioLogado); montarPaginaSucesso(httpServletRequest, "Auto de Infra��o de c�digo " + autosInfracao.getId() + " atualizado com sucesso.", "Realizar outra Manuten��o Auto de Infra��o", "exibirFiltrarAutoInfracaoAction.do?menu=sim"); return retorno; } private Funcionario validarFuncionario(String idFuncionario) { Funcionario funcionario = null; FiltroFuncionario filtroFuncionario = new FiltroFuncionario(); filtroFuncionario.adicionarParametro(new ParametroSimples( FiltroFuncionario.ID, idFuncionario)); Collection<Funcionario> colecaoFuncionario = this.getFachada() .pesquisar(filtroFuncionario, Funcionario.class.getName()); if (colecaoFuncionario == null || colecaoFuncionario.isEmpty()) { throw new ActionServletException("pesquisa.funcionario.inexistente"); } funcionario = (Funcionario) Util .retonarObjetoDeColecao(colecaoFuncionario); return funcionario; } }