public static ResultadoTransaccion GuardarInformeVisita(clsVisitaInforme informe) { if (informe.IsNew) return AccesoDatos.Calendarios.clsCalendarioADO.GuardarInformeVisita(informe); else return AccesoDatos.Calendarios.clsCalendarioADO.ActualizarInformeVisita(informe); }
public static ResultadoTransaccion GuardarInformeVisita(clsVisitaInforme informe) { if (informe.IsNew) { return(AccesoDatos.Calendarios.clsCalendarioADO.GuardarInformeVisita(informe)); } else { return(AccesoDatos.Calendarios.clsCalendarioADO.ActualizarInformeVisita(informe)); } }
/// <summary> /// Guarda Borrador /// </summary> private void MenuGuardar_Click(object sender, EventArgs e) { var mail = new EnvioMailObject(); if (!ValidarFormulario()) { return; } ResultadoTransaccion resultado = GuardarInformeVisita(false); if (resultado.Estado == Enums.EstadoTransaccion.Aceptada) { clsVisitaInforme informe = (clsVisitaInforme)resultado.ObjetoTransaccion; if (Visita.EstadoBD == Enums.VisitaEstado.No_Realizada) { Visita.EstadoBD = Enums.VisitaEstado.Realizada_Con_Informe_Fuera_De_Plazo; } else { Visita.EstadoBD = Enums.VisitaEstado.Realizada_Con_Informe; } LogicaNegocios.Calendarios.clsCalendarios.GuardarVisita(Visita); Visita.Informvisita = new clsVisitaInforme(); Visita.Informvisita = informe; mail.EnviarEmailInformeVisita(informe, Visita); //Utils.EnvioEmail.EnviarEmailInformeVisita(informe, Visita); EnviarEmailRequiereRespuesta(); MessageBox.Show("El Informe a sido guardado exitosamente", "Informe de visita", MessageBoxButtons.OK, MessageBoxIcon.Information); Instancia = null; this.Close(); } else { MessageBox.Show(resultado.Descripcion, "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static IList <clsInformeRespuestaUsuario> ListarUsuariosParaRespuestaInforme(clsVisitaInforme informe) { return(AccesoDatos.Calendarios.clsCalendarioADO.ListarUsuariosParaRespuestaInforme(informe)); }
private void DominioAVista(clsVisitaInforme informe) { if (informe.EspectativaCierre == -1) { txtExpectativaCierre.Text = ""; } else { txtExpectativaCierre.Text = informe.EspectativaCierre.ToString(); } txtResumen.Text = informe.ResumenVisita; chkOtroTema.Checked = informe.OtroTema; chkTieneEspectativa.Checked = informe.TieneEspectativaCierre; for (int i = 0; i <= lstProductos.Items.Count - 1; i++) { clsTipoProducto producto = (clsTipoProducto)lstProductos.Items[i]; foreach (clsVisitaInformeProductos productoInforme in informe.Productos) { if (producto.Id == productoInforme.Producto.Id) { lstProductos.SetItemChecked(i, true); break; } } } for (int i = 0; i <= lstTraficos.Items.Count - 1; i++) { Entidades.Ventas.Traficos.clsTrafico trafico = (Entidades.Ventas.Traficos.clsTrafico)lstTraficos.Items[i]; foreach (clsVisitaInformeTrafico traficoInforme in informe.Traficos) { if (trafico.Id == traficoInforme.Trafico.Id) { lstTraficos.SetItemChecked(i, true); break; } } } if (informe.FollowUp != null) { if (informe.FollowUp.FechaFollowUp.HasValue) { txtFollowUp.Text = informe.FollowUp.FechaFollowUp.Value.ToShortDateString(); } if (informe.FollowUp.TipoActividad == null) { cboTipoActividad.SelectedIndex = 0; } else { cboTipoActividad.SelectedItem = informe.FollowUp.TipoActividad; } txtDescripcionFollowUp.Text = informe.FollowUp.Descripcion; } //for (int i = 0; i <= lstTraficos.Items.Count - 1; i++) //{ // clsTipoProducto producto = (clsTipoProducto)lstProductos.Items[i]; // foreach (clsVisitaInformeProductos productoInforme in informe.Productos) // { // if (producto.Id == productoInforme.Id) // { // lstProductos.SetItemChecked(i, true); // break; // } // } //} }
private void DominioAVista(clsVisitaInforme informe) { if (informe.EspectativaCierre == -1) txtExpectativaCierre.Text = ""; else txtExpectativaCierre.Text = informe.EspectativaCierre.ToString(); txtResumen.Text = informe.ResumenVisita; chkOtroTema.Checked = informe.OtroTema; chkTieneEspectativa.Checked = informe.TieneEspectativaCierre; for (int i = 0; i <= lstProductos.Items.Count - 1; i++) { clsTipoProducto producto = (clsTipoProducto)lstProductos.Items[i]; foreach (clsVisitaInformeProductos productoInforme in informe.Productos) { if (producto.Id == productoInforme.Producto.Id) { lstProductos.SetItemChecked(i, true); break; } } } for (int i = 0; i <= lstTraficos.Items.Count - 1; i++) { Entidades.Ventas.Traficos.clsTrafico trafico = (Entidades.Ventas.Traficos.clsTrafico)lstTraficos.Items[i]; foreach (clsVisitaInformeTrafico traficoInforme in informe.Traficos) { if (trafico.Id == traficoInforme.Trafico.Id) { lstTraficos.SetItemChecked(i, true); break; } } } if(informe.FollowUp != null) { if (informe.FollowUp.FechaFollowUp.HasValue) txtFollowUp.Text = informe.FollowUp.FechaFollowUp.Value.ToShortDateString(); if (informe.FollowUp.TipoActividad == null) cboTipoActividad.SelectedIndex = 0; else cboTipoActividad.SelectedItem = informe.FollowUp.TipoActividad; txtDescripcionFollowUp.Text = informe.FollowUp.Descripcion; } //for (int i = 0; i <= lstTraficos.Items.Count - 1; i++) //{ // clsTipoProducto producto = (clsTipoProducto)lstProductos.Items[i]; // foreach (clsVisitaInformeProductos productoInforme in informe.Productos) // { // if (producto.Id == productoInforme.Id) // { // lstProductos.SetItemChecked(i, true); // break; // } // } //} }
public static IList<clsInformeRespuestaUsuario> ListarUsuariosParaRespuestaInforme(clsVisitaInforme informe) { return AccesoDatos.Calendarios.clsCalendarioADO.ListarUsuariosParaRespuestaInforme(informe); }
public static ResultadoTransaccion ObtenerInformeVisitaPor(Int64 IdInforme, Int64 IdVisita) { clsVisitaInforme informe = null; resTransaccion = new ResultadoTransaccion(); SqlConnection cnn = BaseDatos.NuevaConexion(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(cnn, "SP_C_CALENDARIO_VISITA_INFORME"); objParams[0].Value = IdInforme; objParams[1].Value = IdVisita; DataSet ds = SqlHelper.ExecuteDataset(cnn, CommandType.StoredProcedure, "SP_C_CALENDARIO_VISITA_INFORME", objParams); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { informe = new clsVisitaInforme(); informe.Id = Convert.ToInt64(ds.Tables[0].Rows[0]["Id"]); //informe.Visita = ObtenerVisitaPorId(Convert.ToInt64(ds.Tables[0].Rows[0]["IdVisita"].ToString())); if (ds.Tables[0].Rows[0]["EspectativaCierre"] is DBNull) informe.EspectativaCierre = -1; else informe.EspectativaCierre = Convert.ToInt16(ds.Tables[0].Rows[0]["EspectativaCierre"].ToString()); informe.ResumenVisita = ds.Tables[0].Rows[0]["ResumenVisita"].ToString(); informe.IdUsuario = Convert.ToInt64(ds.Tables[0].Rows[0]["IdUsuario"].ToString()); informe.Productos = ObtenerProductosInformeVisita(informe.Id); informe.Traficos = ObtenerTraficosInformeVisita(informe.Id); if (ds.Tables[0].Rows[0]["TieneEspectativaCierre"] is DBNull) informe.TieneEspectativaCierre = false; else informe.TieneEspectativaCierre = Convert.ToBoolean(ds.Tables[0].Rows[0]["TieneEspectativaCierre"]); if (ds.Tables[0].Rows[0]["OtroTema"] is DBNull) informe.OtroTema = false; else informe.OtroTema = Convert.ToBoolean(ds.Tables[0].Rows[0]["OtroTema"]); if (ds.Tables[0].Rows[0]["RequiereRespuesta"] is DBNull) informe.RequiereRespuesta = false; else informe.RequiereRespuesta = Convert.ToBoolean(ds.Tables[0].Rows[0]["RequiereRespuesta"]); if (ds.Tables[0].Rows[0]["EsBorrador"] is DBNull) informe.EsBorrador = false; else informe.EsBorrador = Convert.ToBoolean(ds.Tables[0].Rows[0]["EsBorrador"]); var FollowUP = AccesoDatos.Clientes.clsClienteMasterADO.ObtenerFollowUpClientePorInforme(informe.Id); if (FollowUP != null) { informe.FollowUp = FollowUP[0]; } //if (ds.Tables[0].Rows[0]["FechaFollowUp"] is DBNull) // informe.FollowUp = null; //else // informe.FollowUp = Convert.ToDateTime(ds.Tables[0].Rows[0]["FechaFollowUp"].ToString()); } resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; resTransaccion.ObjetoTransaccion = informe; } catch (Exception ex) { resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; Log.EscribirLog(ex.Message); } finally { cnn.Close(); } return resTransaccion; }
public static IList<clsInformeRespuestaUsuario> ListarUsuariosParaRespuestaInforme(clsVisitaInforme informe) { SqlDataReader dreader = null; clsInformeRespuestaUsuario comentario = null; IList<clsInformeRespuestaUsuario> listcomentarios = new List<clsInformeRespuestaUsuario>(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_C_CALENDARIO_VISITA_INFORME_COMENTARIO_USUARIO"); if (informe != null) objParams[0].Value = informe.Id; SqlCommand command = new SqlCommand("SP_C_CALENDARIO_VISITA_INFORME_COMENTARIO_USUARIO", BaseDatos.Conexion()); command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; dreader = command.ExecuteReader(); while (dreader.Read()) { comentario = new clsInformeRespuestaUsuario(); comentario.Id = Convert.ToInt64(dreader["Id"]); comentario.IdInforme = Convert.ToInt64(dreader["IdInforme"]); comentario.Usuario = Usuarios.clsUsuarioADO.ObtenerUsuarioPorId(Convert.ToInt16(dreader["IdUsuario"])); listcomentarios.Add(comentario); } } catch (Exception ex) { Base.Log.Log.EscribirLog(ex.Message); } finally { BaseDatos.CerrarConexion(); } return listcomentarios; }
public static ResultadoTransaccion ActualizarInformeVisita(clsVisitaInforme informe) { SqlTransaction transaction = BaseDatos.Conexion().BeginTransaction(); ResultadoTransaccion resSalida = new ResultadoTransaccion(); try { resTransaccion = new ResultadoTransaccion(); resTransaccion = ModificarInformVisita(informe, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Aceptada) { resTransaccion = new ResultadoTransaccion(); resTransaccion = EliminarDatosInformeVisita(informe, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) { throw new Exception(resTransaccion.Descripcion); } foreach (clsVisitaInformeProductos producto in informe.Productos) { resTransaccion = new ResultadoTransaccion(); resTransaccion = AgregarProductoInformVisita(producto.Producto.Id, informe.Id, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } foreach (clsVisitaInformeTrafico trafico in informe.Traficos) { resTransaccion = new ResultadoTransaccion(); resTransaccion = AgregarTraficoInformVisita(trafico.Trafico.Id, informe.Id, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } resTransaccion = new ResultadoTransaccion(); resTransaccion = EliminarUsuarioParaRespuestaInformeVisita(informe, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) { throw new Exception(resTransaccion.Descripcion); } foreach (var param in informe.UsuariosParaRespuesta) { param.IdInforme = informe.Id; resTransaccion = new ResultadoTransaccion(); resTransaccion = AgregarUsuarioRequiereRespuesta(param, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } resTransaccion = new ResultadoTransaccion(); resTransaccion = AccesoDatos.Clientes.clsClienteMasterADO.ModificarFollowUpClienteMaster(informe.FollowUp, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) { throw new Exception(resTransaccion.Descripcion); } transaction.Commit(); resSalida.Estado = Enums.EstadoTransaccion.Aceptada; resSalida.ObjetoTransaccion = informe; } else { throw new Exception(resTransaccion.Descripcion); } } catch (Exception ex) { transaction.Rollback(); resSalida.Estado = Enums.EstadoTransaccion.Rechazada; resSalida.Descripcion = ex.Message; } finally { BaseDatos.CerrarConexion(); } return resSalida; }
private static ResultadoTransaccion ModificarInformVisita(clsVisitaInforme informe, SqlTransaction transaction) { Int64 idInformeVisita = 0; resTransaccion = new ResultadoTransaccion(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_A_CALENDARIO_VISITA_INFORME"); objParams[0].Value = informe.Visita.Id; objParams[1].Value = informe.EspectativaCierre; objParams[2].Value = informe.FollowUp.FechaFollowUp; objParams[3].Value = informe.ResumenVisita; objParams[4].Value = informe.IdUsuario; objParams[5].Value = informe.TieneEspectativaCierre; objParams[6].Value = informe.OtroTema; objParams[7].Value = informe.EsBorrador; objParams[8].Value = informe.Id; objParams[9].Value = informe.RequiereRespuesta; SqlCommand command = new SqlCommand("SP_A_CALENDARIO_VISITA_INFORME", BaseDatos.Conexion()); command.Transaction = transaction; command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; command.ExecuteNonQuery(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(informe.GetType().ToString(), idInformeVisita, Enums.TipoActividadUsuario.Edito, 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; }
private static ResultadoTransaccion EliminarUsuarioParaRespuestaInformeVisita(clsVisitaInforme informe, SqlTransaction transaction) { resTransaccion = new ResultadoTransaccion(); try { objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_E_CALENDARIO_VISITA_INFORME_COMENTARIO_USUARIO"); objParams[0].Value = informe.Id; SqlCommand command = new SqlCommand("SP_E_CALENDARIO_VISITA_INFORME_COMENTARIO_USUARIO", BaseDatos.Conexion()); command.Transaction = transaction; command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; command.ExecuteNonQuery(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; } catch (Exception ex) { resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; Log.EscribirLog(ex.Message); } return resTransaccion; }
public void EnviarEmailInformeVisita(clsVisitaInforme informe, clsVisita VisitaActual) { string EmailBody = ""; string productos = ""; string traficos = ""; string RecFijos = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeFijo"); string RecLCL = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeLCL"); string RecFCL = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeFCL"); string RecAereo = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeAereo"); string EmailInforme = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeVisita"); string espectativas = ""; try { foreach (var producto in informe.Productos) { productos += producto.Producto.Nombre + " / "; } foreach (var trafico in informe.Traficos) { traficos += trafico.Trafico.Nombre + " / "; } foreach (var asistente in VisitaActual.AsistentesCraft) { if (asistente.Confirmo == Enums.VisitaEstadoAsistente.ConfirmoAsistencia) { StringBuilder sb = new StringBuilder(EmailInforme); sb.Replace("[ASISTENTE]", asistente.Usuario.NombreCompleto); if (VisitaActual.Cliente == null) { sb.Replace("[CLIENTE]", ""); } else { if (VisitaActual.Cliente.NombreFantasia.Trim() != "") sb.Replace("[CLIENTE]", VisitaActual.Cliente.NombreFantasia); else sb.Replace("[CLIENTE]", VisitaActual.Cliente.NombreCompañia); } sb.Replace("[PRODUCTOS]", productos); sb.Replace("[TRAFICOS]", traficos); if (informe.TieneEspectativaCierre) espectativas = " SI (" + informe.EspectativaCierre + "%)"; else espectativas = " NO "; sb.Replace("[ESPECTATIVAS]", espectativas); if (informe.FollowUp.FechaFollowUp != null) sb.Replace("[FOLLOWUP] ", informe.FollowUp.FechaFollowUp.Value.ToShortDateString()); sb.Replace("[RESUMEN]", informe.ResumenVisita); sb.Replace("[SALTO]", "\n"); EmailBody = sb.ToString(); string asunto = "Informe Visita: " + VisitaActual.Asunto; EnviarEmail(asistente.Usuario.Email, asunto, EmailBody); LogEnviarEmail(Enums.VisitaTipoEmail.InformeVisitaConfirmados, VisitaActual, EmailBody, asunto); } } //Enviar informe a Customers Services foreach (var producto in VisitaActual.Cliente.ProductosPreferidos) { if (producto.Customer != null) { StringBuilder sb = new StringBuilder(EmailInforme); sb.Replace("[ASISTENTE]", producto.Customer.NombreCompleto); if (VisitaActual.Cliente == null) { sb.Replace("[CLIENTE]", ""); } else { if (VisitaActual.Cliente.NombreFantasia.Trim() != "") sb.Replace("[CLIENTE]", VisitaActual.Cliente.NombreFantasia); else sb.Replace("[CLIENTE]", VisitaActual.Cliente.NombreCompañia); } sb.Replace("[PRODUCTOS]", productos); sb.Replace("[TRAFICOS]", traficos); if (informe.TieneEspectativaCierre) espectativas = " SI (" + informe.EspectativaCierre + "%)"; else espectativas = " NO "; sb.Replace("[ESPECTATIVAS]", espectativas); if (informe.FollowUp.FechaFollowUp != null) sb.Replace("[FOLLOWUP] ", informe.FollowUp.FechaFollowUp.Value.ToShortDateString()); sb.Replace("[RESUMEN]", informe.ResumenVisita); sb.Replace("[SALTO]", "\n"); EmailBody = sb.ToString(); string asunto = "Informe Visita: " + VisitaActual.Asunto; EnviarEmail(producto.Customer.Email, asunto, EmailBody); LogEnviarEmail(Enums.VisitaTipoEmail.InformeVisitaConfirmados, VisitaActual, EmailBody, asunto); } } //Receptores Fijos string[] fijos = RecFijos.Split(';'); string[] lcl = RecLCL.Split(';'); string[] fcl = RecFCL.Split(';'); string[] aereo = RecAereo.Split(';'); foreach (var fijo in fijos) { clsUsuario usuario = ProyectoCraft.LogicaNegocios.Usuarios.clsUsuarios.ObtenerUsuarioPorEmail(fijo); if (usuario != null) { EnviarInformeReceptoresFijos(VisitaActual, usuario, productos, traficos, Enums.VisitaTipoEmail.InformeVisitaFijos); } } bool esLCL = false; bool esFCL = false; bool esAereo = false; foreach (var prod in VisitaActual.Informvisita.Productos) { if (prod.Producto.EsLCL) esLCL = true; if (prod.Producto.EsFCL) esFCL = true; if (prod.Producto.EsAereo) esAereo = true; } //busacr productos clientes IList<ProyectoCraft.Entidades.Clientes.clsClientesProductos> productoscliente = null; if (VisitaActual.Cliente == null) productoscliente = new List<clsClientesProductos>(); else productoscliente = ProyectoCraft.LogicaNegocios.Clientes.clsClientesMaster.ObtenerProductosPreferidos( VisitaActual.Cliente.Id); foreach (var prod in productoscliente) { if (!esLCL) if (prod.Producto.EsLCL) esLCL = true; if (!esFCL) if (prod.Producto.EsFCL) esFCL = true; if (!esAereo) if (prod.Producto.EsAereo) esAereo = true; } if (esLCL) { foreach (var fijo in lcl) { clsUsuario usuario = ProyectoCraft.LogicaNegocios.Usuarios.clsUsuarios.ObtenerUsuarioPorEmail(fijo); if (usuario != null) { EnviarInformeReceptoresFijos(VisitaActual, usuario, productos, traficos, Enums.VisitaTipoEmail.InformeVisitaEncNegocio); } } } if (esFCL) { foreach (var fijo in fcl) { clsUsuario usuario = ProyectoCraft.LogicaNegocios.Usuarios.clsUsuarios.ObtenerUsuarioPorEmail(fijo); if (usuario != null) { EnviarInformeReceptoresFijos(VisitaActual, usuario, productos, traficos, Enums.VisitaTipoEmail.InformeVisitaEncNegocio); } } } if (esAereo) { foreach (var fijo in aereo) { clsUsuario usuario = ProyectoCraft.LogicaNegocios.Usuarios.clsUsuarios.ObtenerUsuarioPorEmail(fijo); if (usuario != null) { EnviarInformeReceptoresFijos(VisitaActual, usuario, productos, traficos, Enums.VisitaTipoEmail.InformeVisitaEncNegocio); } } } //Enviar Email a Customers foreach (var customer in productoscliente) { if (customer.Customer != null) { EnviarInformeReceptoresFijos(VisitaActual, customer.Customer, productos, traficos, Enums.VisitaTipoEmail.InformeVisitaCustomerService); } } } catch (Exception ex) { Log.EscribirLog(ex.Message); } }