示例#1
0
        public LoteRemessaCnab240 AdicionarLote(HeaderLoteRemessaCnab240 headerLote, TrailerLoteRemessaCnab240 trailerLote)
        {
            var loteAdd = new LoteRemessaCnab240();
            loteAdd.HeaderLote = headerLote;
            loteAdd.TrailerLote = trailerLote;

            Lotes.Add(loteAdd);
            return loteAdd;
        }
示例#2
0
        public LoteRemessaCnab240 AdicionarLote(HeaderLoteRemessaCnab240 headerLote, TrailerLoteRemessaCnab240 trailerLote)
        {
            var loteAdd = new LoteRemessaCnab240();

            loteAdd.HeaderLote  = headerLote;
            loteAdd.TrailerLote = trailerLote;

            Lotes.Add(loteAdd);
            return(loteAdd);
        }
示例#3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="loteContainer">Lote onde serão adicionados os lançamentos</param>
        /// <param name="boletoAdicionar">Boleto que será detalhado nos detalhes de segmento</param>
        /// <param name="reg1">Primeiro registro detalhe do boleto - SEGMENTO P</param>
        /// <param name="reg2">Segundo registro detalhe do boleto - SEGMENTO Q</param>
        /// <returns></returns>
        public DetalheRemessaCnab240 AdicionarBoletoAoLote(LoteRemessaCnab240 loteContainer, Boleto boletoAdicionar, int contador, int reg1, int reg2)
        {
            var detalheRemessaAdd = new DetalheRemessaCnab240(boletoAdicionar, contador);
            var numeroRegistroNoLote = 0;

            numeroRegistroNoLote = reg1;
            detalheRemessaAdd.SegmentoP = new DetalheSegmentoPRemessaCnab240(boletoAdicionar, numeroRegistroNoLote);
            numeroRegistroNoLote = reg2;
            detalheRemessaAdd.SegmentoQ = new DetalheSegmentoQRemessaCnab240(boletoAdicionar, numeroRegistroNoLote);

            loteContainer.RegistrosDetalheSegmentos.Add(detalheRemessaAdd);

            return detalheRemessaAdd;
        }
示例#4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="loteContainer">Lote onde serão adicionados os lançamentos</param>
        /// <param name="boletoAdicionar">Boleto que será detalhado nos detalhes de segmento</param>
        /// <param name="reg1">Primeiro registro detalhe do boleto - SEGMENTO P</param>
        /// <param name="reg2">Segundo registro detalhe do boleto - SEGMENTO Q</param>
        /// <returns></returns>
        public DetalheRemessaCnab240 AdicionarBoletoAoLote(LoteRemessaCnab240 loteContainer, Boleto boletoAdicionar, int contador, int reg1, int reg2)
        {
            var detalheRemessaAdd    = new DetalheRemessaCnab240(boletoAdicionar, contador);
            var numeroRegistroNoLote = 0;

            numeroRegistroNoLote        = reg1;
            detalheRemessaAdd.SegmentoP = new DetalheSegmentoPRemessaCnab240(boletoAdicionar, numeroRegistroNoLote);
            numeroRegistroNoLote        = reg2;
            detalheRemessaAdd.SegmentoQ = new DetalheSegmentoQRemessaCnab240(boletoAdicionar, numeroRegistroNoLote);

            loteContainer.RegistrosDetalheSegmentos.Add(detalheRemessaAdd);

            return(detalheRemessaAdd);
        }
示例#5
0
        public DetalheRemessaCnab240 AdicionarBoletoAoLote(LoteRemessaCnab240 loteContainer, Pagamento pagamentoAdicionar, int contador, int reg1, int reg2)
        {
            var detalheRemessaAdd    = new DetalheRemessaCnab240(pagamentoAdicionar, contador);
            var numeroRegistroNoLote = 0;

            if (string.IsNullOrEmpty(pagamentoAdicionar.CodBarras))
            {
                numeroRegistroNoLote        = reg1;
                detalheRemessaAdd.SegmentoA = new DetalheSegmentoARemessaCnab240(pagamentoAdicionar, numeroRegistroNoLote);
                numeroRegistroNoLote        = reg2;
                detalheRemessaAdd.SegmentoB = new DetalheSegmentoBRemessaCnab240(pagamentoAdicionar, numeroRegistroNoLote);
            }
            else
            {
                /*é adicionado em lote separado dos registros AB*/
                numeroRegistroNoLote        = reg1;
                detalheRemessaAdd.SegmentoJ = new DetalheSegmentoJRemessaCnab240(pagamentoAdicionar, numeroRegistroNoLote);
            }

            loteContainer.RegistrosDetalheSegmentos.Add(detalheRemessaAdd);

            return(detalheRemessaAdd);
        }
