package gcom.gui.cobranca;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cobranca.CobrancaAcao;
import gcom.cobranca.CobrancaCriterio;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.RotaAcaoCriterioHelper;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.micromedicao.Rota;
import gcom.micromedicao.bean.AssociarConjuntoRotasCriterioCobrancaHelper;
import gcom.seguranca.acesso.usuario.Usuario;
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 Flavio Leonardo, Raphael Rossiter
* @date 24/01/2008
*/
public class AssociarConjuntoRotasCriterioCobrancaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
AssociarConjuntoRotasCriterioCobrancaActionForm form = (AssociarConjuntoRotasCriterioCobrancaActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
//CARREGANDO OBJETO HELPER
AssociarConjuntoRotasCriterioCobrancaHelper parametros = this.carregarHelper(form);
//CARREGANDO AS ROTAS SELECIONADAS
Collection rotas = fachada.pesquisarRotasParaAssociacaoCriterioCobranca(parametros);
//************************************************************************************************************************************
//INSTANCIANDO OBJETO HELPER PARA REGISTRO TRANSACAO
RotaAcaoCriterioHelper rotaAcaoCriterioHelper = new RotaAcaoCriterioHelper();
if ( form.getIdAcaoCobranca() != null && ! form.getIdAcaoCobranca().equals("") ){
CobrancaAcao cobrancaAcao = new CobrancaAcao();
cobrancaAcao.setId(new Integer(form.getIdAcaoCobranca()));
rotaAcaoCriterioHelper.setCobrancaAcao(cobrancaAcao);
}
if ( form.getIdCriterioCobranca() != null && ! form.getIdCriterioCobranca().equals("") ){
CobrancaCriterio cobrancaCriterio = new CobrancaCriterio();
cobrancaCriterio.setId(new Integer(form.getIdCriterioCobranca()));
rotaAcaoCriterioHelper.setCobrancaCriterio(cobrancaCriterio);
}
if ( form.getIdGrupoCobranca() != null && ! form.getIdGrupoCobranca().equals("") ){
CobrancaGrupo grupo = new CobrancaGrupo();
grupo.setId(new Integer(form.getIdGrupoCobranca()));
rotaAcaoCriterioHelper.setCobrancaGrupo(grupo);
}
if (rotaAcaoCriterioHelper.getCobrancaGrupo() == null){
if ( form.getIdGerenciaRegional() != null && ! form.getIdGerenciaRegional().equals("") && new Integer(form.getIdGerenciaRegional())> 0){
GerenciaRegional gerenciaRegional = new GerenciaRegional();
gerenciaRegional.setId(new Integer(form.getIdGerenciaRegional()));
rotaAcaoCriterioHelper.setGerenciaRegional(gerenciaRegional);
}
if ( form.getIdUnidadeNegocio() != null && ! form.getIdUnidadeNegocio().equals("") && new Integer(form.getIdUnidadeNegocio())> 0 ){
UnidadeNegocio unidadeNegocio = new UnidadeNegocio();
unidadeNegocio.setId(new Integer(form.getIdUnidadeNegocio()));
rotaAcaoCriterioHelper.setUnidadeNegocio(unidadeNegocio);
}
if ( form.getIdLocalidadeInicial() != null && ! form.getIdLocalidadeInicial().equals("")){
Localidade localidadeInicial = new Localidade();
localidadeInicial.setId(new Integer(form.getIdLocalidadeInicial()));
rotaAcaoCriterioHelper.setLocalidadeInicial(localidadeInicial);
}
if ( form.getIdLocalidadeFinal() != null && ! form.getIdLocalidadeFinal().equals("")){
Localidade localidadeFinal = new Localidade();
localidadeFinal.setId(new Integer(form.getIdLocalidadeFinal()));
rotaAcaoCriterioHelper.setLocalidadeFinal(localidadeFinal);
}
if ( form.getCodigoSetorComercialInicial() != null && ! form.getCodigoSetorComercialInicial().equals("")){
SetorComercial setorComercialInicial = new SetorComercial();
setorComercialInicial.setId(new Integer(form.getCodigoSetorComercialInicial()));
rotaAcaoCriterioHelper.setSetorComercialInicial(setorComercialInicial);
}
if ( form.getCodigoSetorComercialFinal() != null && ! form.getCodigoSetorComercialFinal().equals("") ){
SetorComercial setorComercialFinal = new SetorComercial();
setorComercialFinal.setId(new Integer(form.getCodigoSetorComercialFinal()));
rotaAcaoCriterioHelper.setSetorComercialFinal(setorComercialFinal);
}
if ( form.getNumeroRotaInicial() != null && ! form.getNumeroRotaInicial().equals("") && new Integer(form.getNumeroRotaInicial())> 0 ){
Rota rotaInicial = new Rota();
rotaInicial.setId(new Integer(form.getNumeroRotaInicial()));
rotaAcaoCriterioHelper.setRotaInicial(rotaInicial);
}
if ( form.getNumeroRotaFinal() != null && ! form.getNumeroRotaFinal().equals("") && new Integer(form.getNumeroRotaFinal())> 0 ){
Rota rotaFinal = new Rota();
rotaFinal.setId(new Integer(form.getNumeroRotaFinal()));
rotaAcaoCriterioHelper.setRotaFinal(rotaFinal);
}
}
//************************************************************************************************************************************
//[UC0543] Associar Conjunto de Rotas a Crit�rio de Cobran�a
fachada.associarConjuntoRotasCriterioCobranca(rotas, usuarioLogado, rotaAcaoCriterioHelper);
// montando p�gina de sucesso
montarPaginaSucesso(httpServletRequest, "Rotas associadas ao crit�rio de cobran�a com sucesso.",
"Associar outras Rotas", "exibirAssociarRotasCriterioCobrancaAction.do?menu=sim");
return retorno;
}
private AssociarConjuntoRotasCriterioCobrancaHelper carregarHelper(AssociarConjuntoRotasCriterioCobrancaActionForm
form){
AssociarConjuntoRotasCriterioCobrancaHelper parametros =
new AssociarConjuntoRotasCriterioCobrancaHelper();
String idGrupoCobranca = form.getIdGrupoCobranca();
String idGerencialRegional = form.getIdGerenciaRegional();
String idUnidadeNegocio = form.getIdUnidadeNegocio();
String idLocalidadeInicial = form.getIdLocalidadeInicial();
String idLocalidadeFinal = form.getIdLocalidadeFinal();
String codigoSetorInicial = form.getCodigoSetorComercialInicial();
String codigoSetorFinal = form.getCodigoSetorComercialFinal();
String rotaInicial = form.getNumeroRotaInicial();
String rotaFinal = form.getNumeroRotaFinal();
String idCobrancaAcao = form.getIdAcaoCobranca();
String idCriterioCobranca = form.getIdCriterioCobranca();
parametros.setIdCobrancaAcao(idCobrancaAcao != null &&
!idCobrancaAcao.equals("-1")?new Integer(idCobrancaAcao): null);
parametros.setIdGrupoCobranca(idGrupoCobranca != null &&
!idGrupoCobranca.equals("-1")?new Integer(idGrupoCobranca): null);
parametros.setIdGerencialRegional(idGerencialRegional != null &&
!idGerencialRegional.equals("-1")?new Integer(idGerencialRegional): null);
parametros.setIdUnidadeNegocio(idUnidadeNegocio != null &&
!idUnidadeNegocio.equals("-1")?new Integer(idUnidadeNegocio): null);
parametros.setIdLocalidadeInicial(idLocalidadeInicial != null &&
!idLocalidadeInicial.equals("")?new Integer(idLocalidadeInicial): null);
parametros.setIdLocalidadeFinal(idLocalidadeFinal != null &&
!idLocalidadeFinal.equals("")?new Integer(idLocalidadeFinal): null);
parametros.setCdSetorComercialInicial(codigoSetorInicial != null &&
!codigoSetorInicial.equals("")?new Integer(codigoSetorInicial): null);
parametros.setCdSetorComercialFinal(codigoSetorFinal != null &&
!codigoSetorFinal.equals("")?new Integer(codigoSetorFinal): null);
parametros.setNnRotaInicial(rotaInicial != null &&
!rotaInicial.equals("-1")?new Integer(rotaInicial): null);
parametros.setNnRotaFinal(rotaFinal != null &&
!rotaFinal.equals("-1")?new Integer(rotaFinal): null);
parametros.setIdCriterioCobranca(idCriterioCobranca != null &&
!idCriterioCobranca.equals("")?new Integer(idCriterioCobranca): null);
parametros.setValidarCriterioCobranca(true);
return parametros;
}
}