/**
  * Create or update new group and return id of group.
  *
  * @param object $booking
  * @param object $option
  * @return int
  */
 public function group($bookingtmp = NULL, $optiontmp = NULL)
 {
     global $DB;
     $booking = clone $bookingtmp;
     $option = clone $optiontmp;
     if ($booking->addtogroup == 1 && $option->courseid > 0) {
         $cm = get_coursemodule_from_instance('booking', $booking->id);
         $tags = new booking_tags($cm);
         $booking = $tags->bookingReplace($booking);
         $option = $tags->optionReplace($option);
         $newGroupData = new stdClass();
         if (isset($option->id)) {
             $groupid = $DB->get_field('booking_options', 'groupid', array('id' => $option->id));
             if (!is_null($groupid) && $groupid > 0) {
                 $newGroupData->id = $groupid;
             }
             $newGroupData->courseid = $option->courseid;
             $newGroupData->name = $booking->name . ' - ' . $option->text . ' - ' . $option->id;
             $newGroupData->description = $booking->name . ' - ' . $option->text;
             $newGroupData->descriptionformat = FORMAT_HTML;
             if (isset($newGroupData->id)) {
                 groups_update_group($newGroupData);
                 return $newGroupData->id;
             } else {
                 return groups_create_group($newGroupData);
             }
         }
     } else {
         return 0;
     }
 }