public static void Insere(this ACSOPRGCRCabecalhoEN acsCrgCab) { using (SqlConnection cnx = new SqlConnection(ConfigurationManager.ConnectionStrings["Global"].ConnectionString)) { try { string query = "[crpInsereCargaDetalhe]"; using (SqlCommand cmd = new SqlCommand(query, cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("IdArquivo", SqlDbType.Int).Value = acsCrgCab.IdArquivo; cmd.Parameters.Add("TpRegistro", SqlDbType.Char, 1).Value = ACSOPRGCRCabecalhoEN.TpRegistro; cmd.Parameters.Add("NomeLayout", SqlDbType.VarChar, 20).Value = acsCrgCab.NomeLayout; cmd.Parameters.Add("Versao", SqlDbType.VarChar, 8).Value = acsCrgCab.Versao; cmd.Parameters.Add("DataGeracao", SqlDbType.DateTime).Value = acsCrgCab.DataGeracao; cmd.Parameters.Add("SeqArquivo", SqlDbType.TinyInt).Value = acsCrgCab.SeqArquivo; cmd.Parameters.Add("NomeArquivo", SqlDbType.VarChar, 50).Value = acsCrgCab.NomeArquivo; cmd.Parameters.Add("CodConvenio", SqlDbType.VarChar, 10).Value = acsCrgCab.CodConvenio; cmd.Parameters.Add("CodEmpresa", SqlDbType.VarChar, 14).Value = acsCrgCab.CodEmpresa; cmd.Parameters.Add("NumLinha", SqlDbType.Int).Value = acsCrgCab.NumLinha; cmd.Parameters.Add("Linha", SqlDbType.Int).Value = acsCrgCab.Linha; cnx.Open(); cmd.ExecuteNonQuery(); } } catch (SqlException sqlExc) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.CabBD", sqlExc }); } throw; } catch (Exception exp) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.CabBD", exp }); } throw; } } }
/// <summary> /// Gera linha cabeçalho /// </summary> /// <param name="nomeArquivo"></param> /// <param name="numLinha"></param> public ACSOPRGCRCabecalhoEN MontaACSOPRGCRCabecalhoEN(int idArquivo, string nomeArquivo, int numLinha, string codConvenio) { var cab = new ACSOPRGCRCabecalhoEN() { IdArquivo = idArquivo, NomeLayout = "ACSOPRGCR", Versao = "1.1", CodEmpresa = "ACS", CodConvenio = codConvenio, DataGeracao = DateTime.Now, SeqArquivo = 12, NomeArquivo = nomeArquivo, NumLinha = numLinha }; return(cab); }
/// <summary> /// Gera linha cabeçalho /// </summary> /// <param name="nomeArquivo"></param> /// <param name="numLinha"></param> public ACSOPRGCRCabecalhoEN MontaACSOPRGCRCabecalhoEN(int idArquivo, string nomeArquivo, int numLinha, string codConvenio) { var cab = new ACSOPRGCRCabecalhoEN() { IdArquivo = idArquivo, NomeLayout = "ACSOPRGCR", Versao = "1.1", CodEmpresa = "ACS", CodConvenio = codConvenio, DataGeracao = DateTime.Now, SeqArquivo = 12, NomeArquivo = nomeArquivo, NumLinha = numLinha }; return cab; }
/// <summary> /// Dado o arquivo ele é realizado o parser e seus dados são salvos nas tabelas correspondentes /// </summary> /// <param name="path"></param> public void ProcessaArquivoCarga(string path, int idEdntidade, int idArquivo = 0) { string nomeArquivo = Path.GetFileName(path); ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOPRGCR, path, 0, idArquivo); Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, mapArq.Arquivo, "Inicia processamento de arquivo"); int novoidArquivo = mapArq.IdArquivo; int linhaAtual = 0; int qtdCarga = 0; using (StreamReader sr = new StreamReader(path)) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); ENLog.TipoLog tpLog = ENLog.TipoLog.Informação; Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, mapArq.Arquivo, "Em processamento de arquivo"); string descErro = String.Empty; while (!sr.EndOfStream) { try { linhaAtual++; string linha = sr.ReadLine(); switch (linha.Substring(0, 1)) { case "0": var cab = new ACSOPRGCRCabecalhoEN(novoidArquivo, linha); cab.Insere(); break; case "1": var lot = new ACSOPRGCRLoteEN(novoidArquivo, linha); lot.Insere(); break; case "2": var det = new ACSOPRGCRDetalheEN(novoidArquivo, linha); dt.Rows.Add(ACSOPRGCRDetalheEN.MapeiaTXT(linha, novoidArquivo, dt, idEdntidade)); //det.Insere(); qtdCarga++; break; case "9": var rdp = new ACSOPRGCRRodapeEN(novoidArquivo, linha); rdp.Insere(); break; } } catch (Exception e) { descErro = String.Format("Erro ao processar arquivo de Carga de Cartões. Linha: {0}", linhaAtual); this.InsereLog(mapArq, linhaAtual, ENLog.TipoLog.Alerta, descErro); throw; } } ds.Tables.Add(dt); InsereCartoes(ds, idArquivo, tpLog, mapArq); //Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoOk, mapArq.Arquivo, "Finaliza processamento de arquivo"); //descErro = String.Format("Total de cargas processadas: {0}", qtdCarga); //this.InsereLog(mapArq, linhaAtual, ENLog.TipoLog.Informação, descErro); } ACSPRGCRBD.InsereNovoServico(idArquivo); }
/// <summary> /// Dado o arquivo ele é realizado o parser e seus dados são salvos nas tabelas correspondentes /// </summary> /// <param name="path"></param> public void ProcessaArquivoCarga(string path, int idEdntidade, int idArquivo = 0) { string nomeArquivo = Path.GetFileName(path); ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOPRGCR, path, 0, idArquivo); Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, mapArq.Arquivo, "Inicia processamento de arquivo"); int novoidArquivo = mapArq.IdArquivo; int linhaAtual = 0; int qtdCarga = 0; using (StreamReader sr = new StreamReader(path)) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); ENLog.TipoLog tpLog = ENLog.TipoLog.Informação; Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, mapArq.Arquivo, "Em processamento de arquivo"); string descErro = String.Empty; while (!sr.EndOfStream) { try { linhaAtual++; string linha = sr.ReadLine(); switch (linha.Substring(0, 1)) { case "0": var cab = new ACSOPRGCRCabecalhoEN(novoidArquivo, linha); cab.Insere(); break; case "1": var lot = new ACSOPRGCRLoteEN(novoidArquivo, linha); lot.Insere(); break; case "2": var det = new ACSOPRGCRDetalheEN(novoidArquivo, linha); dt.Rows.Add(ACSOPRGCRDetalheEN.MapeiaTXT(linha, novoidArquivo, dt, idEdntidade)); //det.Insere(); qtdCarga++; break; case "9": var rdp = new ACSOPRGCRRodapeEN(novoidArquivo, linha); rdp.Insere(); break; } } catch (Exception e) { descErro = String.Format("Erro ao processar arquivo de Carga de Cartões. Linha: {0}", linhaAtual); this.InsereLog(mapArq, linhaAtual, ENLog.TipoLog.Alerta, descErro); throw; } } ds.Tables.Add(dt); InsereCartoes(ds, idArquivo, tpLog, mapArq); //Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoOk, mapArq.Arquivo, "Finaliza processamento de arquivo"); //descErro = String.Format("Total de cargas processadas: {0}", qtdCarga); //this.InsereLog(mapArq, linhaAtual, ENLog.TipoLog.Informação, descErro); } ACSPRGCRBD.InsereNovoServico(idArquivo); }