public static string EnviarCorreoRecurso(SqlTransaction tr, string sTipo, string strDatosTarea, string sEtp, string sIni, string sFin, string sObs, string sMensGen) { string sResul = ""; ArrayList aListCorreo = new ArrayList(); StringBuilder sbuilder = new StringBuilder(); string sAsunto = "", sTexto = "", sTO = "";//, sCodRed; try { if (sTipo == "I") { sAsunto = "Asignación de profesional a tarea."; sbuilder.Append(@"<BR>SUPER le informa de su asignación a la siguiente tarea:<BR><BR>"); } else { sAsunto = "Modificación de profesional de recurso a tarea."; sbuilder.Append(@"<BR>SUPER le informa de la modificación de su asignación a la siguiente tarea:<BR><BR>"); } string[] aDatosTarea = Regex.Split(strDatosTarea, "##"); //aDatosTarea[1] = hdnIdTarea //aDatosTarea[2] = idRecurso //aDatosTarea[10] = txtDesTarea //aDatosTarea[11] = txtNumPE //aDatosTarea[12] = txtPE //aDatosTarea[13] = txtPT //aDatosTarea[14] = txtFase //aDatosTarea[15] = txtActividad //aDatosTarea[16] = txtCodPST //aDatosTarea[17] = txtDesPST //aDatosTarea[18] = txtOTL //aDatosTarea[19] = txtIncidencia sbuilder.Append("<label style='width:120px'>Proyecto económico: </label>" + aDatosTarea[11] + @" - " + Utilidades.unescape(aDatosTarea[12]) + "<br>"); sbuilder.Append("<label style='width:120px'>Proyecto Técnico: </label>" + Utilidades.unescape(aDatosTarea[13]) + "<br>"); if (aDatosTarea[14] != "") { sbuilder.Append("<label style='width:120px'>Fase: </label>" + Utilidades.unescape(aDatosTarea[14]) + "<br>"); } if (aDatosTarea[15] != "") { sbuilder.Append("<label style='width:120px'>Actividad: </label>" + Utilidades.unescape(aDatosTarea[15]) + "<br>"); } sbuilder.Append("<label style='width:120px'>Tarea: </label><b>" + aDatosTarea[1] + @" - " + Utilidades.unescape(aDatosTarea[10]) + "</b><br><br>"); sbuilder.Append("<b>Información de la tarea:</b><br><br>"); if (aDatosTarea[16] != "") { sbuilder.Append("<label style='width:120px'>OTC: </label>" + Utilidades.unescape(aDatosTarea[16]) + " - " + Utilidades.unescape(aDatosTarea[17]) + "<br>"); } if (aDatosTarea[18] != "") { sbuilder.Append("<label style='width:120px'>OTL: </label>" + Utilidades.unescape(aDatosTarea[18]) + "<br>"); } if (aDatosTarea[19] != "") { sbuilder.Append("<label style='width:120px'>Incidencia/Petición: </label>" + Utilidades.unescape(aDatosTarea[19]) + "<br>"); } if ((sEtp == null) || (sEtp == "")) { sEtp = "0"; } sbuilder.Append("<label style='width:120px'>Esfuerzo: </label>" + sEtp + " horas<br>"); if (sIni == "") { sbuilder.Append("<label style='width:120px'>F/Inicio: </label> <br>"); } else { sbuilder.Append("<label style='width:120px'>F/Inicio: </label>" + sIni.Substring(0, 10) + "<br>"); } if (sFin == "") { sbuilder.Append("<label style='width:120px'>F/Fin: </label> <br>"); } else { sbuilder.Append("<label style='width:120px'>F/Fin: </label>" + sFin.Substring(0, 10) + "<br>"); } sbuilder.Append("<label style='width:120px'>Indicaciones generales: </label>" + Utilidades.unescape(sMensGen) + "<br>"); sbuilder.Append("<label style='width:120px'>Indicaciones particulares: </label>" + Utilidades.unescape(sObs) + "<br>"); //sTO = Utilidades.unescape(aDatosTarea[2]); //sCodRed = Recurso.CodigoRed(int.Parse(sTO)); //sTO = sCodRed.Replace(";", @"/"); //if (System.Configuration.ConfigurationManager.ConnectionStrings["ENTORNO"].ToString() == "D") //{ // sTO = HttpContext.Current.Session["IDRED_ENTRADA"].ToString(); // sAsunto += " (" + sCodRed + ")"; //} sTO = SUPER.Capa_Negocio.Recurso.GetDireccionMail(int.Parse(aDatosTarea[2])); sTexto = sbuilder.ToString(); string[] aMail = { sAsunto, sTexto, sTO }; aListCorreo.Add(aMail); Correo.EnviarCorreos(aListCorreo); //Si el correo se ha enviado correctamente, para que no lo vuelva a enviar en el proceso nocturno //lo borro de la tabla de correos. En la tabla de correos se ha metido a través del trigger en la T336_TAREAPSPUSUARIO //Tampoco podemos quitar ese trigger ya que se pueden asignar profesionales a tareas desde otros procesos y/o triggers //Lo comento porque parece que da error de interbloqueo //SUPER.Capa_Datos.USUARIO.BorrarCorreo(tr, int.Parse(aDatosTarea[2]), 1, true, int.Parse(aDatosTarea[1])); sResul = "OK@#@"; } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al enviar correo de asignación de recurso a tarea. strDatosTarea=" + strDatosTarea, ex); } return(sResul); }