private bool PermitirModificarVisita(Appointment app) { clsVisita visita = clsCalendarios.ObtenerVisitaPorId( Convert.ToInt64(app.CustomFields["IdVisita"])); if (visita != null) { if (visita.EstadoBD == Enums.VisitaEstado.Cancelada || visita.EstadoBD == Enums.VisitaEstado.Realizada_Informe_Pendiente || visita.EstadoBD == Enums.VisitaEstado.Realizada_Con_Informe || visita.EstadoBD == Enums.VisitaEstado.Confirmada || visita.EstadoBD == Enums.VisitaEstado.No_Realizada) { MessageBox.Show("Visita en estado " + Convert.ToString(visita.EstadoBD).Replace("_", " ") + "\n No es posible modificarla", "Visitas", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (visita.UsuarioOrganizador.Id != Base.Usuario.UsuarioConectado.Usuario.Id && visita.Vendedor.Id != Base.Usuario.UsuarioConectado.Usuario.Id) { MessageBox.Show("Solo el usuario organizador puede modificar una Visita.", "Visitas", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } return(true); }
private void MapearAsistentesVisita(bool formload) { var timer = System.Diagnostics.Stopwatch.StartNew(); AppointmentCollection appointments = schedulerStorage1.Appointments.Items; Int64 IdVisita = 0; if (formload) { foreach (var appointment in appointments) { IdVisita = Convert.ToInt64(appointment.CustomFields["IdVisita"].ToString()); if (IdVisita > 0) { clsVisita visita = new clsVisita(); // clsCalendarios.ObtenerVisitaPorId(IdVisita); visita = ListaVisitas.Find(delegate(clsVisita var1) { return(var1.Id == IdVisita); }); if (visita == null) { break; } appointment.ResourceIds.Clear(); foreach (var asisCraft in visita.AsistentesCraft) { appointment.ResourceIds.Add(asisCraft.Usuario.Id); } appointment.ResourceIds.Add(visita.UsuarioOrganizador.Id); } } } else { Appointment appointment = appointments[appointments.Count - 1]; IdVisita = Convert.ToInt64(appointment.CustomFields["IdVisita"].ToString()); if (IdVisita > 0) { clsVisita visita = clsCalendarios.ObtenerVisitaPorId(IdVisita); appointment.ResourceIds.Clear(); foreach (var asisCraft in visita.AsistentesCraft) { appointment.ResourceIds.Add(asisCraft.Usuario.Id); } } } ClsLogPerformance.Save(new LogPerformance(Base.Usuario.UsuarioConectado.Usuario, timer.Elapsed.TotalSeconds)); }
public static ResultadoTransaccion ValidarUsuarioEnOtraVisita(clsVisita visita) { ResultadoTransaccion resSalida = new ResultadoTransaccion(); foreach (var asistente in visita.Asistentes) { if (asistente.TipoAsistente == Entidades.Enums.Enums.VisitaTipoAsistente.Usuario && asistente.IsNew) { ResultadoTransaccion resultado = AccesoDatos.Calendarios.clsCalendarioADO.ValidarUsuarioEnOtraVisita(asistente.Usuario, visita.FechaHoraComienzo.AddSeconds(1), visita.FechaHoraTermino.AddSeconds(-1), visita.Id); if (resultado.Estado == Entidades.Enums.Enums.EstadoTransaccion.Aceptada) { resSalida.Estado = Entidades.Enums.Enums.EstadoTransaccion.Aceptada; clsVisita otraVisita = (clsVisita)resultado.ObjetoTransaccion; if (otraVisita != null) { resSalida.Errores.Add(asistente.Usuario.NombreCompleto); resSalida.Descripcion = "El asistente " + asistente.Usuario.NombreCompleto + " tiene otra visita programada en este horario "; resSalida.ObjetoTransaccion = true; } else { resSalida.Errores = new List <string>(); resSalida.Descripcion = ""; resSalida.ObjetoTransaccion = true; } //if ((bool)resultado.ObjetoTransaccion) //{ // resSalida.Descripcion = "El asistente " + asistente.Usuario.NombreCompleto + " tiene otra visita programada en este horario "; // resSalida.ObjetoTransaccion = true; //} //else //{ // resSalida.Descripcion = ""; // resSalida.ObjetoTransaccion = true; //}Entidades.Usuarios.clsUsuario usuario, DateTime inicio, DateTime termino, Int64 IdVisita } else { resSalida = resultado; } } } return(resSalida); }
private void schedulerStorage1_AppointmentDeleting(object sender, PersistentObjectCancelEventArgs e) { Appointment app = (Appointment)e.Object; clsVisita visita = clsCalendarios.ObtenerVisitaPorId(Convert.ToInt64(app.CustomFields["IdVisita"])); if (visita == null) { return; } if (visita.UsuarioOrganizador.Id != Base.Usuario.UsuarioConectado.Usuario.Id && visita.Vendedor.Id != Base.Usuario.UsuarioConectado.Usuario.Id) { MessageBox.Show("Solo el Organizador o Vendedor pueden eliminar esta visita.", "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; return; } if (visita.EstadoBD == Enums.VisitaEstado.Realizada_Con_Informe || visita.EstadoBD == Enums.VisitaEstado.Realizada_Informe_Pendiente) { MessageBox.Show("La visita esta marcada como realizada, no es posible eliminarla", "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; return; } if (visita.EstadoBD == Enums.VisitaEstado.No_Realizada) { MessageBox.Show("La Visita no fue realizada y se encuentra bloqueada, no es posible eliminarla", "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; return; } DialogResult resdialogo = MessageBox.Show("¿Está seguro de eliminar la Visita", "Calendario", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (resdialogo == DialogResult.Yes) { ResultadoTransaccion resultado = clsCalendarios.EliminarVisita(visita); if (resultado.Estado == Enums.EstadoTransaccion.Rechazada) { MessageBox.Show(resultado.Descripcion, "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; } } else { e.Cancel = true; } }
public static ResultadoTransaccion GuardarVisita(clsVisita visita) { visita.FechaHoraTermino.AddSeconds(-1); if (visita.IsNew) { return(AccesoDatos.Calendarios.clsCalendarioADO.GuardarVisita(visita)); } else { return(AccesoDatos.Calendarios.clsCalendarioADO.ActualizarVisita(visita)); } }
private void schedulerControl1_AppointmentResized(object sender, AppointmentResizeEventArgs e) { var mail = new EnvioMailObject(); if (!PermitirModificarVisita(e.SourceAppointment)) { e.Allow = false; e.Handled = true; return; } string moveEventMsg = "Actualizar el evento en horario {0} - {1} a las {2} - {3} ."; string msg = string.Format(moveEventMsg, e.SourceAppointment.Start.ToShortTimeString(), e.SourceAppointment.End.ToShortTimeString(), e.EditedAppointment.Start.ToShortTimeString(), e.EditedAppointment.End.ToShortTimeString()); if (XtraMessageBox.Show(msg + "\r\nProceder?", "Mi Calendario", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Allow = false; e.Handled = true; return; } clsVisita visita = LogicaNegocios.Calendarios.clsCalendarios.ObtenerVisitaPorId(Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"])); visita.FechaHoraComienzo = e.EditedAppointment.Start; visita.FechaHoraTermino = e.EditedAppointment.End; visita.UsuarioOrganizador = Base.Usuario.UsuarioConectado.Usuario; visita.Vendedor = Base.Usuario.UsuarioConectado.Usuario; ResultadoTransaccion res = LogicaNegocios.Calendarios.clsCalendarios.GuardarVisita(visita); if (res.Estado == Entidades.Enums.Enums.EstadoTransaccion.Rechazada) { MessageBox.Show(res.Descripcion, "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Allow = false; e.Handled = true; return; } mail.ModificarVisitaOutlook(visita, e.SourceAppointment.Start, e.SourceAppointment.End); //Utils.EnvioEmail.ModificarVisitaOutlook(visita,e.SourceAppointment.Start,e.SourceAppointment.End); // LoadDataCalendar(); }
private void schedulerControl1_AppointmentDrop(object sender, AppointmentDragEventArgs e) { string createEventMsg = "Crear el evento a las {0} el dia {1}."; string moveEventMsg = "Mover el evento desde {0} el dia {1} a las {2} el dia {3}."; bool Crear = false; bool Mover = false; DateTime srcStart = e.SourceAppointment.Start; DateTime newStart = e.EditedAppointment.Start; string msg = (srcStart == DateTime.MinValue) ? String.Format(createEventMsg, newStart.ToShortTimeString(), newStart.ToShortDateString()) : String.Format(moveEventMsg, srcStart.ToShortTimeString(), srcStart.ToShortDateString(), newStart.ToShortTimeString(), newStart.ToShortDateString()); if (msg.Contains("Crear")) { Crear = true; } if (msg.Contains("Mover")) { Mover = true; } clsVisita visita = new clsVisita(); if (Mover) { if (!PermitirModificarVisita(e.SourceAppointment)) { e.Allow = false; e.Handled = true; return; } } if (XtraMessageBox.Show(msg + "\r\nProceder?", "Mi Calendario", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Allow = false; e.Handled = true; return; } if (Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]) > 0) { if (Mover) { visita = LogicaNegocios.Calendarios.clsCalendarios.ObtenerVisitaPorId( Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"])); } //visita.Id = Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]); //visita.Asunto = e.SourceAppointment.Subject; //visita.Descripcion = e.SourceAppointment.Description; //visita.Ubicacion = e.SourceAppointment.Location; visita.FechaHoraComienzo = e.EditedAppointment.Start; visita.FechaHoraTermino = e.EditedAppointment.End; } else { visita.Id = Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]); visita.Asunto = e.SourceAppointment.Subject; visita.Descripcion = e.SourceAppointment.Description; visita.Ubicacion = e.SourceAppointment.Location; visita.FechaHoraComienzo = e.EditedAppointment.Start; visita.FechaHoraTermino = e.EditedAppointment.End; } if (Crear) { visita.Cliente = LogicaNegocios.Clientes.clsClientesMaster.ObtenerClienteMasterPorId(IdClienteDraw); visita.EstadoBD = Entidades.Enums.Enums.VisitaEstado.Incompleta; if (visita.Cliente.Tipo == Enums.TipoPersona.Cuenta) { ResultadoTransaccion resCuenta = LogicaNegocios.Clientes.clsCuentas.ObtenerCuentaPorIdMaster(visita.Cliente.Id); clsCuenta cuenta = new clsCuenta(); if (resCuenta.Estado == Enums.EstadoTransaccion.Aceptada) { cuenta = (clsCuenta)resCuenta.ObjetoTransaccion; } if (cuenta != null) { visita.Vendedor = cuenta.VendedorAsignado; } } else if (visita.Cliente.Tipo == Enums.TipoPersona.Target) { ResultadoTransaccion resCuenta = LogicaNegocios.Clientes.clsTarget.ObtenerTargetPorIdMaster(visita.Cliente.Id); clsTarget target = new clsTarget(); if (resCuenta.Estado == Enums.EstadoTransaccion.Aceptada) { target = (clsTarget)resCuenta.ObjetoTransaccion; } if (target != null) { visita.Vendedor = target.VendedorAsignado; } } clsVisitaAsistente asistente = new clsVisitaAsistente(); asistente.Usuario = Base.Usuario.UsuarioConectado.Usuario; asistente.TipoAsistente = Entidades.Enums.Enums.VisitaTipoAsistente.Usuario; visita.Asistentes.Add(asistente); clsParametrosInfo paraminfo = LogicaNegocios.Parametros.clsParametros.ListarParametrosPorTipo(Entidades.Enums.Enums.TipoParametro.ImportanciaVisita); visita.NivelImportancia = paraminfo.Items[0]; // Entidades.Enums.Enums.VisitaNivelImportancia.Baja; } //visita.Vendedor = Base.Usuario.UsuarioConectado.Usuario; visita.UsuarioOrganizador = Base.Usuario.UsuarioConectado.Usuario; Entidades.GlobalObject.ResultadoTransaccion res = LogicaNegocios.Calendarios.clsCalendarios.GuardarVisita(visita); if (res.Estado == Entidades.Enums.Enums.EstadoTransaccion.Aceptada) { } else { MessageBox.Show(res.Descripcion, "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Allow = false; e.Handled = true; return; } PopupClientes.Visible = false; //if(schedulerStorage1.Appointments.IsNewAppointment(e.EditedAppointment)) //{ // schedulerStorage1.Appointments.Add(e.EditedAppointment); //} //SincronizarOutlook(); }
public static ResultadoTransaccion EliminarVisita(clsVisita visita) { return(AccesoDatos.Calendarios.clsCalendarioADO.EliminarVisita(visita)); }