示例#1
0
        public RemessaCnab240 GerarRemessa(HeaderRemessaCnab240 header, HeaderLoteRemessaCnab240 headerLote,
                                           List <Boleto> boletos, TrailerLoteRemessaCnab240 trailerLote,
                                           TrailerRemessaCnab240 trailer)
        {
            var objReturn = new RemessaCnab240();

            objReturn.Header = header;
            objReturn.Lotes  = new List <LoteRemessaCnab240>();

            var ultimoLoteAdicionado = objReturn.AdicionarLote(headerLote, trailerLote);

            // Usado para identificar com número único e sequencial cada boleto (registro) dentro do lote.
            var contador = 1;
            var reg1     = 1;
            var reg2     = 2;

            foreach (var boletoAddRemessa in boletos)
            {
                objReturn.AdicionarBoletoAoLote(ultimoLoteAdicionado, boletoAddRemessa, contador, reg1, reg2);
                contador++;
                reg1 = reg1 + 2;
                reg2 = reg2 + 2;
            }

            objReturn.Trailer = trailer;

            return(objReturn);
        }
        public string EscreverHeader(HeaderRemessaCnab240 infoHeader)
        {
            var nomeEmpresa = "";

            if (infoHeader.NomeEmpresa.Length > 30)
            {
                nomeEmpresa = infoHeader.NomeEmpresa.Substring(0, 30);
            }
            else
            {
                nomeEmpresa = infoHeader.NomeEmpresa.ToUpper();
            }
            var header = new string(' ', 240);

            try
            {
                header = header.PreencherValorNaLinha(1, 3, "756");
                header = header.PreencherValorNaLinha(4, 7, "0000");
                header = header.PreencherValorNaLinha(8, 8, "0");
                header = header.PreencherValorNaLinha(9, 17, string.Empty.PadLeft(9, ' '));
                header = header.PreencherValorNaLinha(18, 18, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").Length == 11 ? "1" : "2");
                header = header.PreencherValorNaLinha(19, 32, infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").PadLeft(14, '0'));
                header = header.PreencherValorNaLinha(33, 52, string.Empty.PadLeft(20, ' '));
                header = header.PreencherValorNaLinha(53, 57, infoHeader.AgenciaMantenedora.PadLeft(5, '0'));
                header = header.PreencherValorNaLinha(58, 58, infoHeader.DigitoAgenciaMantenedora);
                header = header.PreencherValorNaLinha(59, 70, infoHeader.NumeroContaCorrente.PadLeft(12, '0'));
                header = header.PreencherValorNaLinha(71, 71, infoHeader.DigitoContaCorrente.BoletoBrToStringSafe().PadLeft(1, '0'));
                header = header.PreencherValorNaLinha(72, 72, " ");
                header = header.PreencherValorNaLinha(73, 102, nomeEmpresa.PadRight(30, ' '));
                header = header.PreencherValorNaLinha(103, 132, "SICOOB".PadRight(30, ' '));
                header = header.PreencherValorNaLinha(133, 142, string.Empty.PadLeft(10, ' '));
                header = header.PreencherValorNaLinha(143, 143, "1");
                header = header.PreencherValorNaLinha(144, 151, DateTime.Now.ToString("ddMMyyyy"));
                header = header.PreencherValorNaLinha(152, 157, DateTime.Now.ToString("HHmmss"));
                header = header.PreencherValorNaLinha(158, 163, infoHeader.SequencialNsa.ToString().PadLeft(6, '0'));
                header = header.PreencherValorNaLinha(164, 166, "081");
                header = header.PreencherValorNaLinha(167, 171, string.Empty.PadLeft(5, '0'));
                header = header.PreencherValorNaLinha(172, 191, string.Empty.PadRight(20, ' '));
                header = header.PreencherValorNaLinha(192, 211, string.Empty.PadRight(20, ' '));
                header = header.PreencherValorNaLinha(212, 240, string.Empty.PadRight(29, ' '));
                return(header);
            }
            catch (Exception e)
            {
                throw new Exception(string.Format("BoletoBr{0}Falha na geração do HEADER do arquivo de REMESSA.",
                                                  Environment.NewLine), e);
            }
        }
示例#3
0
        public string EscreverHeader(HeaderRemessaCnab240 infoHeader)
        {
            string nomeCedente = infoHeader.NomeEmpresa;

            if (nomeCedente.Length > 30)
            {
                nomeCedente = infoHeader.NomeEmpresa.Substring(0, 30);
            }

            var header = new string(' ', 240);

            try
            {
                header = header.PreencherValorNaLinha(1, 3, "104");
                header = header.PreencherValorNaLinha(4, 7, "0000");
                header = header.PreencherValorNaLinha(8, 8, "0");
                header = header.PreencherValorNaLinha(9, 17, string.Empty.PadLeft(9, ' '));
                header = header.PreencherValorNaLinha(18, 18,
                                                      infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").Length == 11
                        ? "1"
                        : "2");
                header = header.PreencherValorNaLinha(19, 32,
                                                      infoHeader.NumeroInscricao.Replace(".", "").Replace("/", "").Replace("-", "").PadLeft(14, '0'));
                header = header.PreencherValorNaLinha(33, 52, string.Empty.PadLeft(20, '0'));
                header = header.PreencherValorNaLinha(53, 57,
                                                      infoHeader.AgenciaMantenedora.PadLeft(5, '0'));
                header = header.PreencherValorNaLinha(58, 58, infoHeader.DigitoAgenciaMantenedora);
                header = header.PreencherValorNaLinha(59, 64, infoHeader.CodigoCedente.PadLeft(6, '0'));
                header = header.PreencherValorNaLinha(65, 71, string.Empty.PadLeft(7, '0'));
                header = header.PreencherValorNaLinha(72, 72, "0");
                header = header.PreencherValorNaLinha(73, 102, nomeCedente.PadRight(30, ' '));
                header = header.PreencherValorNaLinha(103, 132, "CAIXA ECONOMICA FEDERAL".PadRight(30, ' '));
                header = header.PreencherValorNaLinha(133, 142, string.Empty.PadLeft(10, ' '));

                #region CÓDIGO REMESSA / RETORNO

                /* Código adotado pela FEBRABAN para qualificar o envio ou devoução de arquivo entre Empresa Cliente e o Banco prestador de serviços.
                 * Informar:
                 * 1 - Remessa (Cliente -> Banco)
                 * 2 - Retorno (Banco -> Cliente)
                 * 3 - Remessa Processada (Banco -> Cliente - Pré-Crítica)
                 * 4 - Remessa Processada Parcial (Banco -> Cliente - Pré-Crítica)
                 * 5 - Remessa Rejeitada (Banco -> Cliente - Pré-Crítica)
                 */

                #endregion

                // Código Remessa/Retorno padronizado para "1" no envio do arquivo
                header = header.PreencherValorNaLinha(143, 143, "1");
                header = header.PreencherValorNaLinha(144, 151, DateTime.Now.ToString("ddMMyyyy"));
                header = header.PreencherValorNaLinha(152, 157, DateTime.Now.ToString("HHmmss"));
                header = header.PreencherValorNaLinha(158, 163, infoHeader.SequencialNsa.ToString().PadLeft(6, '0'));
                header = header.PreencherValorNaLinha(164, 166, "050");
                header = header.PreencherValorNaLinha(167, 171, string.Empty.PadLeft(5, '0'));
                header = header.PreencherValorNaLinha(172, 191, string.Empty.PadRight(20, ' '));
                header = header.PreencherValorNaLinha(192, 211, "REMESSA-PRODUCAO".PadRight(20, ' '));
                header = header.PreencherValorNaLinha(212, 215, string.Empty.PadRight(4, ' '));
                header = header.PreencherValorNaLinha(216, 240, string.Empty.PadRight(25, ' '));

                return(header);
            }
            catch (Exception e)
            {
                throw new Exception(String.Concat("Falha na geração do HEADER do arquivo de REMESSA.",
                                                  Environment.NewLine, e));
            }
        }