You are here

public function AppointmentCalendarDeleteForm::buildForm in Appointment Calendar 8

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides FormInterface::buildForm

File

src/Form/AppointmentCalendarDeleteForm.php, line 24

Class

AppointmentCalendarDeleteForm

Namespace

Drupal\appointment_calendar\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $db_conn = \Drupal::database();
  $from_date = \Drupal::request()->query
    ->get('date');

  // Checking for Booked slots.
  // If slots booked in particular date disable option for delete.
  if ($from_date != '') {
    $date = date('Y-m-d', $from_date);
    $delete_query = $db_conn
      ->select('node__field_appointment_date', 'ad');
    $delete_query
      ->fields('ad', [
      'field_appointment_date_value',
    ]);
    $delete_query
      ->condition('field_appointment_date_value', '%' . $this->connection
      ->escapeLike($date) . '%', 'LIKE');
    $delete_result = $delete_query
      ->execute()
      ->fetchAll();
    if (count($delete_result) >= 1) {
      $form['date'] = [
        '#markup' => $this
          ->t('Unable to delete ' . $date . '. Appointment already booked in selected date<br>If you still want to delete the selected date, delete timeslots booked and retry<br> '),
      ];
      $form['return'] = [
        '#type' => 'submit',
        '#value' => t('Return'),
      ];
    }
    else {
      $form['date_markup'] = [
        '#markup' => $this
          ->t('Are you sure to delete <b>:date</b>?<br>Note:All filled timeslots also will be deleted.<br>', array(
          ':date' => $date,
        )),
      ];
      $form['date'] = [
        '#type' => 'hidden',
        '#value' => $from_date,
      ];
      $form['delete'] = [
        '#type' => 'submit',
        '#value' => $this
          ->t('Yes'),
      ];
      $form['no'] = [
        '#type' => 'submit',
        '#value' => $this
          ->t('No'),
      ];
    }
    return $form;
  }
}