private void simpleButton1_Click(object sender, EventArgs e) { var mail = new EnvioMailObject(); if(txtComentario.Text == "") { dxErrorProvider1.SetError(txtComentario,"Debe ingresar un comentario"); } clsInformeComentario comentario = new clsInformeComentario(); comentario.IdInforme = this.Visita.Informvisita.Id; comentario.Usuario = Base.Usuario.UsuarioConectado.Usuario; comentario.Comentario = txtComentario.Text.Trim(); ResultadoTransaccion res = new ResultadoTransaccion(); res = LogicaNegocios.Calendarios.clsCalendarios.AgregarComentarioInformeVisita(comentario); //SI no es vendedor enviar email al vendedor if (Base.Usuario.UsuarioConectado.Usuario.Id != Visita.Vendedor.Id) { mail.EnviarEmailComentarioEnInforme(Visita, comentario, false, null); //Utils.EnvioEmail.EnviarEmailComentarioEnInforme(Visita, comentario, false, null); } else //Si es vendedor enviar email a usuarios que han comentado { mail.EnviarEmailComentarioRespondidoPorVendedor(Visita, comentario); //Utils.EnvioEmail.EnviarEmailComentarioRespondidoPorVendedor(Visita, comentario); } if (res.Estado == Entidades.Enums.Enums.EstadoTransaccion.Rechazada) { MessageBox.Show(res.Descripcion, "Comentarios", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show("Comentario guardado exitosamente.", "Comentarios", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); }
public static ResultadoTransaccion AgregarComentarioInformeVisita(clsInformeComentario comentario) { return AccesoDatos.Calendarios.clsCalendarioADO.AgregarComentarioInformeVisita(comentario); }
public static IList<clsInformeComentario> ListarComentariosVisita(Int64 IdVisita) { SqlDataReader dreader = null; clsInformeComentario comentario = null; IList<clsInformeComentario> listcomentarios = new List<clsInformeComentario>(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_C_CALENDARIO_VISITA_INFORME_COMENTARIO"); objParams[0].Value = IdVisita; SqlCommand command = new SqlCommand("SP_C_CALENDARIO_VISITA_INFORME_COMENTARIO", BaseDatos.Conexion()); command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; dreader = command.ExecuteReader(); while (dreader.Read()) { comentario = new clsInformeComentario(); comentario.Id = Convert.ToInt64(dreader["Id"]); comentario.IdInforme = Convert.ToInt64(dreader["IdInforme"]); comentario.Usuario = AccesoDatos.Usuarios.clsUsuarioADO.ObtenerUsuarioPorId(Convert.ToInt16(dreader["IdUsuario"])); //comentario.Usuario.Id = Convert.ToInt64(dreader["IdUsuario"]); //comentario.Usuario.Nombre = dreader["Nombres"].ToString(); //comentario.Usuario.ApellidoPaterno = dreader["ApellidoPaterno"].ToString(); //comentario.Usuario.ApellidoMaterno = dreader["ApellidoMaterno"].ToString(); comentario.Comentario = dreader["Comentario"].ToString(); comentario.FechaComentario = (DateTime)dreader["FechaComentario"]; listcomentarios.Add(comentario); } } catch (Exception ex) { Base.Log.Log.EscribirLog(ex.Message); } finally { BaseDatos.CerrarConexion(); } return listcomentarios; }
public static ResultadoTransaccion AgregarComentarioInformeVisita(clsInformeComentario comentario) { resTransaccion = new ResultadoTransaccion(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_N_CALENDARIO_VISITA_INFORME_COMENTARIO"); objParams[0].Value = comentario.Usuario.Id; objParams[1].Value = comentario.IdInforme; objParams[2].Value = comentario.Comentario; SqlCommand command = new SqlCommand("SP_N_CALENDARIO_VISITA_INFORME_COMENTARIO", BaseDatos.Conexion()); command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; comentario.Id = Convert.ToInt64(command.ExecuteScalar()); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(comentario.GetType().ToString(), comentario.Id, Enums.TipoActividadUsuario.Creo, Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; Log.EscribirLog(ex.Message); } return resTransaccion; }
public ResultadoTransaccion EnviarEmailVendedorRespondeComentarioEnInforme(clsVisita visita, clsInformeComentario comentario, bool EsVendedor, clsUsuario usuario) { string EmailAviso = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailComentarioInformeVisita"); string espectativas = ""; string EmailBody = ""; string productos = ""; string traficos = ""; string asistentescliente = ""; string asistentescraft = ""; ResultadoTransaccion res = new ResultadoTransaccion(); try { foreach (var producto in visita.Informvisita.Productos) { productos += producto.Producto.Nombre + " / "; } foreach (var trafico in visita.Informvisita.Traficos) { traficos += trafico.Trafico.Nombre + " / "; } foreach (var asistente in visita.AsistentesCraft) { if (asistente.Confirmo == Enums.VisitaEstadoAsistente.ConfirmoAsistencia) asistentescraft += asistente.Usuario.NombreCompleto + "\n"; } foreach (var asistente in visita.AsistentesCliente) { asistentescliente += asistente.Contacto.NombreCompleto + "\n"; } StringBuilder sb = new StringBuilder(EmailAviso); sb.Replace("[USUARIO]", usuario.NombreCompleto); sb.Replace("[USUARIOCOMENTADOR]", visita.Vendedor.NombreCompleto); if (visita.Cliente.NombreFantasia.Trim() != "") sb.Replace("[CLIENTE]", visita.Cliente.NombreFantasia); else sb.Replace("[CLIENTE]", visita.Cliente.NombreCompañia); sb.Replace("[COMENTARIO]", comentario.Comentario); sb.Replace("[ASUNTO]", visita.Asunto); sb.Replace("[UBICACION]", visita.Ubicacion); sb.Replace("[INICIO]", visita.FechaHoraComienzo.ToString()); sb.Replace("[TERMINO]", visita.FechaHoraTermino.ToString()); sb.Replace("[ASISTENTESCLIENTE]", asistentescliente); sb.Replace("[ASISTENTESCRAFT]", asistentescraft); sb.Replace("[PRODUCTOS]", productos); sb.Replace("[TRAFICOS]", traficos); if (visita.Informvisita.FollowUp.FechaFollowUp != null) sb.Replace("[FOLLOWUP]", visita.Informvisita.FollowUp.FechaFollowUp.Value.ToShortDateString()); if (visita.Informvisita.OtroTema) sb.Replace("[OTROS]", "SI"); else sb.Replace("[OTROS]", "NO"); if (visita.Informvisita.TieneEspectativaCierre) espectativas = " SI (" + visita.Informvisita.EspectativaCierre + "%)"; else espectativas = " NO "; sb.Replace("[ESPECTATIVAS]", espectativas); sb.Replace("[RESUMEN]", visita.Informvisita.ResumenVisita); sb.Replace("[SALTO]", "\n"); EmailBody = sb.ToString(); string asunto = "Comentario a Informe de Visita: " + visita.Cliente.NombreFantasia; if (!EsVendedor) { EnviarEmail(visita.Vendedor.Email, asunto, EmailBody); } else { EnviarEmail(usuario.Email, asunto, EmailBody); } LogEnviarEmail(Enums.VisitaTipoEmail.ComentarioAInformeVisita, visita, EmailBody, asunto); res.Estado = Enums.EstadoTransaccion.Aceptada; } catch (Exception ex) { Log.EscribirLog(ex.Message); } return res; }
public ResultadoTransaccion EnviarEmailComentarioRespondidoPorVendedor(clsVisita visita, clsInformeComentario comentario) { IList<clsInformeComentario> lista = new List<clsInformeComentario>(); ResultadoTransaccion res = new ResultadoTransaccion(); try { lista = ProyectoCraft.LogicaNegocios.Calendarios.clsCalendarios.ListarComentariosVisita( visita.Informvisita.Id); foreach (var comment in lista) { if (comment.Usuario.Id != visita.Vendedor.Id) { EnviarEmailVendedorRespondeComentarioEnInforme(visita, comentario, true, comment.Usuario); } } //Enviar comentario a customers foreach (var producto in visita.Cliente.ProductosPreferidos) { if (producto.Customer != null) { EnviarEmailVendedorRespondeComentarioEnInforme(visita, comentario, false, producto.Customer); } } } catch (Exception ex) { res.Descripcion = ex.Message; res.Estado = Enums.EstadoTransaccion.Rechazada; } return res; }