/// <summary> /// Mapeia dados do limite de cartao /// </summary> /// <param name="dr"></param> /// <param name="prmCrg"></param> private static void Mapeia(SqlDataReader dr, ACSOPRGCRDetalheEN prmcrgLimite) { if (dr.HasRows) { prmcrgLimite.ValMinCredito = (decimal)dr["ValMinCredito"]; prmcrgLimite.ValMaxCredito = (decimal)dr["ValMaxCredito"]; prmcrgLimite.ValLimiteCreditoMes = (decimal)dr["ValLimiteCreditoMes"]; } }
/// <summary> /// Monta o objeto /// </summary> /// <param name="idArquivo"></param> /// <param name="numLinha"></param> /// <param name="dr"></param> /// <returns></returns> public static ACSOPRGCRDetalheEN MapeiaExcel(int idArquivo, int numLinha, DataRow dr) { var acsCrgDetEn = new ACSOPRGCRDetalheEN() { IdArquivo = idArquivo, CodPrgCrg = dr["Codigo Prg Carga"].ToString(), TpPanProxy = (TipoPanProxy)Convert.ToByte(dr["TpPanProxy"].ToString()), PanProxy = dr["PanProxy"].ToString(), Valor = Convert.ToDecimal(dr["Valor"]), IdRegistro = BaseSistema.ObtemValor(dr["IdRegistro"].ToString()), NumLinha = numLinha }; return(acsCrgDetEn); }
/// <summary> /// Gera arquivo de teste de carga /// </summary> /// <param name="path"></param> public void GeraArquivoCarga(string path) { try { if (!Directory.Exists(path)) Directory.CreateDirectory(path); string pathCompleto = Path.Combine(path, FormataNomeArquivo()); int numLinha = 0; int qtdCrg = 0; int numCrt = 0; int idArquivo = 1; string nomeArquivo = Path.GetFileName(pathCompleto); string codConvenio = "ACS1"; decimal vlrCrg = 0.0M; using (StreamWriter sw = new StreamWriter(pathCompleto, false, Encoding.UTF8)) { numLinha++; //Gera Cabeçalho sw.WriteLine(new ACSOPRGCRCabecalhoEN().MontaACSOPRGCRCabecalhoEN(idArquivo, nomeArquivo, numLinha, codConvenio).ToString()); numLinha++; //Gera Lote sw.WriteLine(new ACSOPRGCRLoteEN().MontaACSOPRGCRLoteEN(idArquivo, codConvenio, numLinha).ToString()); //Gera detalhes foreach (var det in ACSOPRGCRDetalheEN.MontaACSOPRGCRDetalheEN()) { numLinha++; qtdCrg++; numCrt++; vlrCrg += det.Valor; det.NumLinha = numLinha; sw.WriteLine(det.ToString()); } numLinha++; //Gera Rodapé sw.WriteLine(new ACSOPRGCRRodapeEN().MontaACSOPRGCRRodapeEN(qtdCrg, numCrt, vlrCrg, numLinha).ToString()); } } catch (Exception e) { throw e; } }
/// <summary> /// Gera linhas detalhe /// </summary> /// <returns></returns> public static ACSOPRGCRDetalheEN[] MontaACSOPRGCRDetalheEN() { ACSOPRGCRDetalheEN[] detalhes = new ACSOPRGCRDetalheEN[] { new ACSOPRGCRDetalheEN() { CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050025256369", Valor = 25.3M, IdRegistro = "12541" }, new ACSOPRGCRDetalheEN() { CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050052847596", Valor = 65.0M, IdRegistro = "12541" }, new ACSOPRGCRDetalheEN() { CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050014586532", Valor = 62.25M, IdRegistro = "12541" }, new ACSOPRGCRDetalheEN() { CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050054752135", Valor = 33.0M, IdRegistro = "12541" }, new ACSOPRGCRDetalheEN() { CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050054455547", Valor = 21.52M, IdRegistro = "12541" } }; return(detalhes); }
public static ACSOPRGCRDetalheEN ConsultaLimiteCliente(string idEntidade) { using (SqlConnection cnx = new SqlConnection(ConfigurationManager.ConnectionStrings["Global"].ConnectionString)) { ACSOPRGCRDetalheEN prmCrgLimite = null; try { string query = "[crpConsultaLimiteCliente]"; using (SqlCommand cmd = new SqlCommand(query, cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("idEntidade", SqlDbType.Int).Value = idEntidade; cnx.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow); prmCrgLimite = new ACSOPRGCRDetalheEN(); while (dr.Read()) { Mapeia(dr, prmCrgLimite); } } } catch (SqlException sqlExc) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.DetBD", sqlExc }); } throw; } catch (Exception exp) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.Det", exp }); } throw; } return(prmCrgLimite); } }
/// <summary> /// Valida os valores dos campos /// </summary> /// <param name="prgCrDet"></param> /// <returns></returns> public List <ValidationResult> Valida(ACSOPRGCRDetalheEN prgCrDet) { try { List <ValidationResult> lstVr = lstVr = new List <ValidationResult>(); //Validação PAN e Proxy this.ValidaPanProxy(prgCrDet, lstVr); this.ValidaLimiteCliente(prgCrDet, lstVr); if (!String.IsNullOrEmpty(prgCrDet.IdRegistro)) { this._Rgx = new Regex(this._ExprRglrRegistro); if (!this._Rgx.Match(prgCrDet.IdRegistro).Success) { if (prgCrDet.IdRegistro.Length > 10) { lstVr.Add(new ValidationResult(String.Concat("IdRegistro contém quantidade de caracteres maior que 10: ", prgCrDet.IdRegistro), new[] { "IdRegistro" })); } } else { lstVr.Add(new ValidationResult(String.Concat("IdRegistro contém caracteres inválidos: ", prgCrDet.IdRegistro), new[] { "IdRegistro" })); } } this._Rgx = new Regex(this._ExpRglrValor); if (!this._Rgx.Match(prgCrDet.Valor.ToString()).Success) { lstVr.Add(new ValidationResult(String.Concat("Valor somente caractere numérico: ", prgCrDet.IdRegistro), new[] { "Valor" })); } return(lstVr); } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); } throw; } }
public static void Insere(this ACSOPRGCRDetalheEN acsCrgDet) { 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 = acsCrgDet.IdArquivo; cmd.Parameters.Add("TpRegistro", SqlDbType.Char, 1).Value = ACSOPRGCRDetalheEN.TpRegistro; cmd.Parameters.Add("CodPrgCrg", SqlDbType.VarChar, 10).Value = acsCrgDet.CodPrgCrg; cmd.Parameters.Add("TpPanProxy", SqlDbType.TinyInt).Value = (byte)acsCrgDet.TpPanProxy; cmd.Parameters.Add("PanProxy", SqlDbType.VarChar, 32).Value = acsCrgDet.PanProxy; cmd.Parameters.Add("Valor", SqlDbType.Money).Value = acsCrgDet.Valor; cmd.Parameters.Add("IdRegistro", SqlDbType.VarChar, 10).Value = BDGeral.BDObtemValor(acsCrgDet.IdRegistro); cmd.Parameters.Add("NumLinha", SqlDbType.Int).Value = acsCrgDet.NumLinha; cnx.Open(); cmd.ExecuteNonQuery(); } } catch (SqlException sqlExc) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.DetBD", sqlExc }); } throw; } catch (Exception exp) { if (BDGeral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.Det", exp }); } throw; } } }
/// <summary> /// Valida PAN(1) ou Proxy(2) /// </summary> /// <param name="tpIdentif"></param> /// <param name="Identificacao"></param> /// <returns></returns> private void ValidaPanProxy(ACSOPRGCRDetalheEN prgCrDet, List <ValidationResult> lstVr) { try { this._Rgx = new Regex(this._ExpRglrNumerico); if (!this._Rgx.Match(prgCrDet.Identificacao).Success) { if (this.ValidaExistenciaPanProxy(prgCrDet)) { switch (prgCrDet.TpPanProxy) { case TipoPanProxy.PAN: if (!prgCrDet.Identificacao.Length.Equals(16)) { lstVr.Add(new ValidationResult(String.Concat("Identificacao com quantidade de caracteres divergentes a 16: ", prgCrDet.Identificacao), new[] { "Identificacao" })); } break; case TipoPanProxy.Proxy: if (prgCrDet.Identificacao.Length < 8 || prgCrDet.Identificacao.Length > 32) { lstVr.Add(new ValidationResult(String.Concat("Identificacao com quantidade de caracteres divergentes( menor que 8 ou maior que 32): ", prgCrDet.Identificacao), new[] { "Identificacao" })); } break; } } } else { lstVr.Add(new ValidationResult(String.Concat("Identificacao com caracteres alfa-numéricos: ", prgCrDet.Identificacao), new[] { "Identificacao" })); } } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); } throw; } }
/// <summary> /// /// </summary> /// <param name="prgCrDet"></param> /// <param name="lstVr"></param> private void ValidaLimiteCliente(ACSOPRGCRDetalheEN prgCrDet, List <ValidationResult> lstVr) { try { var limite = ACSOPRGCRDetalheDB.ConsultaLimiteCliente(prgCrDet.IdEntidade); if (limite.ValMaxCredito < prgCrDet.Valor || limite.ValMinCredito > prgCrDet.Valor) { lstVr.Add(new ValidationResult(String.Concat("Valores de limites fora do range de aprovação.", prgCrDet.Valor), new[] { "Valor" })); } } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); } throw; } }
/// <summary> /// Valida se existe os cartões na base /// </summary> /// <param name="ptr"></param> /// <returns></returns> private bool ValidaExistenciaPanProxy(ACSOPRGCRDetalheEN prgCrDet) { bool vExist = false; try { vExist = ACSOPRGCRDetalheDB.ConsultaCartoes(prgCrDet); } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); } throw; } return(vExist); }
/// <summary> /// /// </summary> /// <param name="ptr"></param> /// <returns></returns> public static bool ConsultaCartoes(ACSOPRGCRDetalheEN prgCrDet) { using (SqlConnection cnx = new SqlConnection(upSight.Consulta.Base.BD.Conexao.StringConexaoBDGlobal)) { bool bRetorno = false; try { string query = "[crpConsultaCartaoCarga]"; using (SqlCommand cmd = new SqlCommand(query, cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Identificacao", SqlDbType.VarChar, 32).Value = prgCrDet.Identificacao.TrimEnd(null); cmd.Parameters.Add("@idEntidade", SqlDbType.VarChar, 10).Value = prgCrDet.IdEntidade; cmd.Parameters.Add("@codConvenio", SqlDbType.VarChar, 32).Value = prgCrDet.CodConvenio; cnx.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult); while (dr.Read()) { bRetorno = true; break; } } } catch (SqlException sql) { throw sql; } catch (Exception e) { throw e; } return bRetorno; } }
/// <summary> /// /// </summary> /// <param name="ptr"></param> /// <returns></returns> public static bool ConsultaCartoes(ACSOPRGCRDetalheEN prgCrDet) { using (SqlConnection cnx = new SqlConnection(upSight.Consulta.Base.BD.Conexao.StringConexaoBDGlobal)) { bool bRetorno = false; try { string query = "[crpConsultaCartaoCarga]"; using (SqlCommand cmd = new SqlCommand(query, cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Identificacao", SqlDbType.VarChar, 32).Value = prgCrDet.Identificacao.TrimEnd(null); cmd.Parameters.Add("@idEntidade", SqlDbType.VarChar, 10).Value = prgCrDet.IdEntidade; cmd.Parameters.Add("@codConvenio", SqlDbType.VarChar, 32).Value = prgCrDet.CodConvenio; cnx.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult); while (dr.Read()) { bRetorno = true; break; } } } catch (SqlException sql) { throw sql; } catch (Exception e) { throw e; } return(bRetorno); } }
public static ACSOPRGCRDetalheEN ConsultaLimiteCliente(string idEntidade) { using (SqlConnection cnx = new SqlConnection(ConfigurationManager.ConnectionStrings["Global"].ConnectionString)) { ACSOPRGCRDetalheEN prmCrgLimite = null; try { string query = "[crpConsultaLimiteCliente]"; using (SqlCommand cmd = new SqlCommand(query, cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("idEntidade", SqlDbType.Int).Value = idEntidade; cnx.Open(); SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow); prmCrgLimite = new ACSOPRGCRDetalheEN(); while (dr.Read()) Mapeia(dr, prmCrgLimite); } } catch (SqlException sqlExc) { if (BDGeral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.DetBD", sqlExc }); throw; } catch (Exception exp) { if (BDGeral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.Det", exp }); throw; } return prmCrgLimite; } }
/// <summary> /// Valida os valores dos campos /// </summary> /// <param name="prgCrDet"></param> /// <returns></returns> public List<ValidationResult> Valida(ACSOPRGCRDetalheEN prgCrDet) { try { List<ValidationResult> lstVr = lstVr = new List<ValidationResult>(); //Validação PAN e Proxy this.ValidaPanProxy(prgCrDet, lstVr); this.ValidaLimiteCliente(prgCrDet, lstVr); if (!String.IsNullOrEmpty(prgCrDet.IdRegistro)) { this._Rgx = new Regex(this._ExprRglrRegistro); if (!this._Rgx.Match(prgCrDet.IdRegistro).Success) { if (prgCrDet.IdRegistro.Length > 10) lstVr.Add(new ValidationResult(String.Concat("IdRegistro contém quantidade de caracteres maior que 10: ", prgCrDet.IdRegistro), new[] { "IdRegistro" })); } else lstVr.Add(new ValidationResult(String.Concat("IdRegistro contém caracteres inválidos: ", prgCrDet.IdRegistro), new[] { "IdRegistro" })); } this._Rgx = new Regex(this._ExpRglrValor); if(!this._Rgx.Match(prgCrDet.Valor.ToString()).Success) lstVr.Add(new ValidationResult(String.Concat("Valor somente caractere numérico: ", prgCrDet.IdRegistro), new[] { "Valor" })); return lstVr; } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); throw; } }
/// <summary> /// Insere cartões de arquivos XLS e TXT. /// </summary> /// <param name="ds"></param> /// <param name="idArquivo"></param> /// <param name="tpLog"></param> /// <param name="mapArq"></param> private void InsereCartoes(DataSet ds, int idArquivo, ENLog.TipoLog tpLog, ENLog.MapaArquivos mapArq) { int qtdCgr = 0; try { var acsCrgDetEn = new ACSOPRGCRDetalheEN(); var crgCn = new CargaCN(); List<ValidationResult> lstVr = null; int numLinha = 0; foreach (DataRow dr in ds.Tables[0].Rows) { try { if (!String.IsNullOrEmpty(dr["Identificacao"].ToString())) { numLinha++; lstVr = acsCrgDetEn.Mapeia(dr, crgCn.CriaMapaColuna(dr)); if (lstVr.Count == 0) { lstVr = crgCn.Valida(acsCrgDetEn); if (lstVr.Count == 0) { acsCrgDetEn.NumLinha = numLinha; acsCrgDetEn.IdArquivo = idArquivo; acsCrgDetEn.Insere(); qtdCgr++; } else { tpLog = ENLog.TipoLog.Informação; this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr); } } else { tpLog = ENLog.TipoLog.Informação; this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr); } } } catch (Exception e) { tpLog = ENLog.TipoLog.Alerta; string descErro = String.Format("Erro ao processar arquivo de Programação de Carga de Cartões. Linha: {0}", numLinha); this.InsereLog(mapArq, qtdCgr, tpLog, descErro); } } } catch (Exception e) { tpLog = ENLog.TipoLog.Erro; string descErro = "Erro ao processar arquivo de Programação de Carga de Cartões"; this.InsereLog(mapArq, qtdCgr, tpLog, descErro); throw; } switch (tpLog) { case upSight.Global.Log.EN.TipoLog.Erro: Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, mapArq.Arquivo, "Finaliza processamento de arquivo"); break; default: Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoOk, mapArq.Arquivo, "Finaliza processamento de arquivo"); break; } string desc = String.Format("Total de cargas realizadas: {0}", qtdCgr); this.InsereLog(mapArq, qtdCgr, ENLog.TipoLog.Informação, desc); }
/// <summary> /// Valida PAN(1) ou Proxy(2) /// </summary> /// <param name="tpIdentif"></param> /// <param name="Identificacao"></param> /// <returns></returns> private void ValidaPanProxy(ACSOPRGCRDetalheEN prgCrDet, List<ValidationResult> lstVr) { try { this._Rgx = new Regex(this._ExpRglrNumerico); if (!this._Rgx.Match(prgCrDet.Identificacao).Success) { if (this.ValidaExistenciaPanProxy(prgCrDet)) { switch (prgCrDet.TpPanProxy) { case TipoPanProxy.PAN: if (!prgCrDet.Identificacao.Length.Equals(16)) lstVr.Add(new ValidationResult(String.Concat("Identificacao com quantidade de caracteres divergentes a 16: ", prgCrDet.Identificacao), new[] { "Identificacao" })); break; case TipoPanProxy.Proxy: if (prgCrDet.Identificacao.Length < 8 || prgCrDet.Identificacao.Length > 32) lstVr.Add(new ValidationResult(String.Concat("Identificacao com quantidade de caracteres divergentes( menor que 8 ou maior que 32): ", prgCrDet.Identificacao), new[] { "Identificacao" })); break; } } } else lstVr.Add(new ValidationResult(String.Concat("Identificacao com caracteres alfa-numéricos: ", prgCrDet.Identificacao), new[] { "Identificacao" })); } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); 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> /// Mapeia a partir da leitura Excel /// </summary> /// <param name="port"></param> /// <param name="dr"></param> public static List <ValidationResult> Mapeia(this ACSOPRGCRDetalheEN detCrgEn, DataRow dr, MapaColunaCrgDetalhe mapa) { List <ValidationResult> resultValid = new List <ValidationResult>(); try { //Obrigatórios //PanProxy if (mapa.TpIdentif > -1) { detCrgEn.TpPanProxy = (TipoPanProxy)Convert.ToByte(dr[mapa.TpIdentif].ToString()); } else { resultValid.Add(new ValidationResult("Tipo da Identificação deve ser preenchida.", new[] { "TpIdentif" })); } if (mapa.Identificacao > -1) { detCrgEn.Identificacao = dr[mapa.Identificacao].ToString(); } else { resultValid.Add(new ValidationResult("Identificação deve ser preenchida.", new[] { "Identificacao" })); } if (mapa.CodPrgCrg > -1) { detCrgEn.CodPrgCrg = dr[mapa.CodPrgCrg].ToString(); } else { resultValid.Add(new ValidationResult("Código do programa de carga.", new[] { "CodPrgCrg" })); } if (mapa.Identificacao > -1) { detCrgEn.PanProxy = dr[mapa.Identificacao].ToString(); } else { resultValid.Add(new ValidationResult("Pan/Proxy deve ser preenchida.", new[] { "Pan/Proxy" })); } if (mapa.Valor > -1) { detCrgEn.Valor = Convert.ToDecimal(dr[mapa.Valor].ToString()); } else { resultValid.Add(new ValidationResult("Valor da carga deve ser preenchido.", new[] { "Valor" })); } string idRegistro = dr["IdRegistro"].ToString(); detCrgEn.IdRegistro = (!String.IsNullOrEmpty(idRegistro)) ? idRegistro : null; detCrgEn.IdEntidade = dr["idEntidade"].ToString(); } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) { Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOPRGCR.PtrCN", e }); } throw; } return(resultValid); }
/// <summary> /// /// </summary> /// <param name="prgCrDet"></param> /// <param name="lstVr"></param> private void ValidaLimiteCliente(ACSOPRGCRDetalheEN prgCrDet, List<ValidationResult> lstVr) { try { var limite = ACSOPRGCRDetalheDB.ConsultaLimiteCliente(prgCrDet.IdEntidade); if (limite.ValMaxCredito < prgCrDet.Valor || limite.ValMinCredito > prgCrDet.Valor) { lstVr.Add(new ValidationResult(String.Concat("Valores de limites fora do range de aprovação.", prgCrDet.Valor), new[] { "Valor" })); } } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); throw; } }
/// <summary> /// Monta o objeto /// </summary> /// <param name="idArquivo"></param> /// <param name="numLinha"></param> /// <param name="dr"></param> /// <returns></returns> public static ACSOPRGCRDetalheEN MapeiaExcel(int idArquivo, int numLinha, DataRow dr) { var acsCrgDetEn = new ACSOPRGCRDetalheEN () { IdArquivo = idArquivo, CodPrgCrg = dr["Codigo Prg Carga"].ToString(), TpPanProxy = (TipoPanProxy)Convert.ToByte(dr["TpPanProxy"].ToString()), PanProxy = dr["PanProxy"].ToString(), Valor = Convert.ToDecimal(dr["Valor"]), IdRegistro = BaseSistema.ObtemValor(dr["IdRegistro"].ToString()), NumLinha = numLinha }; return acsCrgDetEn; }
/// <summary> /// Gera linhas detalhe /// </summary> /// <returns></returns> public static ACSOPRGCRDetalheEN[] MontaACSOPRGCRDetalheEN() { ACSOPRGCRDetalheEN[] detalhes = new ACSOPRGCRDetalheEN[] { new ACSOPRGCRDetalheEN(){ CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050025256369", Valor = 25.3M, IdRegistro = "12541"}, new ACSOPRGCRDetalheEN(){ CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050052847596", Valor = 65.0M, IdRegistro = "12541"}, new ACSOPRGCRDetalheEN(){ CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050014586532", Valor = 62.25M, IdRegistro = "12541"}, new ACSOPRGCRDetalheEN(){ CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050054752135", Valor = 33.0M, IdRegistro = "12541"}, new ACSOPRGCRDetalheEN(){ CodPrgCrg = "125AA4", TpPanProxy = TipoPanProxy.PAN, PanProxy = "5292050054455547", Valor = 21.52M, IdRegistro = "12541"}}; return detalhes; }
/// <summary> /// Valida se existe os cartões na base /// </summary> /// <param name="ptr"></param> /// <returns></returns> private bool ValidaExistenciaPanProxy(ACSOPRGCRDetalheEN prgCrDet) { bool vExist = false; try { vExist = ACSOPRGCRDetalheDB.ConsultaCartoes(prgCrDet); } catch (Exception e) { if (upSight.Consulta.Base.BD.Geral.TS.TraceError) Trace.TraceError("{0}: {1}", new object[] { "u.CrtCorp.ACSOIDTS.PtrCN", e }); throw; } return vExist; }