package gcom.gui.cobranca;
import java.util.ArrayList;
import java.util.Collection;
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;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.empresa.FiltroEmpresa;
import gcom.cobranca.CobrancaGrupo;
import gcom.cobranca.FiltroCobrancaGrupo;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoGrupo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.Rota;
import gcom.util.filtro.ParametroSimplesIn;
/**
* @date 20/10/09
* @author Anderson Italo
* Confirma��o para opera��o de transferencia de
* Rotas entre Grupos e/ou Empresas
*/
public class TransferirRotaGrupoEmpresaConfirmarAction extends GcomAction{
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("confirmarTransferirRotaGrupoEmpresa");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
Collection rotasSelecionadas = (Collection)sessao.getAttribute("rotasSelecionadas");
TransferirRotasGruposEmpresasActionForm form = (TransferirRotasGruposEmpresasActionForm) actionForm;
/*4.2. Os grupos de faturamento aos quais pertencem as rotas
* (Obter na tabela ROTA a partir de FTGR_ID aos grupos de faturamento
* aos quais pertencem as rotas da selecionadas*/
Collection idsGrupoFaturamento = new ArrayList();
for (Iterator iter = rotasSelecionadas.iterator(); iter.hasNext();) {
Rota rota = (Rota) iter.next();
idsGrupoFaturamento.add(rota.getFaturamentoGrupo().getId());
}
FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.adicionarParametro(new ParametroSimplesIn(FiltroFaturamentoGrupo.ID , idsGrupoFaturamento));
filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.DESCRICAO);
Collection colecaoGrupoFaturamento = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
httpServletRequest.setAttribute("colecaoGrupoFaturamentoSelecao", colecaoGrupoFaturamento);
/*4.3. Os grupos de cobran�a aos quais pertencem as rotas
* (Obter na tabela ROTA a partir de CBGR_ID aos grupos de cobran�a
* aos quais pertencem as rotas da selecionadas.*/
Collection idsGrupoCobranca = new ArrayList();
for (Iterator iter = rotasSelecionadas.iterator(); iter.hasNext();) {
Rota rota = (Rota) iter.next();
idsGrupoCobranca.add(rota.getCobrancaGrupo().getId());
}
FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo();
filtroCobrancaGrupo.adicionarParametro(new ParametroSimplesIn(FiltroCobrancaGrupo.ID , idsGrupoCobranca));
filtroCobrancaGrupo.setCampoOrderBy(FiltroCobrancaGrupo.DESCRICAO);
Collection colecaoGrupoCobranca = fachada.pesquisar(filtroCobrancaGrupo, CobrancaGrupo.class.getName());
httpServletRequest.setAttribute("colecaoGrupoCobrancaSelecao", colecaoGrupoCobranca);
/*4.4. As empresas de faturamento �s quais pertencem
* as rotas (Obter na tabela ROTA a partir de EMPR_ID as
* empresas de faturamento �s quais est�o vinculadas as
* rotas da selecionadas)*/
Collection idsEmpresaFaturamento = new ArrayList();
for (Iterator iter = rotasSelecionadas.iterator(); iter.hasNext();) {
Rota rota = (Rota) iter.next();
idsEmpresaFaturamento.add(rota.getEmpresa().getId());
}
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimplesIn(FiltroEmpresa.ID , idsEmpresaFaturamento));
filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO);
Collection colecaoEmpresaFaturamento = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
httpServletRequest.setAttribute("colecaoEmpresaFaturamentoSelecao", colecaoEmpresaFaturamento);
/*4.5. As empresas de cobran�a �s quais pertencem as rotas (Obter
* na tabela ROTA a partir de EMPR_IDCOBRANCA as empresas de cobran�a
* �s quais est�o vinculadas as rotas da selecionadas)*/
Collection idsEmpresaCobranca = new ArrayList();
for (Iterator iter = rotasSelecionadas.iterator(); iter.hasNext();) {
Rota rota = (Rota) iter.next();
idsEmpresaCobranca.add(rota.getEmpresaCobranca().getId());
}
filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimplesIn(FiltroEmpresa.ID , idsEmpresaCobranca));
filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO);
Collection colecaoEmpresaCobranca = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
httpServletRequest.setAttribute("colecaoEmpresaCobrancaSelecao", colecaoEmpresaCobranca);
if (form.getIdGrupoCobrancaDestino() != null && !form.getIdGrupoCobrancaDestino().equals("")
&& !form.getIdGrupoCobrancaDestino().equals("-1")){
/*5.1. Grupo de Cobran�a (seleciona a partir da tabela COBRANCA_GRUPO)
* [FS0001 - Verificar exist�ncia de dados].*/
filtroCobrancaGrupo = new FiltroCobrancaGrupo();
filtroCobrancaGrupo.setCampoOrderBy(FiltroCobrancaGrupo.DESCRICAO);
Collection colecaoCobrancaGrupoDestino = fachada.pesquisar(filtroCobrancaGrupo, CobrancaGrupo.class.getName());
if (colecaoCobrancaGrupoDestino == null || colecaoCobrancaGrupoDestino.isEmpty()){
throw new ActionServletException("Atencao.Sem_dados_para_selecao");
}
httpServletRequest.setAttribute("colecaoCobrancaGrupoDestino", colecaoCobrancaGrupoDestino);
}
if (form.getIdGrupoFaturamentoDestino() != null && !form.getIdGrupoFaturamentoDestino().equals("")
&& !form.getIdGrupoFaturamentoDestino().equals("-1")){
/*5.2. Grupo de Faturamento (seleciona a partir da tabela FATURAMENTO_GRUPO)
* [FS0001 - Verificar exist�ncia de dados].*/
filtroFaturamentoGrupo = new FiltroFaturamentoGrupo();
filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.DESCRICAO);
Collection colecaoFaturamentoGrupoDestino = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName());
if (colecaoFaturamentoGrupoDestino == null || colecaoFaturamentoGrupoDestino.isEmpty()){
throw new ActionServletException("Atencao.Sem_dados_para_selecao");
}
httpServletRequest.setAttribute("colecaoFaturamentoGrupoDestino",colecaoFaturamentoGrupoDestino);
}
if (form.getIdEmpresaCobrancaDestino() != null && !form.getIdEmpresaCobrancaDestino().equals("")
&& !form.getIdEmpresaCobrancaDestino().equals("-1")){
/* 5.4. Empresa de Cobran�a (seleciona a partir da tabela EMPRESA)
* [FS0001 - Verificar exist�ncia de dados];*/
filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO);
Collection colecaoEmpresaCobrancaDestino = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresaCobrancaDestino == null || colecaoEmpresaCobrancaDestino.isEmpty()){
throw new ActionServletException("Atencao.Sem_dados_para_selecao");
}
httpServletRequest.setAttribute("colecaoEmpresaCobrancaDestino",colecaoEmpresaCobrancaDestino);
}
if (form.getIdEmpresaFaturamentoDestino() != null && !form.getIdEmpresaFaturamentoDestino().equals("")
&& !form.getIdEmpresaFaturamentoDestino().equals("-1")){
/*5.3. Empresa de Faturamento (seleciona a partir da tabela EMPRESA)
* [FS0001 - Verificar exist�ncia de dados];*/
filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO);
Collection colecaoEmpresaFaturamentoDestino = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresaFaturamentoDestino == null || colecaoEmpresaFaturamentoDestino.isEmpty()){
throw new ActionServletException("Atencao.Sem_dados_para_selecao");
}
httpServletRequest.setAttribute("colecaoEmpresaFaturamentoDestino", colecaoEmpresaFaturamentoDestino);
}
return retorno;
}
}