package gcom.gui.cadastro.unidade;
import gcom.atendimentopublico.registroatendimento.FiltroMeioSolicitacao;
import gcom.atendimentopublico.registroatendimento.MeioSolicitacao;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cadastro.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.FiltroUnidadeTipo;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacionalMunicipio;
import gcom.cadastro.unidade.UnidadeTipo;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
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;
/**
* Description of the Class
*
* @author Rafael Pinto
* @created 31/07/2006
*/
public class InserirUnidadeOrganizacionalAction extends GcomAction {
/**
* Description of the Method
*
* @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 mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
Fachada fachada = Fachada.getInstancia();
//Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
InserirUnidadeOrganizacionalActionForm inserirUnidadeOrganizacionalActionForm =
(InserirUnidadeOrganizacionalActionForm) actionForm;
short indicadorEsgoto =
new Short(inserirUnidadeOrganizacionalActionForm.getUnidadeEsgoto()).shortValue();
short indicadorTramite =
new Short(inserirUnidadeOrganizacionalActionForm.getUnidadeAceita()).shortValue();
short indicadorAberturaRa =
new Short(inserirUnidadeOrganizacionalActionForm.getUnidadeAbreRegistro()).shortValue();
short indicadorCentralAtendimento =
new Short(inserirUnidadeOrganizacionalActionForm.getUnidadeCentralAtendimento());
short indicadorTarifaSocial =
new Short(inserirUnidadeOrganizacionalActionForm.getUnidadeTarifaSocial()).shortValue();
short indicadorUso = ConstantesSistema.INDICADOR_USO_ATIVO;
String sigla = inserirUnidadeOrganizacionalActionForm.getSigla();
String descricao = inserirUnidadeOrganizacionalActionForm.getDescricao();
Date ultimaAlteracao = new Date();
String idUnidadeTipo = inserirUnidadeOrganizacionalActionForm.getUnidadeTipo();
UnidadeTipo unidadeTipo = this.pesquisarUnidadeTipo(idUnidadeTipo);
Empresa empresa = null;
if(unidadeTipo.getCodigoTipo().equals(UnidadeTipo.UNIDADE_TIPO_LOCALIDADE) ||
unidadeTipo.getCodigoTipo().equals(UnidadeTipo.UNIDADE_TIPO_GERENCIA_REGIONAL) ||
unidadeTipo.getCodigoTipo().equals(UnidadeTipo.UNIDADE_TIPO_CENTRALIZADORA) ||
unidadeTipo.getCodigoTipo().equals(UnidadeTipo.UNIDADE_TIPO_UNIDADE_NEGOCIO)){
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.INDICADOR_EMPRESA_PRINCIPAL, ConstantesSistema.SIM));
Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
empresa = (Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa);
} else {
String idEmpresa = inserirUnidadeOrganizacionalActionForm.getIdEmpresa();
empresa = this.pesquisarEmpresa(idEmpresa);
}
String idUnidadeSuperior = inserirUnidadeOrganizacionalActionForm.getIdUnidadeSuperior();
UnidadeOrganizacional unidadeSuperior = null;
if(idUnidadeSuperior != null && !idUnidadeSuperior.equals("")){
unidadeSuperior = this.pesquisarUnidadeOrganizacional(idUnidadeSuperior);
}
String idUnidadeCentralizadora = inserirUnidadeOrganizacionalActionForm.getIdUnidadeCentralizadora();
UnidadeOrganizacional unidadeCentralizadora = null;
if(idUnidadeCentralizadora != null &&
!idUnidadeCentralizadora.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) &&
!idUnidadeCentralizadora.equals("")){
unidadeCentralizadora = this.pesquisarUnidadeOrganizacional(idUnidadeCentralizadora);
}
//...........................................................................................
//06/03/2008 - Altera��o solicitada por Fab�ola Ara�jo.
// Yara Taciane de Souza.
//8.0 - Inclus�o de op��o de tratamento pra Unidade Repavimentadora.
String idUnidadeRepavimentadora = inserirUnidadeOrganizacionalActionForm.getIdUnidadeRepavimentadora();
UnidadeOrganizacional unidadeRepavimentadora = null;
if(idUnidadeRepavimentadora != null &&
!idUnidadeRepavimentadora.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) &&
!idUnidadeRepavimentadora.equals("")){
unidadeRepavimentadora = this.pesquisarUnidadeOrganizacional(idUnidadeRepavimentadora);
}
//...........................................................................................
String idMeioSolicitacao = inserirUnidadeOrganizacionalActionForm.getMeioSolicitacao();
MeioSolicitacao meioSolicitacao = null;
if(idMeioSolicitacao != null &&
!idMeioSolicitacao.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) &&
!idMeioSolicitacao.equals("")){
meioSolicitacao = this.pesquisarMeioSolicitacao(idMeioSolicitacao);
}
String idLocalidade = inserirUnidadeOrganizacionalActionForm.getIdLocalidade();
Localidade localidade = null;
if(idLocalidade != null && !idLocalidade.equals("")){
localidade = this.pesquisarLocalidade(idLocalidade);
}
//...........................................................................................
//11/12/2008 - Altera��o para inclusao de UnidadeNegocio
// Victor Cisneiros
String idUnidadeNegocio = inserirUnidadeOrganizacionalActionForm.getUnidadeNegocio();
UnidadeNegocio unidadeNegocio = null;
if(idUnidadeNegocio != null && !idUnidadeNegocio.equals("")){
unidadeNegocio = this.pesquisarUnidadeNegocio(idUnidadeNegocio);
}
//...........................................................................................
String idGerenciaRegional = inserirUnidadeOrganizacionalActionForm.getGerenciaRegional();
GerenciaRegional gerenciaRegional = null;
if(idGerenciaRegional != null && !idGerenciaRegional.equals("")){
gerenciaRegional = this.pesquisarGerenciaRegional(idGerenciaRegional);
}
UnidadeOrganizacional unidadeOrganizacional =
new UnidadeOrganizacional(
indicadorEsgoto,
indicadorTramite,
descricao,
sigla,
ultimaAlteracao,
indicadorAberturaRa,
indicadorUso,
unidadeTipo,
meioSolicitacao,
empresa,
localidade,
gerenciaRegional,
unidadeCentralizadora,
unidadeRepavimentadora,
unidadeSuperior,
indicadorCentralAtendimento,
indicadorTarifaSocial);
unidadeOrganizacional.setUnidadeNegocio(unidadeNegocio);
ArrayList colecaoMunicipioSelecionado = (ArrayList) sessao.getAttribute("colecaoMunicipioSelecionado");
Integer codigoUnidadeOrganizacionalInserido =
(Integer) fachada.inserirUnidadeOrganizacional(unidadeOrganizacional,
this.getUsuarioLogado(httpServletRequest));
if ( colecaoMunicipioSelecionado != null ) {
Iterator iteratorHelper = colecaoMunicipioSelecionado.iterator();
while ( iteratorHelper.hasNext() ) {
Municipio municipio = (Municipio) iteratorHelper.next();
UnidadeOrganizacionalMunicipio unidadeOrgMunicipio = new UnidadeOrganizacionalMunicipio();
UnidadeOrganizacional unidadeRepav = new UnidadeOrganizacional();
unidadeRepav.setId(codigoUnidadeOrganizacionalInserido);
unidadeOrgMunicipio.setIdMunicipio(municipio);
unidadeOrgMunicipio.setIdUnidadeRepavimentadora(unidadeRepav);
unidadeOrgMunicipio.setDataVinculacao(new Date());
unidadeOrgMunicipio.setDataDesvinculacao(null);
unidadeOrgMunicipio.setUltimaAlteracao(new Date());
fachada.inserir(unidadeOrgMunicipio);
}
}
sessao.removeAttribute("filtrar_manter");
montarPaginaSucesso(httpServletRequest, "Unidade Organizacional de c�digo " +
codigoUnidadeOrganizacionalInserido + " inserido com sucesso.",
"Inserir outra Unidade", "exibirInserirUnidadeOrganizacionalAction.do?menu=sim",
"exibirAtualizarUnidadeOrganizacionalAction.do?idRegistroAtualizacao="+
codigoUnidadeOrganizacionalInserido, "Atualizar Unidade Inserida");
return retorno;
}
private Localidade pesquisarLocalidade(String id) {
Localidade localidade = null;
// Filtro para obter o localidade ativo de id informado
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(
new ParametroSimples(FiltroLocalidade.ID,
new Integer(id)));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoLocalidade = Fachada.getInstancia()
.pesquisar(filtroLocalidade,Localidade.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
}
return localidade;
}
private UnidadeNegocio pesquisarUnidadeNegocio(String id) {
UnidadeNegocio unidadeNegocio = null;
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.adicionarParametro(
new ParametroSimples(FiltroUnidadeNegocio.ID, id));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoUnidadeNegocio =
Fachada.getInstancia().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoUnidadeNegocio != null && !colecaoUnidadeNegocio.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoUnidadeNegocio);
}
return unidadeNegocio;
}
private UnidadeOrganizacional pesquisarUnidadeOrganizacional(String id) {
UnidadeOrganizacional unidadeOrganizacional = null;
// Filtro para obter unidade organizacional ativo de id informado
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional.adicionarParametro(
new ParametroSimples(FiltroUnidadeOrganizacional.ID, id));
filtroUnidadeOrganizacional.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo");
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoUnidade = Fachada.getInstancia()
.pesquisar(filtroUnidadeOrganizacional,UnidadeOrganizacional.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoUnidade != null && !colecaoUnidade.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
unidadeOrganizacional =
(UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidade);
}
return unidadeOrganizacional;
}
private Empresa pesquisarEmpresa(String id) {
Empresa empresa = null;
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(
new ParametroSimples(FiltroEmpresa.ID, id));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoEmpresa =
Fachada.getInstancia().pesquisar(filtroEmpresa,Empresa.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
empresa =
(Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa);
}
return empresa;
}
private GerenciaRegional pesquisarGerenciaRegional(String id) {
GerenciaRegional gerenciaRegional = null;
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(
new ParametroSimples(FiltroGerenciaRegional.ID, id));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoGerenciaRegional =
Fachada.getInstancia().pesquisar(filtroGerenciaRegional,GerenciaRegional.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoGerenciaRegional != null && !colecaoGerenciaRegional.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
gerenciaRegional =
(GerenciaRegional) Util.retonarObjetoDeColecao(colecaoGerenciaRegional);
}
return gerenciaRegional;
}
private UnidadeTipo pesquisarUnidadeTipo(String id) {
UnidadeTipo unidadeTipo = null;
FiltroUnidadeTipo filtroUnidadeTipo = new FiltroUnidadeTipo();
filtroUnidadeTipo.adicionarParametro(
new ParametroSimples(FiltroGerenciaRegional.ID, id));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoUnidadeTipo =
Fachada.getInstancia().pesquisar(filtroUnidadeTipo,UnidadeTipo.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoUnidadeTipo != null && !colecaoUnidadeTipo.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
unidadeTipo =
(UnidadeTipo) Util.retonarObjetoDeColecao(colecaoUnidadeTipo);
}
return unidadeTipo;
}
private MeioSolicitacao pesquisarMeioSolicitacao(String id) {
MeioSolicitacao meioSolicitacao = null;
FiltroMeioSolicitacao filtroMeioSolicitacao = new FiltroMeioSolicitacao();
filtroMeioSolicitacao.adicionarParametro(
new ParametroSimples(FiltroMeioSolicitacao.ID, id));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoMeioSolicitacao =
Fachada.getInstancia().pesquisar(filtroMeioSolicitacao,MeioSolicitacao.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoMeioSolicitacao != null && !colecaoMeioSolicitacao.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
meioSolicitacao =
(MeioSolicitacao) Util.retonarObjetoDeColecao(colecaoMeioSolicitacao);
}
return meioSolicitacao;
}
}