/// <summary> /// Gera linha lote /// </summary> /// <param name="idArquivo"></param> /// <param name="codConvenio"></param> /// <param name="numLinha"></param> public ACSOPRGCRLoteEN MontaACSOPRGCRLoteEN(int idArquivo, string codConvenio, int numLinha) { var lote = new ACSOPRGCRLoteEN() { CodPrgCrg = "125AA4", NomePrg = "PrePago", StatCart = ACSOPRGCR.StatCart.Imediata, DataAgend = null, CodConvenio = codConvenio, NumCart = 5, ValorCrg = 207.07M, NumLinha = numLinha }; return(lote); }
public static void Insere(this ACSOPRGCRLoteEN acsCrgLot) { 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 = acsCrgLot.IdArquivo; cmd.Parameters.Add("TpRegistro", SqlDbType.Char, 1).Value = ACSOPRGCRLoteEN.TpRegistro; cmd.Parameters.Add("CodPrgCrg", SqlDbType.VarChar, 10).Value = acsCrgLot.CodPrgCrg; cmd.Parameters.Add("NomePrg", SqlDbType.VarChar, 20).Value = BDGeral.BDObtemValor(acsCrgLot.NomePrg); cmd.Parameters.Add("StatCart", SqlDbType.TinyInt).Value = (byte)acsCrgLot.StatCart; cmd.Parameters.Add("DataAgend", SqlDbType.Date).Value = BDGeral.BDObtemValor <DateTime>(acsCrgLot.DataAgend); cmd.Parameters.Add("CodConvenio", SqlDbType.VarChar, 10).Value = acsCrgLot.CodConvenio; cmd.Parameters.Add("NumCart", SqlDbType.VarChar, 6).Value = acsCrgLot.NumCart; cmd.Parameters.Add("ValorCrg", SqlDbType.Money).Value = acsCrgLot.ValorCrg; cmd.Parameters.Add("NumLinha", SqlDbType.Int).Value = acsCrgLot.NumLinha; cmd.Parameters.Add("Linha", SqlDbType.Int).Value = acsCrgLot.Linha; cnx.Open(); cmd.ExecuteNonQuery(); } } catch (SqlException sqlExc) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.LotBD", sqlExc }); } throw; } catch (Exception exp) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.Lot", exp }); } throw; } } }
/// <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> /// Gera linha lote /// </summary> /// <param name="idArquivo"></param> /// <param name="codConvenio"></param> /// <param name="numLinha"></param> public ACSOPRGCRLoteEN MontaACSOPRGCRLoteEN(int idArquivo, string codConvenio, int numLinha) { var lote = new ACSOPRGCRLoteEN() { CodPrgCrg = "125AA4", NomePrg = "PrePago", StatCart = ACSOPRGCR.StatCart.Imediata, DataAgend = null, CodConvenio = codConvenio, NumCart = 5, ValorCrg = 207.07M, NumLinha = numLinha }; return lote; }