예제 #1
0
    private void AddToBulk(long id, RfPessoaJuridica pj, RfEndereco end, RfTelefone tel1, RfTelefone tel2)
    {
        // pj
        DataRow drPj = _tblPj.NewRow();

        drPj["Id"]                      = id;
        drPj["Cnpj"]                    = pj.Cnpj;
        drPj["RazaoSocial"]             = pj.RazaoSocial;
        drPj["NomeFantasia"]            = pj.NomeFantasia;
        drPj["CapitalSocial"]           = pj.CapitalSocial;
        drPj["DataInicioAtividades"]    = pj.DataInicioAtividades;
        drPj["CnaeFiscal"]              = pj.CnaeFiscal;
        drPj["SituacaoCadastral"]       = pj.SituacaoCadastral;
        drPj["DataSituacaoCadastral"]   = pj.DataSituacaoCadastral;
        drPj["MotivoSituacaoCadastral"] = pj.MotivoSituacaoCadastral;
        drPj["NaturezaJuridica"]        = pj.NaturezaJuridica;
        drPj["OptanteMei"]              = pj.OptanteMei;
        drPj["OptanteSimples"]          = pj.OptanteSimples;
        drPj["Email"]                   = pj.Email;
        drPj["DataBaseImportacao"]      = pj.DataBaseImportacao;


        _tblPj.Rows.Add(drPj);

        // endereco
        DataRow drEndereco = _tblEndereco.NewRow();

        drEndereco["Id"]             = id;
        drEndereco["Cnpj"]           = end.Cnpj;
        drEndereco["Cep"]            = end.Cep;
        drEndereco["TipoLogradouro"] = end.TipoLogradouro;
        drEndereco["Logradouro"]     = end.Logradouro;
        drEndereco["Numero"]         = end.Numero;
        drEndereco["Complemento"]    = end.Complemento;
        drEndereco["Bairro"]         = end.Bairro;
        drEndereco["IdMunicipio"]    = end.IdMunicipio;
        drEndereco["Uf"]             = end.Uf;
        drEndereco["Municipio"]      = end.Municipio;

        _tblEndereco.Rows.Add(drEndereco);

        // telefone
        DataRow drTelefone = _tblTelefone.NewRow();

        drTelefone["Id"]       = id;
        drTelefone["Cnpj"]     = tel1.Cnpj;
        drTelefone["Telefone"] = tel1.Telefone;

        _tblTelefone.Rows.Add(drTelefone);
    }
예제 #2
0
    public void Run(string[] input_list)
    {
        Configure();
        Connect();
        Init();

        _cnaeSubclasse = GetCNAE();


        // Itera sobre sequencia de arquivos (p/ suportar arquivo dividido pela RF)
        foreach (var file_path in input_list)
        {
            _dataBaseArquivoImportacao = new DateTime();
            Console.WriteLine("Processando arquivo: " + file_path);
            Console.WriteLine(DateTime.Now.ToShortTimeString());
            _tblPj       = PjTableStructure();
            _tblEndereco = EnderecoTableStructure();
            _tblTelefone = TelefoneTableStructure();
            _tblCnae     = CnaeTableStructure();

            // Read the file and display it line by line.
            StreamReader file        = new System.IO.StreamReader(file_path);
            var          currentLine = 0;
            string       line;
            while ((line = file.ReadLine()) != null)
            {
                if ("1" == SubStr(line, Constantes.GERAL_COLUNAS.GetValueOrDefault("REGISTROS_TIPOS")))
                {
                    var pj = new RfPessoaJuridica()
                    {
                        Cnpj                    = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CNPJ))),
                        RazaoSocial             = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_RAZAO_SOCIAL)),
                        NomeFantasia            = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_NOME_FANTASIA)),
                        CnaeFiscal              = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CNAE_FISCAL)),
                        CapitalSocial           = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CAPITAL_SOCIAL))) / 100,
                        DataInicioAtividades    = GetValidDate(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_DATA_INICIO_ATIV))),
                        NaturezaJuridica        = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_COD_NAT_JURIDICA))),
                        SituacaoCadastral       = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_SITUACAO)),
                        DataSituacaoCadastral   = GetValidDate(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_DATA_SITUACAO))),
                        MotivoSituacaoCadastral = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_MOTIVO_SITUACAO)),
                        OptanteMei              = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_OPC_MEI)) == "S",
                        OptanteSimples          = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_OPC_MEI)) == "S",
                        Email                   = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_EMAIL)),
                        DataBaseImportacao      = _dataBaseArquivoImportacao
                    };

                    var end = new RfEndereco()
                    {
                        Cnpj           = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CNPJ))),
                        Bairro         = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_BAIRRO)),
                        Cep            = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CEP))),
                        Complemento    = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_COMPLEMENTO)),
                        Logradouro     = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_LOGRADOURO)),
                        Numero         = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_NUMERO)),
                        TipoLogradouro = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_TIPO_LOGRADOURO)),
                        Uf             = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_UF)),
                        IdMunicipio    = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_COD_MUNICIPIO))),
                        Municipio      = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_MUNICIPIO)),
                    };
                    var tel1 = new RfTelefone()
                    {
                        Cnpj     = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CNPJ))),
                        Telefone = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_DDD_1)) + SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_TELEFONE_1))
                    };
                    var tel2 = new RfTelefone()
                    {
                        Cnpj     = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_CNPJ))),
                        Telefone = SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_DDD_2)) + SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.EMP_TELEFONE_2))
                    };

                    AddToBulk(_countPj++, pj, end, tel1, tel2);
                    if (currentLine % _bulkSize == 1)
                    {
                        WriteBulkToDb();
                        ClearBulk();
                    }
                }
                else if ("6" == SubStr(line, Constantes.GERAL_COLUNAS.GetValueOrDefault("REGISTROS_TIPOS")))
                {
                    var Cnpj = GetValidLong(SubStr(line, Constantes.EMPRESAS_COLUNAS.GetValueOrDefault(Constantes.CNA_CNPJ)));
                    for (int i = 1; i < 99; i++)
                    {
                        var RfPessoaJuridicaCnaeSubclasse = new RfPessoaJuridicaCnaeSubclasse
                        {
                            Cnpj            = Cnpj,
                            IdCnaeSubclasse = SubStr(line, Constantes.CNAES_COLSPECS[i])
                        };
                        if (GetValidLong(RfPessoaJuridicaCnaeSubclasse.IdCnaeSubclasse) > 0)
                        {
                            AddToBulkCnae(_countCnae++, RfPessoaJuridicaCnaeSubclasse);
                        }
                        else
                        {
                            break;
                        }
                    }
                }

                currentLine++;
            }

            WriteBulkToDb();
            ClearBulk();
            file.Close();

            Console.WriteLine("{0} linhas processadas.", currentLine);
        }
    }