예제 #1
0
        public List <ContribuinteDTO> LerDirfTxt(LoteDTO lote)
        {
            List <ContribuinteDTO> contribuintes = new List <ContribuinteDTO>();
            var txt = lote.ArquivosImportados.FirstOrDefault(c => c.ExtensaoArquivo == ".txt");

            var    file = new StreamReader(txt.CaminhoArquivo);
            string linha;

            while ((linha = file.ReadLine()) != null)
            {
                if (lote.TipoContribuinte == TipoContribuinte.FuncionarioCassi && linha.Contains(BPFDEC))
                {
                    var dados = linha.Split('|');

                    if (String.IsNullOrEmpty(dados[1]))
                    {
                        continue;
                    }

                    contribuintes.Add(new ContribuinteDTO()
                    {
                        CpfCnpj          = (dados[1].Length > 11 ? FormatacaoUtil.FormatarCNPJ(dados[1]) : FormatacaoUtil.FormatarCPF(dados[1])),
                        TipoContribuinte = lote.TipoContribuinte,
                        Status           = (dados[1].Length > 11 ? StatusContribuinte.FalhaCnpj : StatusContribuinte.FalhaCpf)
                    });
                }

                if (lote.TipoContribuinte == TipoContribuinte.PrestadorFornecedor && (linha.Contains(BPFDEC) || linha.Contains(BPJDEC)))
                {
                    var dados = linha.Split('|');

                    if (String.IsNullOrEmpty(dados[1]))
                    {
                        continue;
                    }

                    contribuintes.Add(new ContribuinteDTO()
                    {
                        CpfCnpj          = (dados[1].Length > 11 ? FormatacaoUtil.FormatarCNPJ(dados[1]) : FormatacaoUtil.FormatarCPF(dados[1])),
                        TipoContribuinte = lote.TipoContribuinte,
                        Status           = (dados[1].Length > 11 ? StatusContribuinte.FalhaCnpj : StatusContribuinte.FalhaCpf)
                    });
                }
            }

            return(contribuintes.GroupBy(x => x.CpfCnpj).Select(y => y.FirstOrDefault()).ToList());
        }
예제 #2
0
        public static string FormatarCnpj(this string cnpj)
        {
            var formatado = FormatacaoUtil.FormatarCNPJ(cnpj);

            return(formatado);
        }