You are here

function _opening_hours_instance_delete in Opening hours 7

Same name and namespace in other branches
  1. 6 includes/opening_hours.pages.inc \_opening_hours_instance_delete()

Helper function to delete an existing instance.

Also deletes propagated copies, if applicable.

Parameters

object $instance: The update instance object.

1 call to _opening_hours_instance_delete()
opening_hours_instance_id_api_page in includes/opening_hours.pages.inc
The CRUD API for a specific instance ID.

File

includes/opening_hours.pages.inc, line 276
Page callbacks for the opening hours module.

Code

function _opening_hours_instance_delete($instance) {

  // If we want to propagate to all copies, everything is deleted.
  if ($_REQUEST['propagateChanges'] == 'all') {
    $query = db_query("\n      DELETE FROM {opening_hours}\n      WHERE instance_id = :id OR original_instance_id = :id2\n    ", array(
      ':id' => $instance->original_instance_id,
      ':id2' => $instance->original_instance_id,
    ));
  }
  elseif ($_REQUEST['propagateChanges'] == 'future') {
    $query = db_query("\n      DELETE FROM {opening_hours}\n      WHERE original_instance_id = :id AND date >= :date\n    ", array(
      ':id' => $instance->original_instance_id,
      ':date' => $instance->date,
    ));

    // Stop propagating the original instance, since otherwise it
    // re-propagate on next cron run, nullifying this deletion.
    opening_hours_repeat_stop_propagation($instance->original_instance_id);
  }
  else {
    $query = db_query("\n      DELETE FROM {opening_hours}\n      WHERE instance_id = :id OR original_instance_id = :id2\n    ", array(
      ':id' => $instance->instance_id,
      ':id2' => $instance->instance_id,
    ));
  }
}