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); }
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); } }