Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
 public static ResultadoTransaccion EliminarVisita(clsVisita visita)
 {
     return(AccesoDatos.Calendarios.clsCalendarioADO.EliminarVisita(visita));
 }