package gcom.gui.cobranca; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cobranca.GerarArquivoTextoContasCobrancaEmpresaHelper; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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; /** * [UC0896] Gerar Arquivo Texto das Contas em Cobran�a por Empresa * * @author R�mulo Aur�lio * @since 29/10/2008 */ public class ExibirGerarArquivoTextoContasCobrancaEmpresaAction extends GcomAction { /** * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ @SuppressWarnings("unchecked") public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirGerarArquivoTextoContasCobrancaEmpresaAction"); String pagina = httpServletRequest.getParameter("page.offset"); GerarArquivoTextoContasCobrancaEmpresaActionForm form = (GerarArquivoTextoContasCobrancaEmpresaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); this.pesquisarCampoEnter(httpServletRequest, form, fachada); if (httpServletRequest.getParameter("limpar") != null ) { sessao.removeAttribute("colecaoGerarArquivoTextoContasCobrancaEmpresaHelper"); } if (httpServletRequest.getParameter("selecionarComandos") != null || pagina!=null) { if(pagina==null){ pagina = "0"; } retorno = this.pesquisarComandosContas(httpServletRequest, form, fachada, sessao,pagina,retorno); } return retorno; } private void pesquisarCampoEnter(HttpServletRequest httpServletRequest, GerarArquivoTextoContasCobrancaEmpresaActionForm form, Fachada fachada) { String idEmpresa = form.getIdEmpresa(); // Pesquisa a empresa if (idEmpresa != null && !idEmpresa.trim().equals("")) { FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.ID, idEmpresa)); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) { Empresa empresa = (Empresa) Util .retonarObjetoDeColecao(colecaoEmpresa); form.setIdEmpresa(empresa.getId().toString()); form.setNomeEmpresa(empresa.getDescricao()); httpServletRequest.setAttribute("nomeCampo", "idEmpresa"); } else { form.setIdEmpresa(""); form.setNomeEmpresa("EMPRESA INEXISTENTE"); httpServletRequest.setAttribute("empresaInexistente", true); httpServletRequest.setAttribute("nomeCampo", "idEmpresa"); } } else { form.setNomeEmpresa(""); } } private ActionForward pesquisarComandosContas(HttpServletRequest httpServletRequest, GerarArquivoTextoContasCobrancaEmpresaActionForm form, Fachada fachada, HttpSession sessao, String pagina, ActionForward retorno) { String idEmpresa = form.getIdEmpresa(); ActionForward retorno2 = new ActionForward(); String periodoComandoInicial = form.getPeriodoComandoInicial(); String periodoComandoFinal = form.getPeriodoComandoFinal(); Date comandoInicial = null; Date comandoFinal = null; // Pesquisa a empresa if (idEmpresa != null && !idEmpresa.trim().equals("")) { FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro(new ParametroSimples( FiltroEmpresa.ID, idEmpresa)); Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); if (Util.isVazioOrNulo(colecaoEmpresa)) { throw new ActionServletException("atencao.empresa.inexistente"); } } if (periodoComandoFinal != null && !periodoComandoFinal.equals("") && periodoComandoInicial != null && !periodoComandoInicial.equals("")) { comandoInicial = Util.converteStringParaDate(periodoComandoInicial); comandoFinal = Util.converteStringParaDate(periodoComandoFinal); if (comandoInicial.compareTo(comandoFinal) > 0) { throw new ActionServletException( "atencao.data_inicial_periodo_execucao_comando.posterior.data_final_periodo_execucao_comando"); } } Integer totalRegistros = fachada .pesquisarDadosGerarArquivoTextoContasCobrancaEmpresaCount( new Integer(idEmpresa), comandoInicial, comandoFinal); retorno2 = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); Collection<GerarArquivoTextoContasCobrancaEmpresaHelper> colecaoGerarArquivoTextoContasCobrancaEmpresaHelper = fachada .pesquisarDadosGerarArquivoTextoContasCobrancaEmpresa( new Integer(idEmpresa), comandoInicial, comandoFinal,(Integer)httpServletRequest.getAttribute("numeroPaginasPesquisa")); if(colecaoGerarArquivoTextoContasCobrancaEmpresaHelper !=null && !colecaoGerarArquivoTextoContasCobrancaEmpresaHelper.isEmpty()){ sessao.setAttribute("dataInicial",comandoInicial); sessao.setAttribute("dataFinal",comandoFinal); sessao.setAttribute( "colecaoGerarArquivoTextoContasCobrancaEmpresaHelper", colecaoGerarArquivoTextoContasCobrancaEmpresaHelper); }else{ throw new ActionServletException("atencao.nenhum_comando_selecionado_geracao_arquivo"); } return retorno2; } }