fixes bug#20438
dev: Valdir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@104722 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
ef75341ed2
commit
e12cfc1ded
|
@ -15,6 +15,8 @@ public interface RemessaCNABBancosDAO extends GenericDAO<FechamentoBoleto, Long>
|
|||
|
||||
public ArquivoRemessa remessaSantander(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception;
|
||||
|
||||
public ArquivoRemessa remessaSicoob(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;
|
||||
|
|
|
@ -42,6 +42,13 @@ import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercant
|
|||
import com.rjconsultores.ventaboletos.blocos.santander.ArquivoRemessaSantander;
|
||||
import com.rjconsultores.ventaboletos.blocos.santander.CabecalhoRemessaSantander;
|
||||
import com.rjconsultores.ventaboletos.blocos.santander.DetalheObrigatorioSantander;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.ArquivoRemessaSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoLoteRemessaSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoRemessaSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioDadosPagadorSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaLoteSicoob;
|
||||
import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaSicoob;
|
||||
import com.rjconsultores.ventaboletos.dao.RemessaCNABBancosDAO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto;
|
||||
|
@ -234,6 +241,7 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO<Fechament
|
|||
return arquivoRemessa;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public ArquivoRemessa remessaSantander(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception{
|
||||
|
||||
|
@ -915,6 +923,205 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO<Fechament
|
|||
return arquivoRemessa;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArquivoRemessa remessaSicoob(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("fp.BOLETO_BANCO_CONTA AS \"conta\", ");
|
||||
sb.append("fp.BOLETO_BANCO_CONTA_DIGITO AS \"dac\", ");
|
||||
sb.append("fp.BOLETO_BANCO_CARTEIRA AS \"carteira\", ");
|
||||
sb.append("fb.NOSSONUMERO AS \"nossoNumero\", ");
|
||||
sb.append("fb.FECVENCIMENTO AS \"vencimento\", ");
|
||||
sb.append("fb.VALORDOCUMENTO AS \"valor\", ");
|
||||
sb.append("99 AS \"especieTitulo\", ");
|
||||
sb.append("fb.FECDOCUMENTO AS \"dataEmissao\", ");
|
||||
sb.append("' ' AS \"instrucao1\", ");
|
||||
sb.append("' ' AS \"instrucao2\", ");
|
||||
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\", ");
|
||||
sb.append("fp.BOLETO_BANCO_AGENCIA_DIGITO AS \"digitoAgencia\", ");
|
||||
sb.append("fp.BOLETO_BANCO_CARTEIRA_VARIAVEL AS \"variavelCarteira\" ");
|
||||
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.SICOOB_240_Envio);
|
||||
|
||||
String nomeArquivo = "Sicoob" + new SimpleDateFormat("ddMM").format(new Date());
|
||||
int variavel = 0;
|
||||
int seqRegistro = 0;
|
||||
int qtdeTitulos = 0;
|
||||
BigDecimal valorTitulos = BigDecimal.ZERO;
|
||||
|
||||
ArquivoRemessaItem arquivoRemessaItem = null;
|
||||
CabecalhoRemessaSicoob cabecalhoRemessaSicoob = null;
|
||||
CabecalhoLoteRemessaSicoob cabecalhoLoteRemessaSicoob = null;
|
||||
RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob = null;
|
||||
RodapeRemessaSicoob rodapeRemessaSicoob = null;
|
||||
|
||||
for(Object[] tupla : list){
|
||||
|
||||
Integer idRemessa = Integer.valueOf(tupla[1].toString());
|
||||
variavel = idRemessa;
|
||||
String codEmpresaBanco = ((BigDecimal) tupla[2]).toString();
|
||||
codEmpresaBanco = StringUtils.right("000000000" + codEmpresaBanco, 9);
|
||||
String nomeEmpresa = tupla[4].toString();
|
||||
BigDecimal valor = new BigDecimal(tupla[11].toString().replaceAll(",", "."));
|
||||
|
||||
qtdeTitulos++;
|
||||
valorTitulos.add( valor );
|
||||
|
||||
if(cabecalhoRemessaSicoob == null || !(cabecalhoRemessaSicoob.getNumConvenio()).equals(codEmpresaBanco)){
|
||||
cabecalhoRemessaSicoob = new CabecalhoRemessaSicoob();
|
||||
|
||||
cabecalhoRemessaSicoob.setCpfCnpj(Integer.parseInt(TipoInscricaoPagador.CNPJ.getId()));
|
||||
cabecalhoRemessaSicoob.setNumCpfCnpj(tupla[3].toString());
|
||||
cabecalhoRemessaSicoob.setNumAgencia(tupla[5].toString());
|
||||
cabecalhoRemessaSicoob.setDigAgencia(((BigDecimal) tupla[27]).toString());
|
||||
cabecalhoRemessaSicoob.setNumContaCorrente(tupla[6].toString());
|
||||
cabecalhoRemessaSicoob.setDigContaCorrente(tupla[7].toString());
|
||||
cabecalhoRemessaSicoob.setNomeEmpresa(nomeEmpresa);
|
||||
cabecalhoRemessaSicoob.setNumeroSequencialRemessa(idRemessa);
|
||||
cabecalhoRemessaSicoob.setDataGravacao(new Date());
|
||||
|
||||
cabecalhoLoteRemessaSicoob = new CabecalhoLoteRemessaSicoob();
|
||||
cabecalhoLoteRemessaSicoob.setCpfCnpj(Integer.parseInt(TipoInscricaoPagador.CNPJ.getId()));
|
||||
cabecalhoLoteRemessaSicoob.setNumCpfCnpj(tupla[3].toString());
|
||||
cabecalhoLoteRemessaSicoob.setNumAgencia(tupla[5].toString());
|
||||
cabecalhoLoteRemessaSicoob.setDigAgencia(((BigDecimal) tupla[27]).toString());
|
||||
cabecalhoLoteRemessaSicoob.setNumContaCorrente(tupla[6].toString());
|
||||
cabecalhoLoteRemessaSicoob.setDigContaCorrente(tupla[7].toString());
|
||||
cabecalhoLoteRemessaSicoob.setNomeEmpresa(nomeEmpresa);
|
||||
cabecalhoLoteRemessaSicoob.setNumeroRemessa(idRemessa);
|
||||
cabecalhoLoteRemessaSicoob.setDataGeracao(new Date());
|
||||
|
||||
cabecalhoRemessaSicoob.setCabecalhoLoteRemessaSicoob(cabecalhoLoteRemessaSicoob);
|
||||
|
||||
arquivoRemessaItem = new ArquivoRemessaSicoob();
|
||||
arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessaSicoob);
|
||||
|
||||
arquivoRemessa.addItem(arquivoRemessaItem);
|
||||
}
|
||||
|
||||
String []doc = tupla[9].toString().split("-");
|
||||
|
||||
DetalheObrigatorioSicoob titulosSicoob = new DetalheObrigatorioSicoob();
|
||||
titulosSicoob.setIdBoletoFechamento(Integer.valueOf(tupla[0].toString()));
|
||||
titulosSicoob.setNumSeqRegistro( seqRegistro++ );
|
||||
titulosSicoob.setNumAgencia(tupla[5].toString());
|
||||
titulosSicoob.setDigAgencia(((BigDecimal) tupla[27]).toString());
|
||||
titulosSicoob.setNumContaCorrente(tupla[6].toString());
|
||||
titulosSicoob.setDigContaCorrente(tupla[7].toString());
|
||||
titulosSicoob.setNossoNumero(doc[0]);
|
||||
titulosSicoob.setNumeroDoDocumento(tupla[0].toString());
|
||||
titulosSicoob.setVencimento((Date) tupla[10]);
|
||||
titulosSicoob.setValor( valor );
|
||||
titulosSicoob.setEmissao((Date) tupla[13]);
|
||||
try{
|
||||
titulosSicoob.setCodMora(1);
|
||||
titulosSicoob.setJurosDeMora(new BigDecimal(tupla[16].toString().replaceAll(",", ".")));
|
||||
titulosSicoob.setDataMora((Date) tupla[10]);
|
||||
}catch(NullPointerException e){
|
||||
titulosSicoob.setCodMora(1);
|
||||
titulosSicoob.setDataMora((Date) tupla[10]);
|
||||
titulosSicoob.setJurosDeMora(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
try{
|
||||
titulosSicoob.setCodigoDesconto(1);
|
||||
titulosSicoob.setDataDesconto((Date) tupla[10]);
|
||||
titulosSicoob.setDescontoConcedido(new BigDecimal(tupla[17].toString().replaceAll(",", ".")));
|
||||
}catch(NullPointerException e){
|
||||
titulosSicoob.setCodigoDesconto(1);
|
||||
titulosSicoob.setDataDesconto((Date) tupla[10]);
|
||||
titulosSicoob.setDescontoConcedido(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
titulosSicoob.setIofDevido(BigDecimal.ZERO);
|
||||
try{
|
||||
titulosSicoob.setAbatimentoConcedido(new BigDecimal(tupla[18].toString().replaceAll(",", ".")));
|
||||
}catch(NullPointerException e){
|
||||
titulosSicoob.setAbatimentoConcedido(BigDecimal.ZERO);
|
||||
}
|
||||
titulosSicoob.setNossoNumeroEmp(tupla[0].toString());
|
||||
titulosSicoob.setCodigoProtesto(3);
|
||||
titulosSicoob.setDiasProtesto(0);
|
||||
titulosSicoob.setCodigoBaixa(2);
|
||||
titulosSicoob.setDiasBaixa(0);
|
||||
titulosSicoob.setNumeroContrato(Integer.parseInt(tupla[0].toString()));
|
||||
|
||||
DetalheObrigatorioDadosPagadorSicoob pagadorSicoob = new DetalheObrigatorioDadosPagadorSicoob();
|
||||
pagadorSicoob.setNumeroSequencialRegistro( seqRegistro++ );
|
||||
pagadorSicoob.setTipoInscricaoSacado(Integer.parseInt(TipoInscricaoPagador.CNPJ.getId()));
|
||||
pagadorSicoob.setNumeroInscricaoSacado(tupla[20].toString());
|
||||
pagadorSicoob.setNomeSacado(tupla[21].toString());
|
||||
pagadorSicoob.setLogradouroSacado(tupla[22].toString());
|
||||
pagadorSicoob.setBairroSacado(tupla[23].toString());
|
||||
String cep = "";
|
||||
try{
|
||||
cep = StringUtils.right("00000000" + tupla[24].toString(), 8);
|
||||
}catch(Exception e){
|
||||
cep = "00000000";
|
||||
}
|
||||
int cepPrefix = Integer.parseInt(cep.substring(0, 5));
|
||||
int cepSufix = Integer.parseInt(cep.substring(5));
|
||||
pagadorSicoob.setCepSacado(cepPrefix);
|
||||
pagadorSicoob.setSufixoCep(cepSufix);
|
||||
pagadorSicoob.setCidade(tupla[25].toString());
|
||||
pagadorSicoob.setEstado(tupla[26].toString());
|
||||
pagadorSicoob.setCodBancoCorresp(0);
|
||||
pagadorSicoob.setNossoNumeroNoBancoCorresp("");
|
||||
|
||||
titulosSicoob.setDetalheObrigatorioDadosPagadorSicoob(pagadorSicoob);
|
||||
|
||||
arquivoRemessaItem.addTitulo(titulosSicoob);
|
||||
|
||||
}
|
||||
|
||||
if(arquivoRemessaItem != null){
|
||||
rodapeRemessaLoteSicoob = new RodapeRemessaLoteSicoob();
|
||||
rodapeRemessaLoteSicoob.setValorRegistros( valorTitulos );
|
||||
|
||||
rodapeRemessaSicoob = new RodapeRemessaSicoob();
|
||||
rodapeRemessaSicoob.setQtdLotes(1);
|
||||
rodapeRemessaSicoob.setQtdArquivos(qtdeTitulos);
|
||||
rodapeRemessaSicoob.setQtdContas(0);
|
||||
|
||||
rodapeRemessaSicoob.setRodapeRemessaLoteSicoob(rodapeRemessaLoteSicoob);
|
||||
|
||||
arquivoRemessaItem.setRodapeRemessa(rodapeRemessaSicoob);
|
||||
}
|
||||
|
||||
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 ");
|
||||
|
|
|
@ -76,6 +76,8 @@ public class ArquivoRemessaCNABImpl implements ArquivoRemessaCNAB {
|
|||
return remessaCNABBancosDAO.remessaItau(empresa, dataDe, dataAte, reenviar);
|
||||
}else if(BancoLayout.BB_240_Envio.equals(banco)){
|
||||
return remessaCNABBancosDAO.remessaBancoBrasil(empresa, dataDe, dataAte, reenviar);
|
||||
}else if(BancoLayout.SICOOB_240_Envio.equals(banco)){
|
||||
return remessaCNABBancosDAO.remessaSicoob(empresa, dataDe, dataAte, reenviar);
|
||||
}
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
|
|
Loading…
Reference in New Issue