InserirCargoFuncionarioAction.java 6.4 KB
/* Copyright (C) 2007-2007 the GSAN - Sistema Integrado de Gestão de Serviços de Saneamento
 *
 * This file is part of GSAN, an integrated service management system for Sanitation
 *
 * GSAN is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License.
 *
 * GSAN is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 */

/*
 * GSAN - Sistema Integrado de Gestão de Serviços de Saneamento
 * Copyright (C) <2007> 
 * Adriano Britto Siqueira
 * Alexandre Santos Cabral
 * Ana Carolina Alves Breda
 * Ana Maria Andrade Cavalcante
 * Aryed Lins de Araújo
 * Bruno Leonardo Rodrigues Barros
 * Carlos Elmano Rodrigues Ferreira
 * Cláudio de Andrade Lira
 * Denys Guimarães Guenes Tavares
 * Eduardo Breckenfeld da Rosa Borges
 * Fabíola Gomes de Araújo
 * Flávio Leonardo Cavalcanti Cordeiro
 * Francisco do Nascimento Júnior
 * Homero Sampaio Cavalcanti
 * Ivan Sérgio da Silva Júnior
 * José Edmar de Siqueira
 * José Thiago Tenório Lopes
 * Kássia Regina Silvestre de Albuquerque
 * Leonardo Luiz Vieira da Silva
 * Márcio Roberto Batista da Silva
 * Maria de Fátima Sampaio Leite
 * Micaela Maria Coelho de Araújo
 * Nelson Mendonça de Carvalho
 * Newton Morais e Silva
 * Pedro Alexandre Santos da Silva Filho
 * Rafael Corrêa Lima e Silva
 * Rafael Francisco Pinto
 * Rafael Koury Monteiro
 * Rafael Palermo de Araújo
 * Raphael Veras Rossiter
 * Roberto Sobreira Barbalho
 * Rodrigo Avellar Silveira
 * Rosana Carvalho Barbosa
 * Sávio Luiz de Andrade Cavalcante
 * Tai Mu Shih
 * Thiago Augusto Souza do Nascimento
 * Tiago Moreno Rodrigues
 * Vivianne Barbosa Sousa
 *
 * Este programa é software livre; você pode redistribuí-lo e/ou
 * modificá-lo sob os termos de Licença Pública Geral GNU, conforme
 * publicada pela Free Software Foundation; versão 2 da
 * Licença.
 * Este programa é distribuído na expectativa de ser útil, mas SEM
 * QUALQUER GARANTIA; sem mesmo a garantia implícita de
 * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM
 * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais
 * detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU
 * junto com este programa; se não, escreva para Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307, USA.
 */
package gcom.gui.cadastro;


import gcom.cadastro.funcionario.FiltroFuncionarioCargo;
import gcom.cadastro.funcionario.FuncionarioCargo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


public class InserirCargoFuncionarioAction extends GcomAction {

	/**
	 * Este caso de uso permite a inclusão de um cargo funcionário
	 * 
	 * [UC0834] Inserir Cargo Funcionário
	 * 
	 * @author Arthur Carvalho
	 * @date 11/08/2008
	 * 
	 * @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");

		InserirCargoFuncionarioActionForm inserirCargoFuncionarioActionForm = (InserirCargoFuncionarioActionForm) actionForm;

		Integer codigo = null;
		if(inserirCargoFuncionarioActionForm.getCodigo() != null && 
				!inserirCargoFuncionarioActionForm.getCodigo().equals("")){
		  codigo = Util.converterStringParaInteger(inserirCargoFuncionarioActionForm.getCodigo());
		}
		String descricao = inserirCargoFuncionarioActionForm.getDescricao();
		String descricaoAbreviada = inserirCargoFuncionarioActionForm.getDescricaoAbreviada();
		Collection colecaoPesquisa = null;

		
		// Descrição
		if (descricao == null || "".equals(descricao)) {
			throw new ActionServletException("atencao.required", null,"Descrição");
		}
		
		FiltroFuncionarioCargo filtroFuncCargo = new FiltroFuncionarioCargo();
		filtroFuncCargo.adicionarParametro(
				new ParametroSimples(FiltroFuncionarioCargo.DESCRICAO,descricao));
		
		colecaoPesquisa = (Collection)
		this.getFachada().pesquisar(filtroFuncCargo, FuncionarioCargo.class.getName());
				
		if( colecaoPesquisa !=null && !colecaoPesquisa.isEmpty()){
			throw new ActionServletException("atencao.descricao_existente", null, descricao);
		}
		
		
		FiltroFuncionarioCargo filtroFuncionarioCargo = new FiltroFuncionarioCargo();
			filtroFuncionarioCargo.adicionarParametro(
					new ParametroSimples(FiltroFuncionarioCargo.CODIGO,codigo));
					
		colecaoPesquisa = (Collection) 
			this.getFachada().pesquisar(filtroFuncionarioCargo, FuncionarioCargo.class.getName());
		
	
		if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
			throw new ActionServletException("atencao.codigo_existente", null, codigo+"");
			
		}
		

			FuncionarioCargo funcionarioCargo= new FuncionarioCargo();
			funcionarioCargo.setCodigo(codigo);
			funcionarioCargo.setDescricao(descricao);
			funcionarioCargo.setDescricaoAbreviada(descricaoAbreviada);
			funcionarioCargo.setUltimaAlteracao(new Date());
			funcionarioCargo.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO);

			Integer idFuncionarioCargo = (Integer) this.getFachada().inserir(funcionarioCargo);

			montarPaginaSucesso(httpServletRequest,
					"Cargo do Funcionário " + descricao
							+ " inserido com sucesso.",
					"Inserir outro Cargo do Funcionário",
					"exibirInserirCargoFuncionarioAction.do?menu=sim",
					"exibirAtualizarCargoFuncionarioAction.do?idRegistroAtualizacao="
							+ idFuncionarioCargo,
					"Atualizar Cargo do Funcionário Inserido");

			this.getSessao(httpServletRequest).removeAttribute("InserirCargoFuncionarioActionForm");

			return retorno;
		
		
	}
}