You are here

function rooms_booking_manager_rooms_booking_edit_form_submit in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Submit handler for the 'rooms_booking_edit' form.

1 string reference to 'rooms_booking_manager_rooms_booking_edit_form_submit'
rooms_booking_manager_alter_rooms_booking_edit_form in modules/rooms_booking_manager/rooms_booking_manager.module
Alters for the 'rooms_booking_edit' form.

File

modules/rooms_booking_manager/rooms_booking_manager.module, line 2918
Rooms Booking Manager brings together all the pieces required to find a room and book it - including the DrupalCommerce integration

Code

function rooms_booking_manager_rooms_booking_edit_form_submit(&$form, &$form_state) {
  $booking = $form_state['booking'];
  list($start_date, $end_date) = rooms_form_values_get_start_end_dates($form_state);
  $unit_id = isset($form_state['values']['unit_id']) ? $form_state['values']['unit_id'] : 0;
  $unit = rooms_unit_load($unit_id);

  // Get the client name and client id.
  $client = explode(':', $form_state['values']['client']);
  $client_name = $client[0];
  $commerce_customer_id = rooms_booking_find_customer_by_name($client_name);
  $booking_original = entity_load_unchanged('rooms_booking', $booking->booking_id);
  if ($booking->order_id != '') {
    if (($order = commerce_order_load($booking->order_id)) !== FALSE) {
      if ($booking_original->unit_id != $booking->unit_id || $booking_original->start_date != $booking->start_date || $booking_original->end_date != $booking->end_date || $booking_original->price != $booking->price || $booking_original->data['group_size'] != $booking->data['group_size'] || $booking_original->data['group_size_children'] != $booking->data['group_size_children']) {
        $order->status = 'canceled';
        commerce_order_save($order);
        $booking->order_id = '';
      }
    }
  }
  if ($booking->order_id == '') {
    if (variable_get('rooms_manually_booking_create_order', '1')) {
      $booking_parameters = array(
        'adults' => $form_state['values']['data']['group_size'],
        'children' => isset($form_state['values']['data']['group_size_children']) ? $form_state['values']['data']['group_size_children'] : 0,
      );
      $order = rooms_booking_manager_create_order($start_date, $end_date, $booking_parameters, $unit, $booking, $commerce_customer_id);
      $booking->order_id = $order->order_number;

      // Resave booking to store order reference.
      $booking
        ->save();
    }
  }
}