示例#1
0
        private void Initialize(StreamReader file)
        {
            try
            {
                string códigoDoBanco = "";

                var registro = file.ReadLine();

                switch (registro.Length)
                {
                case 240:
                    TipoArquivo   = TipoArquivo.CNAB240;
                    códigoDoBanco = registro.Substring(0, 3);
                    break;

                case 400:
                    TipoArquivo   = TipoArquivo.CNAB400;
                    códigoDoBanco = registro.Substring(76, 3);
                    break;

                case 500:
                    TipoArquivo   = TipoArquivo.POS500;
                    códigoDoBanco = "237";
                    break;

                default:
                    throw new Exception("Layout nao implementado.");
                }

                switch (códigoDoBanco)
                {
                case "033":
                    Banco = new BancoSantander();
                    break;

                case "237":
                    Banco = new BancoBradesco();
                    break;

                case "001":
                case "041":
                case "104":
                case "341":
                case "756":
                default:
                    throw new Exception("Banco não suportado.");
                }
            }
            catch (Exception e)
            {
                throw new Exception("Erro ao identificar o banco.", e);
            }
        }
示例#2
0
        public void CalcularLinhaDigitavelCarteira102Santander()
        {
            var bancoParaNossoNumero = new BancoSantander();
            var nossoNumero          = "705638";

            var digito1 = bancoParaNossoNumero.Mod11SantanderObsolet(nossoNumero);
            var digito2 = bancoParaNossoNumero.Mod11Santander(nossoNumero);



            /*
             * Teste baseado em um boleto apresentado na documentação oficial do Banco Santander
             */
            var remessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2");
            var banco   = Fabricas.BancoFactory.ObterBanco("033", "7");
            var contaBancariaCedente = new ContaBancaria("4165", "", "", "");
            var cedente = new Cedente("6545424", "1", 0, "99.999.999/9999-99", "Razao Social X", contaBancariaCedente,
                                      null);

            var sacado = new Sacado("Sacado Fulano de Tal", "99.999.999/9999-99", new Endereco()
            {
                TipoLogradouro = "R",
                Logradouro     = "1",
                Bairro         = "Bairro X",
                Cidade         = "Cidade X",
                SiglaUf        = "XX",
                Cep            = "12345-000",
                Complemento    = "Comp X",
                Numero         = "9"
            });

            var carteira = new CarteiraCobranca {
                Codigo = "102"
            };

            var boleto = new Boleto(carteira, cedente, sacado, remessa)
            {
                NumeroDocumento            = "0000006152007",
                ValorBoleto                = Convert.ToDecimal(252.00),
                IdentificadorInternoBoleto = "000000615200",
                DataVencimento             = new DateTime(2014, 07, 07)
            };

            banco.FormataNossoNumero(boleto);
            banco.FormataCodigoBarra(boleto);
            banco.FormataLinhaDigitavel(boleto);

            const string valorEsperado = "03399.65451 42400.000065 15200.701025 1 61170000025200";

            Assert.AreEqual(valorEsperado.Length, boleto.LinhaDigitavelBoleto.Length);
            Assert.AreEqual(valorEsperado, boleto.LinhaDigitavelBoleto);
        }
示例#3
0
        private void Initialize(Pagamento pagamento)
        {
            try
            {
                string bankCode;
                bankCode = pagamento.Pagador.ContaFinanceira.Banco;

                switch (bankCode)
                {
                case "033":
                    TipoArquivo = TipoArquivo.CNAB240;
                    Banco       = new BancoSantander();
                    break;

                case "237":
                    TipoArquivo = TipoArquivo.POS500;
                    Banco       = new BancoBradesco();
                    break;

                case "001":
                case "041":
                case "104":
                case "341":
                case "756":
                default:
                    throw new Exception("Banco não suportado.");
                }
            }
            catch (Exception e)
            {
                throw new Exception("Erro ao identificar o banco.", e);
            }

            try
            {
                NumeroArquivoRemessa = pagamento.NúmeroRemessa;
            }
            catch (Exception e)
            {
                throw new Exception("Erro ao identificar o número do arquivo de remessa.", e);
            }
        }
示例#4
0
        public RetornoGenerico ProcessarArquivo(List <string> fileLines)
        {
            var fileSantander = new BancoSantander();

            return(fileSantander.LerArquivoRetornoLiquidacao(fileLines));
        }