|
|
@ -5,6 +5,7 @@ import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.InputStreamReader;
|
|
|
|
import java.io.InputStreamReader;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
import java.math.BigInteger;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
@ -20,9 +21,12 @@ import com.rjconsultores.ventaboletos.blocos.safra.DetalheRetornoSafra;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.RemessaCNABBancosDAO;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.RemessaCNABBancosDAO;
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto;
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto;
|
|
|
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.FechamentoParamgeral;
|
|
|
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
|
|
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
|
|
|
|
|
|
|
import com.rjconsultores.ventaboletos.service.FechamentoParamgeralService;
|
|
|
|
import com.rjconsultores.ventaboletos.service.ImportacaoRetornoBancarioService;
|
|
|
|
import com.rjconsultores.ventaboletos.service.ImportacaoRetornoBancarioService;
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|
|
|
|
|
|
|
import com.rjconsultores.ventaboletos.utils.NossoNumeroUtils;
|
|
|
|
|
|
|
|
|
|
|
|
@Service("importacaoRetornoBancarioService")
|
|
|
|
@Service("importacaoRetornoBancarioService")
|
|
|
|
public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBancarioService {
|
|
|
|
public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBancarioService {
|
|
|
@ -33,10 +37,14 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private RemessaCNABBancosDAO remessaCNABBancosDAO;
|
|
|
|
private RemessaCNABBancosDAO remessaCNABBancosDAO;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private FechamentoParamgeralService fechamentoParamgeralService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final Logger log = LogManager.getLogger(ImportacaoRetornoBancarioServiceImpl.class);
|
|
|
|
private static final Logger log = LogManager.getLogger(ImportacaoRetornoBancarioServiceImpl.class);
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public String lerArquivo(ByteArrayInputStream bais, Empresa empresa){
|
|
|
|
public String lerArquivo(ByteArrayInputStream bais, Empresa empresa) {
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder resultado = new StringBuilder();
|
|
|
|
StringBuilder resultado = new StringBuilder();
|
|
|
|
StringBuilder detalhado = new StringBuilder();
|
|
|
|
StringBuilder detalhado = new StringBuilder();
|
|
|
@ -48,12 +56,12 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
BancoLayout banco = BancoLayout.getInstanceByCodBanco(remessaCNABBancosDAO.findBanco(empresa));
|
|
|
|
BancoLayout banco = BancoLayout.getInstanceByCodBanco(remessaCNABBancosDAO.findBanco(empresa));
|
|
|
|
ArquivoRetornoItem retornoBancario = processaRetornoBancario(bais, banco);
|
|
|
|
ArquivoRetornoItem retornoBancario = processaRetornoBancario(bais, banco);
|
|
|
|
|
|
|
|
|
|
|
|
if( retornoBancario == null ) {
|
|
|
|
if (retornoBancario == null) {
|
|
|
|
resultado.append("O banco cadastrado para a empresa não tem Implementação de retorno bancário");
|
|
|
|
resultado.append("O banco cadastrado para a empresa não tem Implementação de retorno bancário");
|
|
|
|
return resultado.toString();
|
|
|
|
return resultado.toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!banco.getCodBanco().equals(retornoBancario.getCabecalhoRetorno().getCodigoBanco())) {
|
|
|
|
if (!banco.getCodBanco().equals(retornoBancario.getCabecalhoRetorno().getCodigoBanco())) {
|
|
|
|
resultado.append("O banco cadastrado para a empresa não é o mesmo do arquivo selecionado");
|
|
|
|
resultado.append("O banco cadastrado para a empresa não é o mesmo do arquivo selecionado");
|
|
|
|
return resultado.toString();
|
|
|
|
return resultado.toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -62,20 +70,22 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
Integer usuarioId = UsuarioLogado.getUsuarioLogado().getUsuarioId();
|
|
|
|
Integer usuarioId = UsuarioLogado.getUsuarioLogado().getUsuarioId();
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
if( !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_NORMAL)
|
|
|
|
if (!detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_NORMAL)
|
|
|
|
&& !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_EM_CARTORIO) ) {
|
|
|
|
&& !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_EM_CARTORIO)) {
|
|
|
|
erros++;
|
|
|
|
erros++;
|
|
|
|
detalhado.append("Registro sem ocorrencia de quitação: ").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
detalhado.append("Registro sem ocorrencia de quitação: ").append(detalhe.getNossoNumero())
|
|
|
|
}else
|
|
|
|
.append(".\n");
|
|
|
|
if( salvarRetornoBancario( detalhe, empresa.getEmpresaId(), usuarioId )) {
|
|
|
|
} else
|
|
|
|
atualizados++;
|
|
|
|
atualizados++;
|
|
|
|
|
|
|
|
if (salvarRetornoBancario(detalhe, empresa.getEmpresaId(), usuarioId)) {
|
|
|
|
detalhado.append("Quitado:").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
detalhado.append("Quitado:").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
erros++;
|
|
|
|
erros++;
|
|
|
|
detalhado.append("Nao Quitado: ").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
detalhado.append("Nao Quitado: ").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (SQLException se) {
|
|
|
|
} catch (SQLException se) {
|
|
|
|
detalhado.append("Ocorreu um erro no banco de dados: ").append(detalhe.getNossoNumero()).append(".\n");
|
|
|
|
detalhado.append("Ocorreu um erro no banco de dados: ").append(detalhe.getNossoNumero())
|
|
|
|
|
|
|
|
.append(".\n");
|
|
|
|
log.error(se);
|
|
|
|
log.error(se);
|
|
|
|
erros++;
|
|
|
|
erros++;
|
|
|
|
} catch (RuntimeException re) {
|
|
|
|
} catch (RuntimeException re) {
|
|
|
@ -86,9 +96,9 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resultado.append("Arquivo Processado ");
|
|
|
|
resultado.append("Arquivo Processado ");
|
|
|
|
if(erros > 0) {
|
|
|
|
if (erros > 0) {
|
|
|
|
resultado.append("com ressalvas.\n");
|
|
|
|
resultado.append("com ressalvas.\n");
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
resultado.append("com sucesso. \n");
|
|
|
|
resultado.append("com sucesso. \n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
resultado.append("Quitados ").append(atualizados).append(".\n");
|
|
|
|
resultado.append("Quitados ").append(atualizados).append(".\n");
|
|
|
@ -101,7 +111,7 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
log.error(ioe);
|
|
|
|
log.error(ioe);
|
|
|
|
return resultado.toString();
|
|
|
|
return resultado.toString();
|
|
|
|
} catch (RuntimeException re) {
|
|
|
|
} catch (RuntimeException re) {
|
|
|
|
resultado.append( re.getMessage() );
|
|
|
|
resultado.append(re.getMessage());
|
|
|
|
log.error(re);
|
|
|
|
log.error(re);
|
|
|
|
return resultado.toString();
|
|
|
|
return resultado.toString();
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
@ -111,18 +121,20 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ArquivoRetornoItem processaRetornoBancario(ByteArrayInputStream bais, BancoLayout banco) throws IOException{
|
|
|
|
private ArquivoRetornoItem processaRetornoBancario(ByteArrayInputStream bais, BancoLayout banco)
|
|
|
|
|
|
|
|
throws IOException {
|
|
|
|
|
|
|
|
|
|
|
|
if(BancoLayout.ITAU_400_Envio.equals(banco)){
|
|
|
|
if (BancoLayout.ITAU_400_Envio.equals(banco)) {
|
|
|
|
return geraRetornoBancarioItau(bais, banco);
|
|
|
|
return geraRetornoBancarioItau(bais, banco);
|
|
|
|
}else if(BancoLayout.SAFRA_400_Envio.equals(banco)){
|
|
|
|
} else if (BancoLayout.SAFRA_400_Envio.equals(banco)) {
|
|
|
|
return geraRetornoBancarioSafra(bais);
|
|
|
|
return geraRetornoBancarioSafra(bais);
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ArquivoRetornoItem geraRetornoBancarioItau(ByteArrayInputStream bais, BancoLayout banco) throws IOException {
|
|
|
|
private ArquivoRetornoItem geraRetornoBancarioItau(ByteArrayInputStream bais, BancoLayout banco)
|
|
|
|
|
|
|
|
throws IOException {
|
|
|
|
String linha = null;
|
|
|
|
String linha = null;
|
|
|
|
ArquivoRetornoItem arquivo = new ArquivoRetornoItem();
|
|
|
|
ArquivoRetornoItem arquivo = new ArquivoRetornoItem();
|
|
|
|
CabecalhoRetorno cabecalho = new CabecalhoRetorno();
|
|
|
|
CabecalhoRetorno cabecalho = new CabecalhoRetorno();
|
|
|
@ -131,22 +143,22 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
|
|
|
|
|
|
|
|
while ((linha = leitor.readLine()) != null) {
|
|
|
|
while ((linha = leitor.readLine()) != null) {
|
|
|
|
|
|
|
|
|
|
|
|
if( linha.startsWith("0")) { //cabecalho
|
|
|
|
if (linha.startsWith("0")) { // cabecalho
|
|
|
|
cabecalho.setCodigoBanco(linha.substring(76, 79));
|
|
|
|
cabecalho.setCodigoBanco(linha.substring(76, 79));
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(linha.startsWith("1")) { //detalhe
|
|
|
|
if (linha.startsWith("1")) { // detalhe
|
|
|
|
DetalheRetornoItau detalhe = new DetalheRetornoItau();
|
|
|
|
DetalheRetornoItau detalhe = new DetalheRetornoItau();
|
|
|
|
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
|
|
|
|
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
|
|
|
|
detalhe.setValorJuros( new BigDecimal(linha.substring(266, 279)).divide(new BigDecimal(100)) );
|
|
|
|
detalhe.setValorJuros(new BigDecimal(linha.substring(266, 279)).divide(new BigDecimal(100)));
|
|
|
|
detalhe.setNossoNumero(linha.substring(85, 93)+"-"+linha.substring(93, 94));
|
|
|
|
detalhe.setNossoNumero(linha.substring(85, 93) + "-" + linha.substring(93, 94));
|
|
|
|
detalhe.setDataBaixa(linha.substring(110, 116));
|
|
|
|
detalhe.setDataBaixa(linha.substring(110, 116));
|
|
|
|
arquivo.addTitulo(detalhe);
|
|
|
|
arquivo.addTitulo(detalhe);
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(linha.startsWith("9")) { //rodape
|
|
|
|
if (linha.startsWith("9")) { // rodape
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -167,23 +179,23 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
|
|
|
|
|
|
|
|
while ((linha = leitor.readLine()) != null) {
|
|
|
|
while ((linha = leitor.readLine()) != null) {
|
|
|
|
|
|
|
|
|
|
|
|
if( linha.startsWith("0")) { //cabecalho
|
|
|
|
if (linha.startsWith("0")) { // cabecalho
|
|
|
|
cabecalho.setCodigoBanco(linha.substring(76, 79));
|
|
|
|
cabecalho.setCodigoBanco(linha.substring(76, 79));
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(linha.startsWith("1")) { //detalhe
|
|
|
|
if (linha.startsWith("1")) { // detalhe
|
|
|
|
DetalheRetornoSafra detalhe = new DetalheRetornoSafra();
|
|
|
|
DetalheRetornoSafra detalhe = new DetalheRetornoSafra();
|
|
|
|
detalhe.setIdBoletoFechamento(Integer.valueOf(linha.substring(116, 126)));
|
|
|
|
detalhe.setIdBoletoFechamento(Integer.valueOf(linha.substring(116, 126)));
|
|
|
|
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
|
|
|
|
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
|
|
|
|
detalhe.setValorJuros( new BigDecimal(linha.substring(267, 279)).divide(new BigDecimal(100)) );
|
|
|
|
detalhe.setValorJuros(new BigDecimal(linha.substring(267, 279)).divide(new BigDecimal(100)));
|
|
|
|
detalhe.setNossoNumero(linha.substring(61, 70)+"-"+linha.substring(70, 71));
|
|
|
|
detalhe.setNossoNumero(linha.substring(61, 70) + "-" + linha.substring(70, 71));
|
|
|
|
detalhe.setDataBaixa(linha.substring(295, 301));
|
|
|
|
detalhe.setDataBaixa(linha.substring(295, 301));
|
|
|
|
arquivo.addTitulo(detalhe);
|
|
|
|
arquivo.addTitulo(detalhe);
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(linha.startsWith("9")) { //rodape
|
|
|
|
if (linha.startsWith("9")) { // rodape
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -196,44 +208,82 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId) throws SQLException {
|
|
|
|
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId)
|
|
|
|
|
|
|
|
throws SQLException {
|
|
|
|
|
|
|
|
|
|
|
|
if(detalhe instanceof DetalheRetornoSafra ) {
|
|
|
|
if (detalhe instanceof DetalheRetornoSafra) {
|
|
|
|
return salvarRetornoBancario(detalhe, usuarioId);
|
|
|
|
return salvarRetornoBancario(detalhe, usuarioId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero( detalhe.getNossoNumero(), empresaId );
|
|
|
|
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero(detalhe.getNossoNumero(),
|
|
|
|
|
|
|
|
empresaId);
|
|
|
|
|
|
|
|
|
|
|
|
if(boleto == null) {
|
|
|
|
if (boleto == null) {
|
|
|
|
throw new RuntimeException("Fechamento não encontrado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
|
|
|
|
if (detalhe instanceof DetalheRetornoItau) {
|
|
|
|
|
|
|
|
return validaDacItau(detalhe, empresaId, usuarioId);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
throw new RuntimeException(
|
|
|
|
|
|
|
|
"Fechamento não encontrado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if( boleto.getIndBoletoQuitado() !=null && boleto.getIndBoletoQuitado()) {
|
|
|
|
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
|
|
|
|
throw new RuntimeException("Boleto já quitado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
|
|
|
|
throw new RuntimeException(
|
|
|
|
|
|
|
|
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return remessaCNABBancosDAO.quitarFechamentoBoleto( boleto.getFechamentoboletoId(), usuarioId, detalhe );
|
|
|
|
return remessaCNABBancosDAO.quitarFechamentoBoleto(boleto.getFechamentoboletoId(), usuarioId, detalhe);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer usuarioId) throws SQLException {
|
|
|
|
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer usuarioId) throws SQLException {
|
|
|
|
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorId( detalhe.getIdBoletoFechamento() );
|
|
|
|
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorId(detalhe.getIdBoletoFechamento());
|
|
|
|
|
|
|
|
|
|
|
|
if(boleto == null) {
|
|
|
|
if (boleto == null) {
|
|
|
|
throw new RuntimeException("Fechamento não encontrado com o ID: "+detalhe.getIdBoletoFechamento());
|
|
|
|
throw new RuntimeException("Fechamento não encontrado com o ID: " + detalhe.getIdBoletoFechamento());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(boleto.getNossonumero() !=null && !boleto.getNossonumero().equals(detalhe.getNossoNumero())) {
|
|
|
|
if (boleto.getNossonumero() != null && !boleto.getNossonumero().equals(detalhe.getNossoNumero())) {
|
|
|
|
throw new RuntimeException("Fechamento encontrado o nosso numero inconsistente: "+detalhe.getNossoNumero());
|
|
|
|
throw new RuntimeException(
|
|
|
|
|
|
|
|
"Fechamento encontrado o nosso numero inconsistente: " + detalhe.getNossoNumero());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if( boleto.getIndBoletoQuitado() !=null && boleto.getIndBoletoQuitado()) {
|
|
|
|
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
|
|
|
|
throw new RuntimeException("Boleto já quitado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
|
|
|
|
throw new RuntimeException(
|
|
|
|
|
|
|
|
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return remessaCNABBancosDAO.quitarFechamentoBoleto( detalhe, usuarioId );
|
|
|
|
return remessaCNABBancosDAO.quitarFechamentoBoleto(detalhe, usuarioId);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean validaDacItau(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId) throws SQLException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FechamentoParamgeral dadosContaItau = fechamentoParamgeralService.buscaParametrosPorEmpresasBanco(empresaId, "341");
|
|
|
|
|
|
|
|
BigInteger nossoNumero = new BigInteger(detalhe.getNossoNumero().substring(0, 7));
|
|
|
|
|
|
|
|
if (dadosContaItau != null) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String dacItau = NossoNumeroUtils.dacItau(
|
|
|
|
|
|
|
|
Integer.valueOf(dadosContaItau.getBoletoBancoAgencia()),
|
|
|
|
|
|
|
|
Integer.valueOf(dadosContaItau.getBoletoBancoConta()),
|
|
|
|
|
|
|
|
Integer.valueOf(dadosContaItau.getBoletoBancoCarteira()),
|
|
|
|
|
|
|
|
nossoNumero);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
detalhe.setNossoNumero(detalhe.getNossoNumero().substring(0, 7) + "-" + dacItau);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero(detalhe.getNossoNumero(),
|
|
|
|
|
|
|
|
empresaId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (boleto == null) {
|
|
|
|
|
|
|
|
throw new RuntimeException("Fechamento não encontrado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
|
|
|
|
|
|
|
|
throw new RuntimeException(
|
|
|
|
|
|
|
|
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return remessaCNABBancosDAO.quitarFechamentoBoleto(boleto.getFechamentoboletoId(), usuarioId, detalhe);
|
|
|
|
|
|
|
|
}else
|
|
|
|
|
|
|
|
throw new RuntimeException("Dados da conta não encontrados : " + detalhe.getIdBoletoFechamento());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|