package gcom.gui.atendimentopublico;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.bean.EmitirContaHelper;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import java.util.ArrayList;
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;
/**
* Descri��o da classe
*
* @author R�mulo Aur�lio
* @date 19/01/2007
*/
public class EnviarDadosBancosAction 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) {
// localiza o action no objeto actionmapping
ActionForward retorno = actionMapping
.findForward("enviarDadosBancoBrasilAction");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
if (httpServletRequest.getParameter("banco").equalsIgnoreCase(
"bancoBrasil")) {
retorno = actionMapping.findForward("enviarDadosBancoBrasilAction");
}
if(httpServletRequest.getParameter("banco").equalsIgnoreCase(
"Bradesco")) {
retorno = actionMapping.findForward("enviarDadosBradescoAction");
}
// Geracao do codigo de Barra da conta
Collection idsContaEP = new ArrayList();
if (sessao.getAttribute("idConta") != null
&& !sessao.getAttribute("idConta").equals("")) {
idsContaEP.add(new Integer("" + sessao.getAttribute("idConta")));
}else if(httpServletRequest.getParameter("idConta") != null
&& !httpServletRequest.getParameter("idConta").equals("")) {
idsContaEP.add(new Integer("" + httpServletRequest.getParameter("idConta")));
}
Collection<EmitirContaHelper> colecaoEmitirContaHelper = fachada
.emitir2ViaContas(idsContaEP, false,ConstantesSistema.NAO);
EmitirContaHelper emitirContaHelper = colecaoEmitirContaHelper
.iterator().next();
String representacaoNumericaCodBarraFormatada = emitirContaHelper
.getRepresentacaoNumericaCodBarraFormatada();
// Cortar a representacaoNumericaCodBarraFormatada separando de 12 em
// 12, mas tirando os espacos e tra�os
String cAux1 = representacaoNumericaCodBarraFormatada.substring(0, 11)
+ representacaoNumericaCodBarraFormatada.substring(12, 13);
String cAux2 = representacaoNumericaCodBarraFormatada.substring(14, 25)
+ representacaoNumericaCodBarraFormatada.substring(26, 27);
String cAux3 = representacaoNumericaCodBarraFormatada.substring(28, 39)
+ representacaoNumericaCodBarraFormatada.substring(40, 41);
String cAux4 = representacaoNumericaCodBarraFormatada.substring(42, 53)
+ representacaoNumericaCodBarraFormatada.substring(54, 55);
//
// String cAux2 =
// String cAux3 =
// String cAux4 =
// codigo de barras passado pela 2. via de conta
String codigo = cAux1 + cAux2 + cAux3 + cAux4;
httpServletRequest.setAttribute("codigo",codigo);
// valor passado
String valor = (String) emitirContaHelper.getValorContaString();
httpServletRequest.setAttribute("valor", valor);
// primeira parte co codigo de barras
String cb1 = cAux1;
httpServletRequest.setAttribute("cb1", cb1);
// segunda parte
String cb2 = cAux2;
httpServletRequest.setAttribute("cb2", cb2);
// terceira
String cb3 = cAux3;
httpServletRequest.setAttribute("cb3", cb3);
// quarta
String cb4 = cAux4;
httpServletRequest.setAttribute("cb4", cb4);
// codigo de barras para exibir para o cliente
String cb = "Codigo de barras#" + codigo;
httpServletRequest.setAttribute("cb", cb);
Date data = new Date();
String dt = Util.formatarData(data);
httpServletRequest.setAttribute("dt", dt);
String dia = dt.substring(0, 2);
String mes = dt.substring(3, 5);
String ano = dt.substring(6, 10);
String dtPagamento = dia + mes + ano;
httpServletRequest.setAttribute("dtPagamento", dtPagamento);
String dtEd = "Data do pagamento#" + dt;
httpServletRequest.setAttribute("dted", dtEd);
// $dt = date("dmY"); // data para passar para o banco
// $dted = "Data do pagamento#".date("d/m/Y");
// Date dt = date("dmY");
// BigDecimal valorConta = new BigDecimal(0);
String valorAux = valor.toString();
String vlrSemPonto = valorAux.replace(".", "");
String vlrSemVirgula = vlrSemPonto.replace(",", "");
String vlr = "0000000" + vlrSemVirgula;
httpServletRequest.setAttribute("vlr", vlr);
// valorConta = new BigDecimal(valorAux);
String vlRed = "Valor#R$ " + valor;
httpServletRequest.setAttribute("vlred", vlRed);
/*
* C�digo php Original
*
* $codigo = $_GET['codigobarra']; // codigo de barras passado pela 2.
* via de conta $valor = $_GET['valor']; // valor passado
*
* $cb1 = substr($codigo, 0, 12); // primeira parte co codigo de barras
* $cb2 = substr($codigo, 12, 12); // segunda parte $cb3 =
* substr($codigo, 24, 12); // terceira $cb4 = substr($codigo, 36, 12); //
* quarta
*
* $cb = "Codigo de barras#".$codigo; // codigo de barras para exibir
* para o cliente
*
* $dt = date("dmY"); // data para passar para o banco $dted = "Data do
* pagamento#".date("d/m/Y");
*
* $vlrsemponto = str_replace(".", "", $valor); $vlrsemvirgula =
* str_replace(",", "", $vlrsemponto); $vlr = str_pad($vlrsemvirgula,
* 11, "0", STR_PAD_LEFT); $vlred = "Valor#R$ ".$valor;
*/
/*
* Colocado por Raphael Rossiter em 16/05/2007
*/
SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema();
httpServletRequest.setAttribute("nomeEmpresa", sistemaParametro.getNomeEmpresa().trim());
return retorno;
}
}