public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { string cl = ATitulo.Cedente.CodigoCedente.FormatStringEsquerda(6, '0') + ATitulo.Nosso_numero.FormatStringEsquerda(17, '0') + ATitulo.Carteira.FormatStringEsquerda(2, '0'); return(cl.Trim()); }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { return(ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') + ATitulo.Carteira.Trim().PadLeft(2, '0') + ATitulo.Nosso_numero.Trim().PadLeft(11, '0') + ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().PadLeft(7, '0') + "0"); }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { return(ATitulo.Nosso_numero.Trim() + ATitulo.Digito_NossoNumero + ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') + //codigo da agencia ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().PadLeft(7, '0') + //numero da conta ATitulo.Modalidade.FormatStringEsquerda(2, '0') + '1'); //Codigo do aplicativo de cobranca }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { return("7" + ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim() + ATitulo.Cedente.ContaBancaria.NumeroConta.Trim().FormatStringEsquerda(9, '0') + ATitulo.Nosso_numero.Trim() + ATitulo.Digito_NossoNumero + "2"); }
public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco} { string ret = Utils.Estruturas.Mod11(ATitulo.Cedente.ContaBancaria.CodigoAgencia.Trim().PadLeft(4, '0') + ATitulo.Cedente.Postocedente.Trim().PadLeft(2, '0') + ATitulo.Cedente.CodigoCedente.Trim().PadLeft(5, '0') + ATitulo.Nosso_numero.Trim().Remove(ATitulo.Nosso_numero.Trim().LastIndexOf("/"), 1), 9, false, 0).ToString().Trim(); return(ret); }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { string nosso_numero = ATitulo.Nosso_numero.Trim() + CalcularDigitoNossoNumero(ATitulo); string cl = (ATitulo.Tp_cobranca.Trim().ToUpper().Equals("CR") ? "1" : "3") + //Tipo de cobranca ATitulo.Carteira.Trim() + //Tipo carteira 1 - cobranca simples nosso_numero.Trim().Remove(nosso_numero.Trim().LastIndexOf("/"), 1) + //Nosso numero ATitulo.Cedente.ContaBancaria.CodigoAgencia.FormatStringEsquerda(4, '0') + //Agencia ATitulo.Cedente.Postocedente.Trim() + //Posto ATitulo.Cedente.CodigoCedente.Trim() + //Codigo cedente "1" + //Valor expresso no campo valor documento "0"; //Filler return(cl.Trim() + Utils.Estruturas.Mod11(cl.Trim(), 9, false, 0).ToString().Trim()); }
public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco} { int digito_nossonumero = Estruturas.Mod11(ATitulo.Carteira.Trim() + ATitulo.Nosso_numero.Trim(), 7, true, 0); if (digito_nossonumero.Equals(1)) { return("P"); } else if (digito_nossonumero.Equals(0)) { return("0"); } else { return((11 - digito_nossonumero).ToString()); } }
private void reprocessarBloqueto(blTitulo r) { //Gerar atualização do bloqueto //Calcular Multa if (r.Pc_multa > decimal.Zero) { if (r.Dt_vencimento.Value.AddDays(Convert.ToDouble(r.Nr_diasmulta)).Date < CamadaDados.UtilData.Data_Servidor().Date) { r.Vl_multacalc = Math.Round(r.Tp_multa.Trim().ToUpper().Equals("P") ? ((r.Vl_documento * r.Pc_multa) / 100) : r.Pc_multa, 2); } } //Calcular Juro if ((r.Pc_jurodia > decimal.Zero) && (r.Dt_vencimento.Value.Date < CamadaDados.UtilData.Data_Servidor().Date)) { r.Vl_jurocalc += Math.Round((r.Tp_jurodia.Trim().ToUpper().Equals("P") ? ((r.Vl_documento * r.Pc_jurodia) / 100) : r.Pc_jurodia), 2) * CamadaDados.UtilData.Data_Servidor().Subtract(r.Dt_vencimento.Value).Days; } TCN_Titulo.AtualizarBoleto(r, CamadaDados.UtilData.Data_Servidor(), null); }
private bool LerRetornoCNAB400(blCobranca ACobranca, string[] Retorno) { string ACodigoBanco; string ACodigoCedente; int NumeroRegistro = 0; blTitulo ATitulo = null; try { //{ Lê registro HEADER} ACodigoBanco = Retorno[NumeroRegistro].Substring(76, 3); if (ACodigoBanco != CodigoBanco) { throw new Exception("Este não é um retorno de cobrança do banco " + CodigoBanco + " " + NomeBanco); } //Buscar codigo cedente ACodigoCedente = Convert.ToInt32(Retorno[NumeroRegistro].Substring(26, 20)).ToString(); if (Retorno[NumeroRegistro].Substring(94, 6).PadLeft(6, '0') != "000000") { ACobranca.DataArquivo = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(98, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(96, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(94, 2))); } else { ACobranca.DataArquivo = DateTime.Now; } //{Lê os registros DETALHE} //{Processa até o penúltimo registro porque o último contém apenas o TRAILLER} for (NumeroRegistro = 1; NumeroRegistro <= (Retorno.Length - 2); NumeroRegistro++) { //{Confirmar se o tipo do registro é 1} if (Retorno[NumeroRegistro].Substring(0, 1) != "1") { continue; //{Não processa o registro atual} } //Dados Titulo ATitulo = new blTitulo(); ATitulo.Cedente.ContaBancaria.Banco.Codigo = ACodigoBanco; ATitulo.Cedente.CodigoCedente = ACodigoCedente; //Nosso numero ATitulo.Nosso_numero = Retorno[NumeroRegistro].Substring(70, 11); //Ocorrencia ATitulo.Cd_ocorrencia = Retorno[NumeroRegistro].Substring(108, 2); //Descricao ocorrencia ATitulo.Ds_ocorrencia = TratarOcorrencia(ATitulo.Cd_ocorrencia); //Data ocorrencia if (Retorno[NumeroRegistro].Substring(110, 6).PadLeft(6, '0') != "000000") { ATitulo.Dt_ocorrencia = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(114, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(112, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(110, 2))); } else { ATitulo.Dt_ocorrencia = DateTime.Now; } //Data vencimento if (Retorno[NumeroRegistro].Substring(146, 6).PadLeft(6, '0') != "000000") { ATitulo.Dt_vencimento = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(150, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(148, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(146, 2))); } else { ATitulo.Dt_vencimento = null; } //Valor titulo if (Retorno[NumeroRegistro].Substring(152, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.Vl_documento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(152, 13)) / 100; } else { ATitulo.Vl_documento = decimal.Zero; } //Valor despesas if (Retorno[NumeroRegistro].Substring(175, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.Vl_despesa_cobranca = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(175, 13)) / 100; } else { ATitulo.Vl_despesa_cobranca = decimal.Zero; } //Abatimento if (Retorno[NumeroRegistro].Substring(227, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.Vl_abatimento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(227, 13)) / 100; } else { ATitulo.Vl_abatimento = decimal.Zero; } //Desconto if (Retorno[NumeroRegistro].Substring(240, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.Vl_desconto = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(240, 13)) / 100; } else { ATitulo.Vl_desconto = decimal.Zero; } //Juro if (Retorno[NumeroRegistro].Substring(266, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.Vl_morajuros = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(266, 13)) / 100; } else { ATitulo.Vl_morajuros = decimal.Zero; } //Outros creditos if (Retorno[NumeroRegistro].Substring(279, 13).PadLeft(13, '0') != "0000000000000") { ATitulo.vl_outros_creditos = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(279, 13)) / 100; } else { ATitulo.vl_outros_creditos = decimal.Zero; } //Motivo ocorrencia string codigo = Retorno[NumeroRegistro].Substring(318, 10); if (!string.IsNullOrEmpty(codigo)) { if (codigo.Substring(0, 2) != "00") { ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(0, 2)) + "|"; } if (codigo.Substring(2, 2) != "00") { ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(2, 2)) + "|"; } if (codigo.Substring(4, 2) != "00") { ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(4, 2)) + "|"; } if (codigo.Substring(6, 2) != "00") { ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(6, 2)) + "|"; } if (codigo.Substring(8, 2) != "00") { ATitulo.Ds_motivoocorrencia += TratarMotivo(ATitulo.Cd_ocorrencia, codigo.Substring(8, 2)) + "|"; } } if (!string.IsNullOrEmpty(ATitulo.Ds_motivoocorrencia)) { if (ATitulo.Ds_motivoocorrencia.Substring(ATitulo.Ds_motivoocorrencia.Trim().Length - 1, 1).Equals("|")) { ATitulo.Ds_motivoocorrencia = ATitulo.Ds_motivoocorrencia.Remove(ATitulo.Ds_motivoocorrencia.Trim().Length - 1, 1); } } //Data credito if (Retorno[NumeroRegistro].Substring(295, 6).Trim().PadLeft(6, '0') != "000000") { ATitulo.Dt_credito = new DateTime(2000 + Convert.ToInt32(Retorno[NumeroRegistro].Substring(299, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(297, 2)), Convert.ToInt32(Retorno[NumeroRegistro].Substring(295, 2))); ATitulo.Dt_creditotaxa = ATitulo.Dt_credito; } else { ATitulo.Dt_credito = DateTime.Now; ATitulo.Dt_creditotaxa = ATitulo.Dt_credito; } //Inserir titulo na lista ACobranca.Titulos.Add(ATitulo); } return(true); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void FormatarBoleto(blTitulo ATitulo, string AAgenciaCodigoCedente, string ANossoNumero, string ACarteira, string AEspecieDocumento) //{Define o formato como alguns valores serão apresentados no boleto } { }
public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco} { return(""); }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { return(""); }
private bool LerRetornoCNAB240(blCobranca ACobranca, string[] Retorno) { string ACodigoBanco; string ACodigoCedente; int NumeroRegistro = 0; blTitulo ATitulo = null; try { #region HEADER //Codigo do banco ACodigoBanco = Retorno[NumeroRegistro].Substring(0, 3); if (ACodigoBanco != CodigoBanco) { throw new Exception("Este não é um retorno de cobrança do banco " + CodigoBanco + " " + NomeBanco); } //Codigo cedente ACodigoCedente = Retorno[NumeroRegistro].Substring(32, 20); //Data do arquivo if (Retorno[NumeroRegistro].Substring(143, 8) != "00000000") { ACobranca.DataArquivo = DateTime.Parse(Retorno[NumeroRegistro].Substring(143, 2) + "/" + Retorno[NumeroRegistro].Substring(145, 2) + "/" + Retorno[NumeroRegistro].Substring(147, 4)); } else { ACobranca.DataArquivo = DateTime.Now; } //Numero arquivo ACobranca.SequencialArq = decimal.Parse(Retorno[NumeroRegistro].Substring(157, 6)); #endregion for (NumeroRegistro = 1; NumeroRegistro <= (Retorno.Length - 2); NumeroRegistro++) { //Tipo registro é 3 if (Retorno[NumeroRegistro].Substring(7, 1) == "3") { ATitulo = new blTitulo(); ATitulo.Cedente.ContaBancaria.Banco.Codigo = ACodigoBanco; //Codigo do cedente ATitulo.Cedente.CodigoCedente = ACodigoCedente; //Ocorrencia ATitulo.Cd_ocorrencia = Retorno[NumeroRegistro].Substring(15, 2); //Descricao ocorrencia ATitulo.Ds_ocorrencia = TratarOcorrencia(ATitulo.Cd_ocorrencia); //Nosso numero ATitulo.Nosso_numero = Retorno[NumeroRegistro].Substring(37, 20); //Data de vencimento if (Retorno[NumeroRegistro].Substring(73, 8) != "00000000") { ATitulo.Dt_vencimento = DateTime.Parse(Retorno[NumeroRegistro].Substring(73, 2) + "/" + Retorno[NumeroRegistro].Substring(75, 2) + "/" + Retorno[NumeroRegistro].Substring(77, 4)); } else { ATitulo.Dt_vencimento = DateTime.Now; } //Valor do titulo if (Retorno[NumeroRegistro].Substring(81, 13) != "0000000000000") { ATitulo.Vl_documento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(81, 13)) / 100; } else { ATitulo.Vl_documento = decimal.Zero; } //Valor das despesas if (Retorno[NumeroRegistro].Substring(198, 13) != "0000000000000") { ATitulo.Vl_despesa_cobranca = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(198, 13)) / 100; } else { ATitulo.Vl_despesa_cobranca = decimal.Zero; } //Motivo ocorrencia ATitulo.Ds_motivoocorrencia = TratarMotivoOcorrencia(Retorno[NumeroRegistro].Substring(213, 10)); if (Retorno[NumeroRegistro + 1].Substring(7, 1).Equals("3") && Retorno[NumeroRegistro + 1].Substring(13, 1).Equals("U")) { NumeroRegistro++; //Juros if (Retorno[NumeroRegistro].Substring(17, 13) != "0000000000000") { ATitulo.Vl_morajuros = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(17, 13)) / 100; } else { ATitulo.Vl_morajuros = decimal.Zero; } //Desconto if (Retorno[NumeroRegistro].Substring(32, 13) != "0000000000000") { ATitulo.Vl_desconto = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(32, 13)) / 100; } else { ATitulo.Vl_desconto = decimal.Zero; } //Abatimento if (Retorno[NumeroRegistro].Substring(47, 13) != "0000000000000") { ATitulo.Vl_abatimento = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(47, 13)) / 100; } else { ATitulo.Vl_abatimento = decimal.Zero; } //Outras despesas if (Retorno[NumeroRegistro].Substring(107, 13) != "0000000000000") { ATitulo.Vl_outras_despesas = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(107, 13)) / 100; } else { ATitulo.Vl_outras_despesas = decimal.Zero; } //Outros creditos if (Retorno[NumeroRegistro].Substring(122, 13) != "0000000000000") { ATitulo.vl_outros_creditos = Convert.ToDecimal(Retorno[NumeroRegistro].Substring(122, 13)) / 100; } else { ATitulo.vl_outros_creditos = decimal.Zero; } //Data ocorrencia if (Retorno[NumeroRegistro].Substring(137, 8) != "00000000") { ATitulo.Dt_ocorrencia = DateTime.Parse(Retorno[NumeroRegistro].Substring(137, 2) + "/" + Retorno[NumeroRegistro].Substring(139, 2) + "/" + Retorno[NumeroRegistro].Substring(141, 4)); } else { ATitulo.Dt_ocorrencia = DateTime.Now; } //Data credito if (Retorno[NumeroRegistro].Substring(145, 8) != "00000000") { ATitulo.Dt_credito = DateTime.Parse(Retorno[NumeroRegistro].Substring(145, 2) + "/" + Retorno[NumeroRegistro].Substring(147, 2) + "/" + Retorno[NumeroRegistro].Substring(149, 4)); } else { ATitulo.Dt_credito = DateTime.Now; } } ACobranca.Titulos.Add(ATitulo); } } return(true); } catch (Exception ex) { throw new Exception(ex.Message); } }
public string CalcularDigitoNossoNumero(blTitulo ATitulo) //{Calcula o dígito do NossoNumero, conforme critérios definidos por cada banco} { return(Estruturas.Mod11(ATitulo.Nosso_numero.Trim(), 9, false, 0).ToString().Trim()); }
public string GetCampoLivreCodigoBarra(blTitulo ATitulo) //{Retorna o conteúdo da parte variável do código de barras} { return("9" + ATitulo.Cedente.CodigoCedente.Trim() + "00000" + ATitulo.Nosso_numero + ATitulo.Digito_NossoNumero + "0" + ATitulo.Modalidade); }