Beispiel #1
0
 private void CancelacionProfesional_Load(object sender, EventArgs e)
 {
     matricula = Profesional.matriculaPorUsuario(id_usuario);
     if (matricula == -1)
     {
         MessageBox.Show("Error, el profesional con el que ingresó no cuenta con numero de matricula.", "Clinica-FRBA Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         this.Close();
     }
     else if (Rango_Atencion.rangosPorProfesional(matricula).Count == 0)
     {
         MessageBox.Show("Error, el profesional no tiene establecida una agenda.", "Clinica-FRBA Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         this.Close();
     }
     else
     {
         List <Rango_Atencion> rangos = Rango_Atencion.rangosPorProfesional(matricula);
         rangos.ForEach(rango => dias.AddRange(Rango_Atencion.generarDiasRango(rango)));
         dias.RemoveAll(dia => dia.Date <= ClinicaFrba.Utils.Fechas.getCurrentDateTime().Date);
         actualizarDias();
         if (dias.Count == 0)
         {
             cb_anio_desde.Enabled = false;
             cb_mes_desde.Enabled  = false;
             cb_dia_desde.Enabled  = false;
             cb_anio_hasta.Enabled = false;
             cb_mes_hasta.Enabled  = false;
             cb_dia_hasta.Enabled  = false;
             btn_cancelar.Enabled  = false;
             tb_motivo.Enabled     = false;
             MessageBox.Show("No hay ninguna franja para cancelar.", "Clinica-FRBA ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
             this.Close();
         }
     }
     actualizarDesde();
 }
        public void CalcularDiasRango()
        {
            List <Rango_Atencion> rangos = Rango_Atencion.rangosPorProfesional(profesionalElegido.matricula);

            if (rangos.Count > 0)
            {
                rangos.ForEach(r => diasRango.AddRange(Rango_Atencion.generarDiasQueTrabajaRango(profesionalElegido, especialidadElegida.id_especialidad, r)));
            }
            else
            {
                diasRango = new List <DateTime>();
            }
            diasRango.RemoveAll(dia => dia.Year < 2016); //Saca los dias anteriores a 2016 para que no se pueda pedir turno ahi.
            List <Cancelacion_Profesional> cancelaciones = Cancelacion_Profesional.cancelacionesPorProfesional(profesionalElegido.matricula);
            List <DateTime> diasCancelados = new List <DateTime>();

            cancelaciones.ForEach(c => diasCancelados.AddRange(c.diasCancelados())); //Agrego los dias que se cancelan
            diasRango.RemoveAll(elem => diasCancelados.Contains(elem));
            diasRango = diasRango.Distinct().OrderBy(d => d.Year).ThenBy(d => d.Month).ThenBy(d => d.Day).ToList <DateTime>();
        }