コード例 #1
0
ファイル: frmViewAgenda.cs プロジェクト: EddyAguirre/Agenda
        private void radScheduler1_AppointmentDropping(object sender, AppointmentMovingEventArgs e)
        {
            try
            {
                e.Cancel = true;
                if (this.AppointmentValidations(e) == true)
                {
                    // mover de lugar la cita correctamente
                    TimeSpan _hora_start = new TimeSpan(e.Appointment.Start.Hour, e.Appointment.Start.Minute, e.Appointment.Start.Second);
                    TimeSpan _hora_end   = new TimeSpan(e.Appointment.End.Hour, e.Appointment.End.Minute, e.Appointment.End.Second);
                    TimeSpan _diferencia = _hora_end.Subtract(_hora_start);

                    DateTime _Start    = e.NewDate;
                    DateTime _End      = _Start.Add(_diferencia);
                    DateTime _DocDate  = e.NewDate.Date;
                    int      _DocEntry = int.Parse(e.Appointment.UniqueId.KeyValue.ToString());

                    cs_sapbo sapo = new cs_sapbo();
                    if (sapo.UPDATE_CITAS(_Start, _End, _DocDate, _DocEntry) == true)
                    {
                        if (sapo.UPDATE_CITA1(_Start, _End, _DocDate, _DocEntry) == true)
                        {
                            this.InitializeRadSchedulerDataBinding(); // primero carga los datos de la base de datos

                            if (txt_salas.Text != "")
                            {
                                this.InitializeRadSchedulerResource();
                            }
                            else
                            {
                                this.InitializeRadSchedulerResources();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Ocurrio un problema al mover la cita, por favor intentar de nuevo.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    sapo = null;
                }
                else
                {
                    // no dejar mover de lugar la cita.
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
コード例 #2
0
ファイル: frmViewAgenda.cs プロジェクト: EddyAguirre/Agenda
        private bool AppointmentValidations(AppointmentMovingEventArgs e)
        {
            try
            {
                bool resul = false;

                if (e.Appointment.Description == "N")
                {
                    // validar que una cita no se pueda mover de una sala a otra sala en la misma unidad
                    if (e.NewResourceId.KeyValue.ToString() != e.Appointment.ResourceId.KeyValue.ToString())
                    {
                        MessageBox.Show("No se permite mover la cita a una sala donde el estudio no pertenece.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        cs_sapbo sapo = new cs_sapbo();
                        // validar que una cita no se pueda mover en un horario que ya esta ocupado por otra cita
                        if (sapo.GET_CITAS(e.NewDate.Date, e.NewDate, e.NewResourceId.KeyValue.ToString()).Rows.Count > 0)
                        {
                            MessageBox.Show("No se permite mover la cita en este horario. Ya existe una cita registrada.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            resul = true;
                        }
                        sapo = null;
                    }
                }
                return(resul);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
        }