public void Valida_Boleto_Banco_Banestes() { var boleto = new Boleto(new DateTime(2014, 1, 18), 2952.95m, "00", "21487805", "123", "1.222.333"); boleto.Banco = new Banco(21); boleto.NumeroDocumento = "18.030299.01"; boleto.Valida(); Assert.AreEqual(boleto.NossoNumero, "21487805.81"); Assert.AreEqual(boleto.Banco.ChaveASBACE, "2148780500001222333202107"); Assert.AreEqual(boleto.CodigoBarra.Codigo, "02191594700002952952148780500001222333202107"); Assert.AreEqual(boleto.CodigoBarra.LinhaDigitavel, "02192.14871 80500.001229 23332.021072 1 59470000295295"); }
public void Valida_Boleto_Banco_Banestes() { var boleto = new BoletoNet.Boleto(new DateTime(2014, 1, 18), 2952.95m, "00", "21487805", "123", "1.222.333"); boleto.Banco = new Banco(21); boleto.NumeroDocumento = "18.030299.01"; boleto.Valida(); Assert.AreEqual(boleto.NossoNumero, "21487805.81"); Assert.AreEqual(boleto.Banco.ChaveASBACE, "2148780500001222333202107"); Assert.AreEqual(boleto.CodigoBarra.Codigo, "02191594700002952952148780500001222333202107"); Assert.AreEqual(boleto.CodigoBarra.LinhaDigitavel, "02192.14871 80500.001229 23332.021072 1 59470000295295"); }
public override string GerarDetalheSegmentoPRemessa(Boleto boleto, int numeroRegistro, string numeroConvenio) { try { string _segmentoP; //Código do Banco na compensação ==> 001-003 _segmentoP = Utils.FormatCode(Codigo.ToString(), "0", 3, true); //Numero do lote remessa ==> 004 - 007 _segmentoP += Utils.FitStringLength(boleto.Remessa.NumeroLote.ToString(), 4, 4, '0', 0, true, true, true); //Tipo de registro => 008 - 008 _segmentoP += "3"; //Nº seqüencial do registro de lote ==> 009 - 013 _segmentoP += Utils.FitStringLength(numeroRegistro.ToString(), 5, 5, '0', 0, true, true, true); //Cód. Segmento do registro detalhe ==> 014 - 014 _segmentoP += "P"; //Reservado (uso Banco) ==> 015 - 015 _segmentoP += " "; //Código de movimento remessa ==> 016 - 017 _segmentoP += boleto.Remessa.CodigoOcorrencia; //Agência do Cedente ==> 018 –021 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.Agencia, 4, 4, '0', 0, true, true, true); //Dígito da Agência do Cedente ==> 022 –022 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.DigitoAgencia, 1, 1, '0', 0, true, true, true); //Número da conta corrente ==> 023 - 031 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.Conta, 9, 9, '0', 0, true, true, true); //Dígito verificador da conta ==> 032 – 032 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.DigitoConta, 1, 1, '0', 0, true, true, true); //Conta cobrança ==> 033 - 041 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.Conta, 9, 9, '0', 0, true, true, true); //Dígito da conta cobrança ==> 042 - 042 _segmentoP += Utils.FitStringLength(boleto.Cedente.ContaBancaria.DigitoConta, 1, 1, '0', 0, true, true, true); //Reservado (uso Banco) ==> 043 - 044 _segmentoP += " "; boleto.Valida(); //Identificação do título no Banco ==> 045 –057 _segmentoP += Utils.FitStringLength(boleto.NossoNumero.Replace("-", ""), 13, 13, '0', 0, true, true, true); //Tipo de cobrança ==> 058 - 058 _segmentoP += "5"; //Forma de Cadastramento ==> 059 - 059 _segmentoP += "1"; //Tipo de documento ==> 060 - 060 _segmentoP += "1"; //Reservado (uso Banco) ==> 061 –061 _segmentoP += " "; //Reservado (uso Banco) ==> 062 - 062 _segmentoP += " "; //Nº do documento ==> 063 - 077 _segmentoP += Utils.FitStringLength(boleto.NumeroDocumento, 15, 15, ' ', 0, true, true, false); //Data de vencimento do título ==> 078 - 085 _segmentoP += boleto.DataVencimento.ToString("ddMMyyyy"); //Valor nominal do título ==> 086 - 100 _segmentoP += Utils.FitStringLength(boleto.ValorBoleto.ToString("0.00").Replace(",", ""), 15, 15, '0', 0, true, true, true); //Agência encarregada da cobrança ==> 101 - 104 _segmentoP += "0000"; //Dígito da Agência do Cedente ==> 105 – 105 _segmentoP += "0"; //Reservado (uso Banco) ==> 106 - 106 _segmentoP += " "; //Espécie do título ==> 107 – 108 _segmentoP += Utils.FitStringLength(boleto.EspecieDocumento.Codigo, 2, 2, '0', 0, true, true, true); //Identif. de título Aceito/Não Aceito ==> 109 - 109 _segmentoP += "N"; //Data da emissão do título ==> 110 - 117 _segmentoP += boleto.DataDocumento.ToString("ddMMyyyy"); if (boleto.JurosMora > 0) { //Código do juros de mora ==> 118 - 118 _segmentoP += "1"; //Data do juros de mora ==> 119 - 126 _segmentoP += Utils.FitStringLength(boleto.DataVencimento.ToString("ddMMyyyy"), 8, 8, '0', 0, true, true, false); //Valor da mora/dia ou Taxa mensal ==> 127 - 141 _segmentoP += Utils.FitStringLength(boleto.JurosMora.ToString("0.00").Replace(",", ""), 15, 15, '0', 0, true, true, true); } else { //Código do juros de mora ==> 118 - 118 _segmentoP += "3"; //Data do juros de mora ==> 119 - 126 _segmentoP += "00000000"; //Valor da mora/dia ou Taxa mensal ==> 127 - 141 _segmentoP += "000000000000000"; } if (boleto.ValorDesconto > 0) { //Código do desconto 1 ==> 142 - 142 _segmentoP += "1"; //Data de desconto 1 ==> 143 - 150 _segmentoP += Utils.FitStringLength(boleto.DataVencimento.ToString("ddMMyyyy"), 8, 8, '0', 0, true, true, false); //Valor ou Percentual do desconto concedido ==> 151 - 165 _segmentoP += Utils.FitStringLength(boleto.ValorDesconto.ToString("0.00").Replace(",", ""), 15, 15, '0', 0, true, true, true); } else _segmentoP += "0".PadLeft(24, '0'); //Valor do IOF a ser recolhido ==> 166 - 180 _segmentoP += "0".PadLeft(15, '0'); //Valor do abatimento ==> 181 - 195 _segmentoP += "0".PadLeft(15, '0'); //Identificação do título na empresa ==> 196 - 220 _segmentoP += Utils.FitStringLength(boleto.NumeroDocumento, 25, 25, ' ', 0, true, true, false); string codigo_protesto = "0"; string dias_protesto = "00"; foreach (var instrucao in boleto.Instrucoes) { switch ((EnumInstrucoes_Santander)instrucao.Codigo) { case EnumInstrucoes_Santander.Protestar: codigo_protesto = "1"; dias_protesto = Utils.FitStringLength(instrucao.QuantidadeDias.ToString(), 2, 2, '0', 0, true, true, true); //Para código '1' – é possível, de 6 a 29 dias break; default: break; } } //Código para protesto ==> 221 - 221 _segmentoP += codigo_protesto; //Número de dias para protesto ==> 222 - 223 _segmentoP += dias_protesto; //Código para Baixa/Devolução ==> 222 - 223 _segmentoP += "3"; //Reservado (uso Banco) ==> 225 – 225 _segmentoP += "0"; //Número de dias para Baixa/Devolução ==> 226 - 227 _segmentoP += "00"; //Código da moeda ==> 228 - 229 _segmentoP += "00"; //Reservado (uso Banco) ==> 230 –240 _segmentoP += " ".PadLeft(11, ' '); _segmentoP = Utils.SubstituiCaracteresEspeciais(_segmentoP); return _segmentoP; } catch (Exception ex) { throw new Exception("Erro durante a geração do SEGMENTO P DO DETALHE do arquivo de REMESSA.", ex); } }
public void Valida_QuandoCriarBoleto_DeveRetornarNossoNumeroEsperado() { _boleto.Valida(); Assert.AreEqual(_boleto.NossoNumero, "21487805.81"); }