示例#6
0
        public void TestGeracaoArquivoRemessaCef()
        {
            var dadosRemessa = new Remessa(Remessa.EnumTipoAmbiemte.Homologacao, EnumCodigoOcorrenciaRemessa.Registro, "2");

            var banco = Fabricas.BancoFactory.ObterBanco("104", "0");

            var contaBancariaCedente = new ContaBancaria("007", "8", "1234", "0");

            var cedente = new Cedente("999999", "123456", 0, "99.999.999/9999-99", "Razão 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 = "SR" };

            var boleto = new Boleto(carteira, cedente, sacado, dadosRemessa)
            {
                BancoBoleto = banco,
                NumeroDocumento = "19",
                ValorBoleto = (decimal)1000.51,
                IdentificadorInternoBoleto = "19",
                DataVencimento = new DateTime(2014, 06, 30),
                Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.DuplicataMercantil),
            };

            var listaBoleto = new List<Boleto>();

            listaBoleto.Add(boleto);

            banco.FormatarBoleto(boleto);

            #region GERAÇÃO 1

            var remessa = new RemessaCnab240();

            //var listaDetalhes = new List<DetalheRemessaCnab240>();

            remessa.Header = new HeaderRemessaCnab240(listaBoleto.FirstOrDefault(), 1);

            //var detalheSegmentoP = new DetalheSegmentoPRemessaCnab240(boleto)
            //{
            //    CodigoCedente = "123456",
            //    NossoNumero = "123456",
            //    NumeroDocumento = "123456",
            //    CodigoOcorrencia = new CodigoOcorrencia(01),
            //    Especie = banco.ObtemEspecieDocumento(EnumEspecieDocumento.DuplicataMercantil),
            //    Aceite = "N",
            //    DataVencimento = new DateTime(2014, 10, 01),
            //    ValorBoleto = (decimal)100.51,
            //};

            remessa.Lotes = new List<LoteRemessaCnab240> { };

            var loteAdd = new LoteRemessaCnab240();
            loteAdd.HeaderLote = new HeaderLoteRemessaCnab240(listaBoleto.FirstOrDefault(), 1);

            loteAdd.TrailerLote = new TrailerLoteRemessaCnab240(1);

            //loteAdd.RegistrosDetalheSegmentos = new List<DetalheRemessaCnab240>();
            //var detalheRemessaAdd = new DetalheRemessaCnab240();
            //detalheRemessaAdd.SegmentoP = detalheSegmentoP;
            //loteAdd.RegistrosDetalheSegmentos.Add(detalheRemessaAdd);

            remessa.Lotes.Add(loteAdd);

            remessa.Trailer = new TrailerRemessaCnab240(1, 1);

            #endregion GERAÇÃO 1

            var fabricaRemessa = new RemessaFactory();

            var remessaPronta = fabricaRemessa.GerarRemessa(remessa.Header, loteAdd.HeaderLote, listaBoleto, loteAdd.TrailerLote, remessa.Trailer);

            var escritor = EscritorArquivoRemessaFactory.ObterEscritorRemessa(remessa);

            var linhasEscrever = escritor.EscreverTexto(remessaPronta);

            var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            var data = String.Format("{0}_{1}", DateTime.Now.ToString("ddMMyyyy"), DateTime.Now.ToString("HHmmss"));

            var nomeArquivo = string.Format("{0}{1}{2}{3}", banco.CodigoBanco, @"_REMESSA_", data, ".txt");

            StringBuilder sb = new StringBuilder();
            foreach (var linha in linhasEscrever)
            {
                sb.AppendLine(linha);
            }

            File.WriteAllLines("C:\\REMESSA.TXT", linhasEscrever.ToArray());
        }