public ActionResult Edit(int ID) { int pagina = 924; //ID EN BASE DE DATOS FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); APPSETTING aPPSETTING = db.APPSETTINGs.Find(ID); return(View(aPPSETTING)); }
public ActionResult Edit([Bind(Include = "ID,NOMBRE,VALUE,ACTIVO")] APPSETTING aPPSETTING) { string nOMBRE = aPPSETTING.NOMBRE.Replace(" ", "_"); aPPSETTING.ID = aPPSETTING.ID; aPPSETTING.NOMBRE = nOMBRE; aPPSETTING.VALUE = aPPSETTING.VALUE; aPPSETTING.ACTIVO = true; db.Entry(aPPSETTING).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Delete(int ID) { APPSETTING aPPSETTING = db.APPSETTINGs.Find(ID); aPPSETTING.ID = aPPSETTING.ID; aPPSETTING.NOMBRE = aPPSETTING.NOMBRE; aPPSETTING.VALUE = aPPSETTING.VALUE; aPPSETTING.ACTIVO = false; db.Entry(aPPSETTING).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); }
public void enviarErrores(List <string> mensajes) { TAT001Entities db = new TAT001Entities(); APPSETTING mailC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("mail") & x.ACTIVO).FirstOrDefault(); if (mailC == null) { Console.Write("Falta configuración!"); } //RSG 30.07.2018 string mailt = mailC.VALUE; //RSG 30.07.2018 CONMAIL conmail = db.CONMAILs.Find(mailt); if (conmail != null) { APPSETTING mailAC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("mailAdmin") & x.ACTIVO).FirstOrDefault(); MailMessage mail = new MailMessage(conmail.MAIL, mailAC.VALUE); SmtpClient client = new SmtpClient(); if (conmail.SSL) { client.Port = (int)conmail.PORT; client.EnableSsl = conmail.SSL; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } else { client.UseDefaultCredentials = true; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = conmail.HOST; try { mail.IsBodyHtml = true; foreach (string mensaje in mensajes) { mail.Body += "<br><span>" + mensaje + "</span>"; } mail.Subject = "Error programa Negociaciones- " + DateTime.Now.ToString(); client.Send(mail); } catch (Exception ex) { throw new Exception("No se ha podido enviar el email", ex.InnerException); } } }
public ActionResult Create([Bind(Include = "NOMBRE,VALUE,ACTIVO")] Appsetting appsetting) { APPSETTING u = new APPSETTING(); string nOMBRE = appsetting.NOMBRE.Replace(" ", "_"); u.NOMBRE = nOMBRE; u.VALUE = appsetting.VALUE; u.ACTIVO = true; db.APPSETTINGs.Add(u); try { db.SaveChanges(); return(RedirectToAction("Index")); } catch { ViewBag.Error = "El usuario ya existe. Introduzca un ID de usuario diferente"; int pagina = 923; //ID EN BASE DE DATOS FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); return(View()); } }
public void correos2() { ImapClient ic = new ImapClient(); List <AE.Net.Mail.MailMessage> mx; List <AE.Net.Mail.MailMessage> emRq17; APPSETTING lg = db.APPSETTINGs.Where(x => x.NOMBRE == "logPath" && x.ACTIVO).FirstOrDefault(); log.ruta = lg.VALUE + "LeerCorreos_"; log.escribeLog("-----------------------------------------------------------------------START"); try { List <CONMAIL> cc = db.CONMAILs.ToList(); CONMAIL conmail = cc.FirstOrDefault(x => x.ID == "LE"); if (conmail == null) { log.escribeLog("Falta configurar inbox."); return; } ic = new ImapClient(conmail.HOST, conmail.MAIL, conmail.PASS, AuthMethods.Login, (int)conmail.PORT, conmail.SSL); // Select a mailbox. Case-insensitive ic.SelectMailbox("INBOX"); //Esto traera los emails recibidos y no leidos //mx = ic.GetMessages(0, ic.GetMessageCount() - 1, true, false) long a = ic.GetMessageCount(); if (a > 100) { mx = ic.GetMessages(ic.GetMessageCount() - 100, ic.GetMessageCount() - 1, true, false) .Where(m => !m.Flags.HasFlag(Flags.Seen) && !m.Flags.HasFlag(Flags.Deleted)).ToList(); } else { mx = ic.GetMessages(0, ic.GetMessageCount() - 1, true, false) .Where(m => !m.Flags.HasFlag(Flags.Seen) && !m.Flags.HasFlag(Flags.Deleted)).ToList(); } //En esta lista ingresaremos a los mails que sean recibidos como cc emRq17 = new List <AE.Net.Mail.MailMessage>(); log.escribeLog("Leer inbox - numReg=(" + mx.Count + ")"); } catch (Exception e) { mx = new List <AE.Net.Mail.MailMessage>(); emRq17 = new List <AE.Net.Mail.MailMessage>(); log.escribeLog("Error al leer" + e.Message.ToString()); } try { //ingresamos los correos CORREO for (int i = 0; i < mx.Count; i++) { AE.Net.Mail.MailMessage mm = ic.GetMessage(mx[i].Uid, false); try { string[] arrAsunto = mm.Subject.Split(']'); int a = arrAsunto.Length - 1; //Recupero el asunto y lo separo del numdoc y pos string[] arrAprNum = arrAsunto[a].Split('-');//RSG cambiar 0 a 1 string[] arrClaves = arrAprNum[1].Split('.'); //Valido que tenga los datos necesarios para el req 17 if (arrClaves.Length > 1) { arrClaves[1] = Decimal.Parse(arrClaves[1]).ToString(); } ////var xy = arrAprNum[0].Trim(); if (arrAprNum[0].Trim() == "De Acuerdo" || arrAprNum[0].Trim() == "DeAcuerdo") { emRq17.Add(mm); log.escribeLog("NEGO A - " + arrClaves[1]); } else if (arrAprNum[0].Trim() == "Tengo Observaciones" || arrAprNum[0].Trim() == "TengoObservaciones") { emRq17.Add(mm); log.escribeLog("NEGO O - " + arrClaves[1]); } } catch { ic.AddFlags(Flags.Seen, mm); log.escribeLog("ERROR - " + mm.Subject); } } //Correos de FLUJO DE APROBACIÓN y RECURRENTE-----------------------------------------------------2 y 3 if (true) { for (int i = 0; i < mx.Count; i++) { AE.Net.Mail.MailMessage mm = ic.GetMessage(mx[i].Uid, false); try { string[] arrAsunto = mm.Subject.Split(']'); int a = arrAsunto.Length - 1; //Recupero el asunto y lo separo del numdoc y pos string[] arrAprNum = arrAsunto[a].Split('-');//RSG cambiar 0 a 1 string[] arrClaves = arrAprNum[1].Split('.'); decimal numdoc = Decimal.Parse(arrClaves[0]); //Si el Texto es Aprobado, Rechazado o Recurrente string[] arrApr = arrAprNum[0].Split(':'); if (arrApr.Length > 1) { ProcesaFlujo pF = new ProcesaFlujo(); if (arrApr[1] == "Approved" || arrApr[1] == "Rejected") { log.escribeLog("APPR AR - " + arrClaves[0]); int pos = Convert.ToInt32(arrAprNum[2]); FLUJO fl = db.FLUJOes.Where(x => x.NUM_DOC == numdoc && x.POS == pos).FirstOrDefault(); if (fl != null) { Console.WriteLine(mm.From.Address.Trim()); Console.WriteLine(fl.USUARIO.EMAIL); log.escribeLog("APPR mails - " + mm.From.Address.Trim() + " == " + fl.USUARIO.EMAIL); if (mm.From.Address.Trim().ToLower() == fl.USUARIO.EMAIL.Trim().ToLower() || mm.From.Address.Trim().ToLower() == fl.USUARIO1.EMAIL.Trim().ToLower()) { Console.WriteLine("true"); fl.ESTATUS = arrApr[1].Substring(0, 1); fl.FECHAM = DateTime.Now; Comentario com = new Comentario(); fl.COMENTARIO = com.getComment(mm.Body, mm.ContentType); ////fl.COMENTARIO = mm.Body; ////if (fl.COMENTARIO.Length > 255) //// fl.COMENTARIO = fl.COMENTARIO.Substring(0, 252) + "..."; var res = pF.procesa(fl, ""); log.escribeLog("APPR PROCESA - Res = " + res); Email email = new Email(); if (res == "1") { email.enviarCorreo(fl.NUM_DOC, 1, pos); } else if (res == "3") { email.enviarCorreo(fl.NUM_DOC, 3, pos); } using (TAT001Entities db1 = new TAT001Entities()) { FLUJO ff = db1.FLUJOes.Where(x => x.NUM_DOC == fl.NUM_DOC).OrderByDescending(x => x.POS).FirstOrDefault(); Estatus es = new Estatus();//RSG 18.09.2018 DOCUMENTO ddoc = db1.DOCUMENTOes.Find(fl.NUM_DOC); ff.STATUS = es.getEstatus(ddoc); db1.Entry(ff).State = System.Data.Entity.EntityState.Modified; db1.SaveChanges(); } Console.WriteLine(res); } } ic.AddFlags(Flags.Seen, mm); } ////else if (arrApr[1] == "Rejected") ////{ //// int pos = Convert.ToInt32(arrAprNum[2]); //// FLUJO fl = db.FLUJOes.Where(x => x.NUM_DOC == numdoc && x.POS == pos).FirstOrDefault(); //// fl.ESTATUS = "R"; //// fl.FECHAM = DateTime.Now; //// fl.COMENTARIO = mm.Body; //// var res = pF.procesa(fl, ""); //// if (res == "0") //// { //// // //// } //// else if (res == "1") //// { //// enviarCorreo(fl.NUM_DOC, 1); //// } //// else if (res == "3") //// { //// enviarCorreo(fl.NUM_DOC, 3); //// } //// //para marcar el mensaje como leido //// ic.AddFlags(Flags.Seen, mm); ////} else if (arrApr[1] == "Recurrent") { ////Reversa r = new Reversa(); ////string ts = db.DOCUMENTOes.Find(numdoc).TSOL.TSOLR; ////int ret = 0; ////if (ts != null) //// ret = r.creaReversa(numdoc.ToString(), ts); //////para marcar el mensaje como leido ////if (ret != 0) //// ic.AddFlags(Flags.Seen, mm); } } } catch (Exception ee) { ic.AddFlags(Flags.Seen, mm); log.escribeLog("ERROR - " + ee.Message.ToString()); } } } //req17 ////FLUJNEGO fn = new FLUJNEGO(); for (int i = 0; i < emRq17.Count; i++) { ////AE.Net.Mail.MailMessage mm = emRq17[i]; AE.Net.Mail.MailMessage mm = ic.GetMessage(emRq17[i].Uid, false); if (true) { string[] arrAsunto = mm.Subject.Split(']'); int isa = arrAsunto.Length - 1; //Recupero el asunto y lo separo del numdoc y pos string[] arrAprNum = arrAsunto[isa].Split('-'); string[] arrPiNN = arrAprNum[1].Split('.'); var _id = int.Parse(arrPiNN[1]); var vkorg = arrPiNN[2]; var _correo = arrPiNN[4].Replace('*', '.').Replace('+', '-').Replace('/', '@').Replace('#', '-'); //recupero las fechas de envio var _xres = db.NEGOCIACIONs.Where(x => x.ID == _id).FirstOrDefault(); var pid = arrPiNN[0]; //// var fs = db.DOCUMENTOes.Where(f => f.PAYER_ID == pid && f.FECHAC.Value.Month == DateTime.Now.Month && f.FECHAC.Value.Year == DateTime.Now.Year && f.DOCUMENTO_REF == null).ToList(); var _xff = _xres.FECHAF.AddDays(1); var fs = db.DOCUMENTOes.Where(f => f.PAYER_ID == pid && f.VKORG == vkorg && f.PAYER_EMAIL == _correo && f.FECHAC >= _xres.FECHAI && f.FECHAC < _xff && f.DOCUMENTO_REF == null).ToList(); //LEJ 20.07.2018----- var dOCUMENTOes = fs; var lstD = new List <DOCUMENTO>();//--- ////DOCUMENTOA dz = null;//--- for (int y = 0; y < dOCUMENTOes.Count; y++) { PorEnviar pe = new PorEnviar(); if (pe.seEnvia(dOCUMENTOes[y], db, log)) { lstD.Add(dOCUMENTOes[y]); } //////recupero el numdoc ////var de = fs[i].NUM_DOC; //////sino ecuentra una coincidencia con el criterio discriminatorio se agregan o no a la lista ////dz = db.DOCUMENTOAs.Where(x => x.NUM_DOC == de && x.CLASE != "OTR").FirstOrDefault(); ////if (dz == null || dz != null) ////{ //// if (dOCUMENTOes[y].TSOL.NEGO == true)//para el ultimo filtro //// { //// string estatus = ""; //// if (dOCUMENTOes[y].ESTATUS != null) { estatus += dOCUMENTOes[y].ESTATUS; } else { estatus += " "; } //// if (dOCUMENTOes[y].ESTATUS_C != null) { estatus += dOCUMENTOes[y].ESTATUS_C; } else { estatus += " "; } //// if (dOCUMENTOes[y].ESTATUS_SAP != null) { estatus += dOCUMENTOes[y].ESTATUS_SAP; } else { estatus += " "; } //// if (dOCUMENTOes[y].ESTATUS_WF != null) { estatus += dOCUMENTOes[y].ESTATUS_WF; } else { estatus += " "; } //// if (dOCUMENTOes[y].FLUJOes.Count > 0) //// { //// estatus += dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().WORKFP.ACCION.TIPO; //// } //// else //// { //// estatus += " "; //// } //// if (dOCUMENTOes[y].TSOL.PADRE) { estatus += "P"; } else { estatus += " "; } //// if (dOCUMENTOes[y].FLUJOes.Where(x => x.ESTATUS == "R").ToList().Count > 0) //// { //// estatus += dOCUMENTOes[y].FLUJOes.Where(x => x.ESTATUS == "R").OrderByDescending(a => a.POS).FirstOrDefault().USUARIO.PUESTO_ID; //// } //// else //// { //// estatus += " "; //// } //// if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[P][R]..")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[R]..[8]")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "[P]..[A]...")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "..[P][A]...")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "..[E][A]...")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[A].[P].")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[A]...")) //// lstD.Add(dOCUMENTOes[y]); //// else if (System.Text.RegularExpressions.Regex.IsMatch(estatus, "...[T]...")) //// lstD.Add(dOCUMENTOes[y]); //// //if (dOCUMENTOes[y].ESTATUS_WF == "P")//LEJ 20.07.2018---------------------------I //// //{ //// // if (dOCUMENTOes[y].FLUJOes.Count > 0) //// // { //// // if (dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().USUARIO != null) //// // { //// // //(Pendiente Validación TS) //// // if (dOCUMENTOes[y].FLUJOes.OrderByDescending(a => a.POS).FirstOrDefault().USUARIO.PUESTO_ID == 8) //// // { //// // lstD.Add(dOCUMENTOes[y]); //// // } //// // } //// // } //// //} //// //else if (dOCUMENTOes[y].ESTATUS_WF == "R")//(Pendiente Corrección) //// //{ //// // if (dOCUMENTOes[y].FLUJOes.Count > 0) //// // { //// // lstD.Add(dOCUMENTOes[y]); //// // } //// //} //// //else if (dOCUMENTOes[y].ESTATUS_WF == "T")//(Pendiente Taxeo) //// //{ //// // if (dOCUMENTOes[y].TSOL_ID == "NCIA") //// // { //// // if (dOCUMENTOes[y].PAIS_ID == "CO")//(sólo Colombia) //// // { //// // lstD.Add(dOCUMENTOes[y]); //// // } //// // } //// //} //// //else if (dOCUMENTOes[y].ESTATUS_WF == "A")//(Por Contabilizar) //// //{ //// // if (dOCUMENTOes[y].ESTATUS == "P") //// // { //// // lstD.Add(dOCUMENTOes[y]); //// // } //// //} //// //else if (dOCUMENTOes[y].ESTATUS_SAP == "E")//Error en SAP //// //{ //// // lstD.Add(dOCUMENTOes[y]); //// //} //// //else if (dOCUMENTOes[y].ESTATUS_SAP == "X")//Succes en SAP //// //{ //// // lstD.Add(dOCUMENTOes[y]); //// //} //// } //// //LEJ 20.07.2018----------------------------------------------------------------T ////} } //---- if (arrAprNum[0].Trim() == "DeAcuerdo" || arrAprNum[0].Trim() == "De Acuerdo") { for (int x = 0; x < lstD.Count; x++) { FLUJNEGO fn = new FLUJNEGO(); fn.NUM_DOC = lstD[x].NUM_DOC; DateTime fecham = mm.Date; fn.FECHAM = fecham; fn.FECHAC = lstD[x].FECHAC; fn.KUNNR = arrPiNN[0]; var cm = arrAprNum[0].ToString(); Comentario com = new Comentario(); cm += com.getComment(mm.Body, mm.ContentType); ////cm += " - " + mm.Body; var cpos = db.FLUJNEGOes.Where(h => h.NUM_DOC.Equals(fn.NUM_DOC)).ToList().Count; fn.POS = cpos + 1; fn.COMENTARIO = cm; db.FLUJNEGOes.Add(fn); db.SaveChanges(); } } else if (arrAprNum[0].Trim() == "TengoObservaciones" || arrAprNum[0].Trim() == "Tengo Observaciones") { for (int x = 0; x < lstD.Count; x++) { FLUJNEGO fn = new FLUJNEGO(); fn.NUM_DOC = lstD[x].NUM_DOC; fn.FECHAC = lstD[x].FECHAC; DateTime fecham = mm.Date; fn.FECHAM = fecham; fn.KUNNR = arrPiNN[0]; var cm = arrAprNum[0] + " "; Comentario com = new Comentario(); cm += com.getComment(mm.Body, mm.ContentType); ////cm += " - " + mm.Body; var cpos = db.FLUJNEGOes.Where(h => h.NUM_DOC.Equals(fn.NUM_DOC)).ToList().Count; fn.POS = cpos + 1; fn.COMENTARIO = cm; db.FLUJNEGOes.Add(fn); db.SaveChanges(); } } else { //Hubo algun error break; } } //para marcar el mensaje como leido ic.AddFlags(Flags.Seen, mm); } } catch (Exception ex) { log.escribeLog("ERROR - " + ex.InnerException.ToString()); ////throw new Exception(ex.InnerException.ToString()); } finally { ic.Dispose(); } }
public List <string> leerArchivos() { APPSETTING lg = db.APPSETTINGs.Where(x => x.NOMBRE == "logPath" && x.ACTIVO).FirstOrDefault(); log.ruta = lg.VALUE + "ConexionSAP_"; log.escribeLog("-----------------------------------------------------------------------START"); List <string> errores = new List <string>(); APPSETTING sett = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("filePath") && x.ACTIVO).FirstOrDefault();//RSG 30.07.2018 if (sett == null) { errores.Add("Falta configuración de PATH!"); } //var cadena = ConfigurationManager.AppSettings["url"]; var cadena = sett.VALUE; List <doc> lstd = new List <doc>(); List <string> archivos2 = new List <string>(); try { string[] archivos = Directory.GetFiles(cadena += sap += datasync, "*.txt", SearchOption.AllDirectories); Console.WriteLine(archivos.Length + " _1");//RSG 30.07.2018 log.escribeLog("Archivos en carpeta: " + archivos.Length); //en este for sabre cuales archivos usar for (int i = 0; i < archivos.Length; i++) { //separo por carpetas string[] varx = archivos[i].Split('\\'); //separo especificamente el nombre para saber si es BUDG O LOG string[] varNA = varx[varx.Length - 1].Split('_'); if (varNA[1] == "LOG") { archivos2.Add(archivos[i]); } } Console.WriteLine(archivos2.Count + " _2");//RSG 30.07.2018 log.escribeLog("Archivos tipo LOG: " + archivos2.Count); //en este for armo un objeto para posterior manipular hacia la bd for (int i = 0; i < archivos2.Count; i++) { //Leo todas las lineas del archivo //string[] readText = File.ReadAllLines(archivos2[i]); //foreach (var item in readText) int cont = 1; foreach (var item in File.ReadLines(archivos2[i])) { doc d = new doc(); string[] val = item.Split('|'); if (val != null) { if (item != "") { if (val.Length < 2) { log.escribeLog("Archivo inválido" + archivos2[i]); errores.Add("Archivo inválido" + archivos2[i]); } else { if (val[1] == "Error" || val[1] == "Error - Reprocess") { d.numero_TAT = val[0]; d.Mensaje = val[1]; //d.Cuenta_cargo = Convert.ToInt64(val[5]); //d.Cuenta_abono = Convert.ToInt64(val[6]); log.escribeLog("(E) - NUM_DOC:" + val[0] + " -- MENSAJE: " + val[1]); } else { log.escribeLog("(S) - NUM_DOC:" + val[0] + " -- MENSAJE: " + val[1] + " -- NUM_SAP: " + val[2]); d.numero_TAT = val[0]; d.Mensaje = val[1]; d.Num_doc_SAP = decimal.Parse(val[2]); d.Sociedad = val[3]; d.Año = int.Parse(val[4]); d.Cuenta_cargo = Convert.ToInt64(val[5]); d.Cuenta_abono = Convert.ToInt64(val[6]); try { d.blart = val[7]; d.kunnr = val[8]; d.desc = val[9]; d.importe = decimal.Parse(val[10]); d.fechac = decimal.Parse(val[11]); } catch { } } d.pos = cont; d.file = archivos2[i]; lstd.Add(d); } } } cont++; } } foreach (doc d in lstd) { if (d.pos == lstd.Where(x => x.file == d.file).OrderByDescending(x => x.pos).First().pos) { d.last = true; } else { d.last = false; } } log.escribeLog("-------------------------------"); log.escribeLog("DOCS: " + lstd.Count + "ARCHIVOS: " + archivos2.Count); log.escribeLog("-------------------------------ValidarBD"); validarBd(lstd, archivos2); } catch (Exception ex) { log.escribeLog("ERROR LOG: " + ex.Message); errores.Add(ex.Message); throw new Exception(ex.Message); } return(errores); }
public List <string> mandarCorreo(string pay, string vkorg, string vtweg, string spart, string correo, DateTime fi, DateTime ff, DateTime fn) { List <string> errores = new List <string>(); try { //LEJ 20.07.2018------------------------------ //Validar si hay coincidencias en el filtro ////var dOCUMENTOes = db.DOCUMENTOes.Where(x => x.PAYER_ID == pay && x.VKORG == vkorg && x.VTWEG == vtweg && x.SPART == spart && x.PAYER_EMAIL == correo && ((x.FECHAC.Value.Day >= fi.Day && x.FECHAC.Value.Day <= ff.Day) && x.FECHAC.Value.Month == ff.Month && x.FECHAC.Value.Year == ff.Year)).Include(d => d.CLIENTE).Include(d => d.PAI).Include(d => d.SOCIEDAD).Include(d => d.TALL).Include(d => d.TSOL).Include(d => d.USUARIO).ToList(); var dOCUMENTOes = db.DOCUMENTOes.Where(x => x.PAYER_ID == pay && x.VKORG == vkorg && x.VTWEG == vtweg && x.SPART == spart && x.PAYER_EMAIL == correo && (x.FECHAC >= fi && x.FECHAC <= ff)).Include(d => d.CLIENTE).Include(d => d.PAI).Include(d => d.SOCIEDAD).Include(d => d.TALL).Include(d => d.TSOL).Include(d => d.USUARIO).ToList(); ////DOCUMENTOA dz = null; //Para ver si encuentra un match ////int xv = 0; int xxv = 0; for (int i = 0; i < dOCUMENTOes.Count; i++) { PorEnviar pe = new PorEnviar(); if (pe.seEnvia(dOCUMENTOes[i], db, log)) { xxv++; } } //si encontro entra. if (xxv > 0)//LEJ 20.07.2018----- { ////string mailt = ConfigurationManager.AppSettings["mailt"]; APPSETTING mailC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("mail") && x.ACTIVO).FirstOrDefault(); if (mailC == null) { Console.Write("Falta configuración de tipo de email!"); errores.Add("Falta configuración de tipo de email!"); return(errores); } //RSG 30.07.2018 string mailt = mailC.VALUE; //RSG 30.07.2018 CONMAIL conmail = db.CONMAILs.Find(mailt); //correo = correoA; if (string.IsNullOrEmpty(correoA)) { correoA = correo; } if (conmail != null) { ////MailMessage mail = new MailMessage(conmail.MAIL, "*****@*****.**"); MailMessage mail = new MailMessage(conmail.MAIL, correoA); log.escribeLog("MAIL TO: TST"); log.escribeLog("MAIL TO: " + correo); SmtpClient client = new SmtpClient(); if (conmail.SSL) { client.Port = (int)conmail.PORT; client.EnableSsl = conmail.SSL; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } else { client.UseDefaultCredentials = true; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = conmail.HOST; try { APPSETTING urlC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("url") && x.ACTIVO).FirstOrDefault(); ////string cadUrl = System.Configuration.ConfigurationManager.AppSettings["url"]; if (urlC == null) { Console.Write("Falta configuración de URL!"); errores.Add("Falta configuración!"); return(errores); } //RSG 30.07.2018 string cadUrl = urlC.VALUE; //RSG 30.07.2018 cadUrl += "Negociaciones/Index/"; string UrlDirectory = cadUrl; ////UrlDirectory += "?pay=" + pay + "&vkorg=" + vkorg + "&vtweg=" + vtweg + "&spart=" + spart + "&correo=" + correo + "&fi=" + fi.ToShortDateString() + "&ff=" + ff.ToShortDateString(); UrlDirectory += "?pay=" + pay + "&vkorg=" + vkorg + "&vtweg=" + vtweg + "&spart=" + spart + "&correo=" + correo + "&fn=" + fn.ToShortDateString(); log.escribeLog("url: " + UrlDirectory); WebRequest myRequest = WebRequest.Create(UrlDirectory); myRequest.Method = "GET"; WebResponse myResponse = myRequest.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); string result = sr.ReadToEnd(); sr.Close(); myResponse.Close(); mail.IsBodyHtml = true; mail.Body = result; mail.Subject = "TAT Kellogg's - " + DateTime.Now.ToShortDateString(); client.Send(mail); log.escribeLog("MAIL ENVIADO a " + correoA); } catch (Exception ex) { log.escribeLog("ENVIADO: NO"); errores.Add("No se ha podido enviar el email"); log.escribeLog("ERROR: " + ex.InnerException); ////throw new Exception("No se ha podido enviar el email", ex.InnerException); return(errores); } } } } catch (Exception exe) { errores.Add(exe.ToString()); } return(errores); }
public List <string> armarCorreos() { List <string> errores = new List <string>(); try { Console.Write("Escriba el correo: "); correoA = Console.ReadLine(); APPSETTING lg = db.APPSETTINGs.Where(x => x.NOMBRE == "logPath" && x.ACTIVO).FirstOrDefault(); log.ruta = lg.VALUE + "Nego_"; log.escribeLog("-----------------------------------------------------------------------START"); var _hoy = DateTime.Now; ////var _neg = db.NEGOCIACIONs.Where(x => x.FECHAN.Day == _hoy.Day && x.FECHAN.Month == _hoy.Month && x.FECHAN.Year == _hoy.Year && x.ACTIVO == true).FirstOrDefault(); List <NEGOCIACION> nn = db.NEGOCIACIONs.Where(x => x.ID == 1 && x.ACTIVO).ToList(); var _neg = nn.FirstOrDefault(x => x.FECHAN == _hoy.Date && x.ACTIVO); if (_neg != null) { ////Realizo una consulta por medio de la coincidencia entre fechas ////var fs = db.DOCUMENTOes.Where(f => (f.FECHAC.Value.Day >= _neg.FECHAI.Day && f.FECHAC.Value.Day <= _neg.FECHAF.Day) && f.FECHAC.Value.Month == _neg.FECHAF.Month && f.FECHAC.Value.Year == _neg.FECHAF.Year).ToList(); var fs = db.DOCUMENTOes.Where(f => (f.FECHAC >= _neg.FECHAI && f.FECHAC <= _neg.FECHAF) && f.DOCUMENTOAs.Any()).ToList(); var fs3 = fs.DistinctBy(q => new { q.PAYER_ID, q.PAYER_EMAIL }).ToList(); for (int i = 0; i < fs3.Count; i++) { ////if (fs3[i].PAYER_ID == "0000400564") //// fs3[i].PAYER_ID = "0000400564"; if (fs3[i].PAYER_ID != null && fs3[i].PAYER_EMAIL != null) { log.escribeLog("PAYER: " + fs3[i].PAYER_ID); log.escribeLog("PAYER MAIL: " + fs3[i].PAYER_EMAIL); ////var cco = db.CONTACTOCs.Where(x => x.KUNNR == fs3[i].PAYER_ID && x.EMAIL == fs3[i].PAYER_EMAIL).Select(x=>x).ToList(); var cco = (from c in db.CONTACTOCs select new { c.KUNNR, c.EMAIL, CARTA = c.CARTA == null ? false : (bool)c.CARTA }).ToList(); var co = cco.FirstOrDefault(x => x.KUNNR == fs3[i].PAYER_ID && x.EMAIL == fs3[i].PAYER_EMAIL); if (co == null) { var de = fs3[i].NUM_DOC; if (fs3[i].DOCUMENTOAs.Count > 0) { var dsa = fs3[i].DOCUMENTOAs.FirstOrDefault(x => x.NUM_DOC == de && x.CLASE == "OTR"); if (dsa == null) { ////bool ban = true; ////if (ban) errores.AddRange(mandarCorreo(fs3[i].PAYER_ID, fs3[i].VKORG, fs3[i].VTWEG, fs3[i].SPART, fs3[i].PAYER_EMAIL, _neg.FECHAI, _neg.FECHAF, _neg.FECHAN)); } } } else { ////if (co.CARTA == null) //// co.CARTA = true; if (!co.CARTA) { var de = fs3[i].NUM_DOC; if (fs3[i].DOCUMENTOAs.Count > 0) { var dsa = fs3[i].DOCUMENTOAs.FirstOrDefault(x => x.NUM_DOC == de && x.CLASE == "OTR"); if (dsa == null) { ////bool ban = true; ////if (ban) errores.AddRange(mandarCorreo(fs3[i].PAYER_ID, fs3[i].VKORG, fs3[i].VTWEG, fs3[i].SPART, fs3[i].PAYER_EMAIL, _neg.FECHAI, _neg.FECHAF, _neg.FECHAN)); } } } } } } } } catch (Exception exe) { errores.Add(exe.ToString()); } return(errores); }
public void enviarCorreo(decimal nd, int c, int pos) { try { ////var workflow = db.FLUJOes.Where(a => a.NUM_DOC.Equals(nd) && a.POS == pos).OrderByDescending(a => a.POS).FirstOrDefault(); var workflow = db.FLUJOes.Where(a => a.NUM_DOC.Equals(nd)).OrderByDescending(a => a.POS).FirstOrDefault(); APPSETTING mailtC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("mail") && x.ACTIVO).FirstOrDefault(); string mailt = mailtC.VALUE; APPSETTING mailTestC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("mailTest") && x.ACTIVO).FirstOrDefault(); string mtest = mailTestC.VALUE; string mailTo = ""; if (mtest == "X") { mailTo = "*****@*****.**"; } else { mailTo = workflow.USUARIO.EMAIL; } CONMAIL conmail = db.CONMAILs.Find(mailt); if (conmail != null) { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(conmail.MAIL, mailTo); SmtpClient client = new SmtpClient(); if (conmail.SSL) { client.Port = (int)conmail.PORT; client.EnableSsl = conmail.SSL; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } else { client.UseDefaultCredentials = true; client.Credentials = new NetworkCredential(conmail.MAIL, conmail.PASS); } client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = conmail.HOST; APPSETTING urlC = db.APPSETTINGs.Where(x => x.NOMBRE.Equals("url") && x.ACTIVO).FirstOrDefault(); string cadUrl = urlC.VALUE; string UrlDirectory = ""; if (c == 1) { UrlDirectory = cadUrl + "Correos/Index/" + nd + "?spras=" + workflow.USUARIO.SPRAS_ID; ////mail.Subject = "Aprobado"; mail.Subject = "A" + nd + "-" + DateTime.Now.ToShortTimeString(); } if (c == 3) { UrlDirectory = cadUrl + "Correos/Details/" + nd + "?spras=" + workflow.USUARIO.SPRAS_ID; ////mail.Subject = "Rechazado"; mail.Subject = "R" + nd + "-" + DateTime.Now.ToShortTimeString(); } WebRequest myRequest = WebRequest.Create(UrlDirectory); myRequest.Method = "GET"; myRequest.ContentType = "application/x-www-form-urlencoded"; // Set credentials to use for this request. myRequest.Credentials = CredentialCache.DefaultCredentials; WebResponse myResponse = myRequest.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); string result = sr.ReadToEnd(); sr.Close(); myResponse.Close(); mail.AlternateViews.Add(Mail_Body(result, "MX"));//B20180803 MGC Correos mail.IsBodyHtml = true; //mail.Body = result; client.Send(mail); } } catch (Exception ex) { log.escribeLog("ERROR - " + ex.InnerException.ToString()); ////throw new Exception("No se ha podido enviar el email", ex.InnerException); } }