コード例 #1
0
ファイル: frmComentarioVisita.cs プロジェクト: TarekMulla/cra
        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();
        }
コード例 #2
0
ファイル: clsCalendarios.cs プロジェクト: TarekMulla/cra
 public static ResultadoTransaccion AgregarComentarioInformeVisita(clsInformeComentario comentario)
 {
     return AccesoDatos.Calendarios.clsCalendarioADO.AgregarComentarioInformeVisita(comentario);
 }
コード例 #3
0
ファイル: clsCalendarioADO.cs プロジェクト: TarekMulla/cra
        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;
        }
コード例 #4
0
ファイル: clsCalendarioADO.cs プロジェクト: TarekMulla/cra
        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;
        }
コード例 #5
0
ファイル: EnvioMailObject.cs プロジェクト: TarekMulla/cra
        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;
        }
コード例 #6
0
ファイル: EnvioMailObject.cs プロジェクト: TarekMulla/cra
        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;
        }