fixes bug#22494
dev: Celio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@108592 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
7ff9536037
commit
8c47a2c247
|
@ -17,6 +17,8 @@ public interface RemessaCNABBancosDAO extends GenericDAO<FechamentoBoleto, Long>
|
|||
|
||||
public ArquivoRemessa remessaSicoob(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception;
|
||||
|
||||
public ArquivoRemessa remessaCaixa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception;
|
||||
|
||||
public ArquivoRemessa remessaMercantil(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception;
|
||||
|
||||
public ArquivoRemessa remessaItau(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception;
|
||||
|
|
|
@ -34,6 +34,9 @@ import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaLoteBancoB
|
|||
import com.rjconsultores.ventaboletos.blocos.bradesco.ArquivoRemessaBradesco;
|
||||
import com.rjconsultores.ventaboletos.blocos.bradesco.CabecalhoRemessaBradesco;
|
||||
import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco;
|
||||
import com.rjconsultores.ventaboletos.blocos.caixa.ArquivoRemessaCaixa;
|
||||
import com.rjconsultores.ventaboletos.blocos.caixa.CabecalhoRemessaCaixa;
|
||||
import com.rjconsultores.ventaboletos.blocos.caixa.DetalheObrigatorioCaixa;
|
||||
import com.rjconsultores.ventaboletos.blocos.itau.ArquivoRemessaItau;
|
||||
import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau;
|
||||
import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau;
|
||||
|
@ -1318,6 +1321,178 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO<Fechament
|
|||
return arquivoRemessa;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArquivoRemessa remessaCaixa(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append("SELECT ");
|
||||
sb.append("fb.FECHAMENTOBOLETO_ID AS \"id\", ");
|
||||
sb.append("(NVL(fp.COUNT_REMESSA, 0) + 1) AS \"idRemessa\", ");
|
||||
sb.append("fp.COD_EMP_BANCO AS \"codEmpresaBanco\", ");
|
||||
sb.append("emp.CNPJ AS \"cnpj\", ");
|
||||
sb.append("emp.NOMBEMPRESA AS \"nomeEmpresa\", ");
|
||||
sb.append("fp.BOLETO_BANCO_AGENCIA AS \"agencia\", ");
|
||||
sb.append("fb.NOSSONUMERO AS \"nossoNumero\", ");
|
||||
sb.append("fb.FECVENCIMENTO AS \"vencimento\", ");
|
||||
sb.append("fb.VALORDOCUMENTO AS \"valor\", ");
|
||||
sb.append("fb.FECDOCUMENTO AS \"dataEmissao\", ");
|
||||
sb.append("fb.MORA AS \"valorAtraso\", ");
|
||||
sb.append("fb.DESCONTOS AS \"valorDesconto\", ");
|
||||
sb.append("fb.DEDUCOES AS \"valorAbatimento\", ");
|
||||
sb.append("'cnpj' as \"tipoInscricaoPagador\", ");
|
||||
sb.append("pv.NUMDOCPUNTOVENTA AS \"numeroInscricaoPagador\", ");
|
||||
sb.append("pv.NOMBPUNTOVENTA AS \"nomePagador\", ");
|
||||
sb.append("pv.DIRECCIONCALLE || ', ' || pv.DIRECCIONNUMERO AS \"logradouroPagador\", ");
|
||||
sb.append("pl.NOMBPLAZA AS \"bairroPagador\", ");
|
||||
sb.append("pv.CODPOSTAL AS \"cepPagador\", ");
|
||||
sb.append("ci.NOMBCIUDAD AS \"cidadePagador\", ");
|
||||
sb.append("es.NOMBESTADO AS \"estadoPagador\" ");
|
||||
writeFROMClause(sb, dataDe != null && dataAte != null, reenviar);
|
||||
|
||||
Query query = getSession().createSQLQuery(sb.toString());
|
||||
query.setInteger("empresaId", empresa.getEmpresaId());
|
||||
if(dataDe != null && dataAte != null){
|
||||
query.setDate("dataDe", dataDe);
|
||||
query.setDate("dataAte", dataAte);
|
||||
}
|
||||
List<Object[]> list = query.list();
|
||||
|
||||
ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.CAIXA_400_Envio);
|
||||
|
||||
String nomeArquivo = "CEF" + new SimpleDateFormat("ddMM").format(new Date());
|
||||
int variavel = 0;
|
||||
int seqRegistro = 0;
|
||||
int qtdeTitulos = 0;
|
||||
|
||||
ArquivoRemessaItem arquivoRemessaItem = null;
|
||||
CabecalhoRemessaCaixa cabecalhoRemessaCaixa = null;
|
||||
RodapeRemessaPadrao rodape = null;
|
||||
|
||||
for(Object[] tupla : list){
|
||||
|
||||
Integer idRemessa = Integer.valueOf(tupla[1].toString());
|
||||
variavel = idRemessa;
|
||||
String codEmpresaBanco = tupla[2] == null ? "" : ((BigDecimal) tupla[2]).toString();
|
||||
String versao = codEmpresaBanco.length() >6 ?"007":"";
|
||||
codEmpresaBanco = StringUtils.right("0000000" + codEmpresaBanco, 7);
|
||||
String nomeEmpresa = tupla[4].toString();
|
||||
BigDecimal valor = new BigDecimal(tupla[8].toString().replaceAll(",", "."));
|
||||
|
||||
qtdeTitulos++;
|
||||
|
||||
if(cabecalhoRemessaCaixa == null ){
|
||||
cabecalhoRemessaCaixa = new CabecalhoRemessaCaixa();
|
||||
|
||||
cabecalhoRemessaCaixa.setAgenciaBeneficiario(tupla[5].toString());
|
||||
cabecalhoRemessaCaixa.setCodigoEmpresa(codEmpresaBanco);
|
||||
cabecalhoRemessaCaixa.setNomeEmpresa(nomeEmpresa);
|
||||
cabecalhoRemessaCaixa.setDataGravacao(new Date());
|
||||
cabecalhoRemessaCaixa.setNumeroSequencialRemessa(idRemessa);
|
||||
cabecalhoRemessaCaixa.setVersaoLayout(versao);
|
||||
|
||||
arquivoRemessaItem = new ArquivoRemessaCaixa();
|
||||
arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessaCaixa);
|
||||
arquivoRemessa.addItem(arquivoRemessaItem);
|
||||
|
||||
}
|
||||
|
||||
DetalheObrigatorioCaixa titulosCaixa = new DetalheObrigatorioCaixa();
|
||||
titulosCaixa.setIdBoletoFechamento(Integer.valueOf(tupla[0].toString()));
|
||||
|
||||
titulosCaixa.setNumeroSequencialRegistro( seqRegistro++ );
|
||||
titulosCaixa.setNossoNumero(tupla[6].toString());
|
||||
titulosCaixa.setNumeroDoDocumento(tupla[0].toString());
|
||||
titulosCaixa.setVencimento((Date) tupla[7]);
|
||||
titulosCaixa.setValor( valor );
|
||||
titulosCaixa.setEmissao((Date) tupla[9]);
|
||||
try{
|
||||
titulosCaixa.setValorAtraso(new BigDecimal(tupla[10].toString().replaceAll(",", ".")));
|
||||
}catch(NullPointerException e){
|
||||
titulosCaixa.setValorAtraso(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
try{
|
||||
titulosCaixa.setDataLimiteDesconto((Date) tupla[7]);
|
||||
titulosCaixa.setValorDesconto(new BigDecimal(tupla[11].toString().replaceAll(",", ".")));
|
||||
}catch(NullPointerException e){
|
||||
titulosCaixa.setDataLimiteDesconto((Date) tupla[7]);
|
||||
titulosCaixa.setValorDesconto(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
titulosCaixa.setValorIOF(BigDecimal.ZERO);
|
||||
try{
|
||||
titulosCaixa.setValorAbatimentoConcedido(new BigDecimal(tupla[12].toString().replaceAll(",", ".")));
|
||||
}catch(NullPointerException e){
|
||||
titulosCaixa.setValorAbatimentoConcedido(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
titulosCaixa.setNomeSacado(tupla[15].toString());
|
||||
titulosCaixa.setTipoInscricaoPagador(TipoInscricaoPagador.CNPJ);
|
||||
|
||||
try{
|
||||
titulosCaixa.setNumeroInscricao(tupla[3].toString().replaceAll("[^0-9]+", ""));
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("O CNPJ do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
String cep = "";
|
||||
try{
|
||||
cep = StringUtils.right("00000000" + tupla[18].toString(), 8);
|
||||
}catch(Exception e){
|
||||
cep = "00000000";
|
||||
}
|
||||
|
||||
titulosCaixa.setCepSacado(cep);
|
||||
|
||||
try{
|
||||
titulosCaixa.setNumeroInscricaoSacado(tupla[14].toString());
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("O CNPJ do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
try{
|
||||
titulosCaixa.setEnderecoSacado(tupla[16].toString());
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("O Logradouro do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
try{
|
||||
titulosCaixa.setBairroSacado(tupla[17].toString());
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("O Bairro do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
try{
|
||||
titulosCaixa.setCidade(tupla[19].toString());
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("A cidade do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
try{
|
||||
titulosCaixa.setEstado(tupla[20].toString());
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException("O Estado do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir");
|
||||
}
|
||||
|
||||
titulosCaixa.setSacadorAvalista("");
|
||||
|
||||
arquivoRemessaItem.addTitulo(titulosCaixa);
|
||||
|
||||
}
|
||||
|
||||
if(rodape == null){
|
||||
rodape = new RodapeRemessaPadrao();
|
||||
rodape.setNumeroSequencialRegistro(qtdeTitulos);
|
||||
arquivoRemessaItem.setRodapeRemessa(rodape);
|
||||
}
|
||||
|
||||
nomeArquivo = nomeArquivo + new DecimalFormat("##").format(variavel) + ".REM";
|
||||
arquivoRemessa.setNomeArquivo(nomeArquivo);
|
||||
|
||||
return arquivoRemessa;
|
||||
}
|
||||
|
||||
private void writeFROMClause(StringBuilder sb, boolean hasDate, Boolean reenviar) {
|
||||
sb.append(" FROM ");
|
||||
sb.append(" FECHAMENTO_BOLETO fb ");
|
||||
|
|
|
@ -78,7 +78,10 @@ public class ArquivoRemessaCNABImpl implements ArquivoRemessaCNAB {
|
|||
return remessaCNABBancosDAO.remessaBancoBrasil(empresa, dataDe, dataAte, reenviar);
|
||||
}else if(BancoLayout.SICOOB_240_Envio.equals(banco)){
|
||||
return remessaCNABBancosDAO.remessaSicoob(empresa, dataDe, dataAte, reenviar);
|
||||
}else if(BancoLayout.CAIXA_400_Envio.equals(banco)){
|
||||
return remessaCNABBancosDAO.remessaCaixa(empresa, dataDe, dataAte, reenviar);
|
||||
}
|
||||
|
||||
}catch(RuntimeException re){
|
||||
throw re;
|
||||
}catch(Exception e){
|
||||
|
|
Loading…
Reference in New Issue