",$args,$new_action,$invisible); } function make_reload($args = 0,$new_action = 0,$time=0){ global $action; $returner = 0; if(!$args) $args = array(); if(!$new_action) $new_action = $action; $args['action'] = $new_action; if(user_has_permission($new_action)) $returner = http_reload($args); else debug("user not allowed to perform reload action [{$action}]"); return $returner; } // END OF HTTP.PHP FILE // LOGIC.PHP FILE INLINE FOR PASTEBIN /* * * $Id: logic.php,v 1.22 2006/02/22 18:43:15 tleen Exp $ * * common business logic items here * * */ require_once 'includes/database.php'; require_once 'includes/debug.php'; require_once 'includes/image.php'; require_once 'includes/misc.php'; function logic_class_full($id){ $returner = 0; $query = "select classes.size from classes where ({$id} = classes.id) limit 1"; $rows = db_query($query); if($rows){ $limit = $rows[0][0]; $query = "select count(xref_credits_classes.id) from xref_credits_classes where ({$id} = xref_credits_classes.class_id)"; $rows = db_query($query); $current = ($rows ? $rows[0][0] : 0); $returner = ($current >= $limit); } debug("logic_class_full({$id}) ({$current}/{$limit}) [{$returner}]"); return $returner; } function logic_can_delete_receipt($id){ $query = "select credits.id from credits,receiptitems where ({$id} = receiptitems.receipt_id) and (receiptitems.id = credits.receiptitem_id) limit 1"; $rows = db_query($query); $returner = ($rows ? 0 : 1); debug("logic_can_delete_receipt($id) [{$returner}]"); return $returner; } function logic_delete_receipt($id){ $returner = 0; if(logic_can_delete_receipt($id)){ $query = "delete from receiptitems where ({$id} = receipt_id)"; db_delete($query); $query = "delete from receipts where ({$id} = id) limit 1"; $returner = db_delete($query); } return $returner; } function logic_can_delete_package($id){ $returner = !db_reference_exists('credits','package_id',$id); debug("logic_can_delete_package({$id})[{$returner}]"); return $returner; } function logic_delete_package($id){ $returner = 0; if(logic_can_delete_package($id)){ $query = "delete from packages where ({$id} = id) limit 1"; $returner = db_delete($query); } return $returner; } function logic_can_edit_package($id){ $returner = logic_can_delete_package($id); debug("logic_can_edit_package({$id})[{$returner}]"); return $returner; } function logic_credits_used($id){ $returner = 0; $query = "select count(id) from xref_credits_classes where ({$id} = credit_id)"; $rows = db_query($query); $returner = $rows[0][0]; debug("logic_credits_used({$id}) [{$returner}]"); return $returner; } function logic_credits_available($id,$ignore_expiration=0){ $returner = 0; $query = "select amount, ( (end > now()) or {$ignore_expiration}) from credits where ({$id} = id) limit 1"; $rows = db_query($query); if($rows){ $credits_total = $rows[0][0]; $credits_used = logic_credits_used($id); $returner = ($credits_total - $credits_used); if($returner < 0) $returner = 0; if(!$rows[0][1]) $returner = 0; } debug("logic_credits_available({$id}) [{$returner}]"); return $returner; } function logic_can_delete_credit($id){ $returner = !logic_credits_used($id); debug("logic_can_delete_credit({$id})[{$returner}]"); return $returner; } function logic_delete_credit($id){ $returner = 0; if(logic_can_delete_credit($id)){ $query = "delete from credits where ({$id} = id) limit 1"; $returner = db_delete($query); } return $returner; } function logic_can_delete_person($id){ $returner = !db_reference_exists(array('receipts','xref_persons_classes','credits'),'person_id',$id); debug("logic_can_delete_person({$id})[{$returner}]"); return $returner; } function logic_delete_person($id){ if(logic_can_delete_person($id)){ // delete everything related $query = "select id from users where (({$id} = person_id) limit 1"; $rows = db_query($query); $user_id = $rows[0][0]; db_cascade_delete(array('users','addresses','phones','xref_persons_maillists'),'person_id',$id); if($user_id) db_cascade_delete('accounting','user_id',$user_id); image_delete_photo($id); $returner = db_delete("delete from persons where ({$id} = id)"); } debug("logic_delete_person({$id})[{$returner}]"); return $returner; } function logic_can_delete_course($id){ $returner = !db_reference_exists('offerings','course_id',$id); debug("logic_can_delete_course({$id})[{$returner}]"); return $returner; } function logic_delete_course($id){ if(logic_can_delete_course($id)) $returner = db_delete("delete from courses where ({$id} = id) limit 1"); if($returner) db_cascade_delete('xref_topics_courses','user_id',$user_id); debug("logic_delete_course({$id}) [{$returner}]"); return $returner; } function logic_can_delete_offering($id){ $returner = !db_reference_exists('classes','offering_id',$id); debug("logic_can_delete_offering({$id})[{$returner}]"); return $returner; } function logic_delete_offering($id){ if(logic_can_delete_offering($id)) $returner = db_delete("delete from offerings where ({$id} = id) limit 1"); debug("logic_delete_offering({$id}) [{$returner}]"); return $returner; } function logic_can_delete_instructor($id){ $returner = !db_reference_exists('offerings','instructor_id',$id); $person_id = misc_instructor_id_to_person_id($id); $returner = ($returner && logic_can_delete_person($person_id)); debug("logic_can_delete_instructor({$id})[{$returner}]"); return $returner; } function logic_delete_instructor($id){ $person_id = misc_instructor_id_to_person_id($id); if(logic_can_delete_instructor($id)) $returner = db_delete("delete from instructors where ({$id} = id) limit 1"); // try to delete person too, if possible logic_delete_person($person_id); debug("logic_delete_instructor({$id}) [{$returner}]"); return $returner; } function logic_can_delete_class($id){ $returner = !db_reference_exists('xref_credits_classes','class_id',$id); debug("logic_can_delete_class({$id})[{$returner}]"); return $returner; } function logic_can_cancel_class($id){ $returner = logic_can_delete_class($id); debug("logic_can_cancel_class({$id})[{$returner}]"); return $returner; } function logic_delete_class($id){ $returner = 0; if(logic_can_delete_class($id)) $returner = db_delete("delete from classes where ({$id} = id) limit 1"); debug("logic_delete_class({$id}) [{$returner}]"); return $returner; } function logic_type_to_default_course($type_id){ global $TYPE_ID_TO_COURSE_ID; $returner = $TYPE_ID_TO_COURSE_ID[$type_id]; debug("logic_type_to_default_course({$type_id}) [{$returner}]"); return $returner; } function logic_type_to_default_size($type_id){ $query = "select max from types where ({$type_id} = id) limit 1"; $rows = db_query($query); $returner = $rows[0][0]; debug("logic_type_to_default_size({$type_id}) [{$returner}]"); return $returner; } function logic_can_view_task($id){ global $USER_PERSON_ID; $user_person_id = user_get($USER_PERSON_ID); $query = "select tasks.id from tasks,instructors,users where ({$id} = tasks.id) and (tasks.instructor_id = instructors.id) and (instructors.person_id in (1,{$user_person_id}))"; $returner = ( user_is_manager() || db_query($query)); debug("logic_can_view_task({$id}) [{$returner}]"); return $returner; } // END OF LOGIC.PHP INLINE FILE require_once 'includes/supercalendar.php'; $TYPE_ID = 2; $DELETE_PERSONAL_CLASS = 9091; switch($sub_action){ case $DELETE_PERSONAL_CLASS: if(!logic_delete_class($id)) error_set('Unable to delete class'); break; default: break; } function format_personal_delete($event,$view){ global $DELETE_PERSONAL_CLASS,$IMAGE_DELETE,$SUPERCALENDAR_VIEW_WEEK,$supercalendar_time,$supercalendar_view; $id = $event[3]; return (logic_can_delete_class($id) ? make_hyperimage($IMAGE_DELETE,array('sub_action' => $DELETE_PERSONAL_CLASS,'id' => $id,'supercalendar_time' => $supercalendar_time,'supercalendar_view' => $supercalendar_view),0,1,"Delete Class #{$id}") : image_invisible(12,12)); } $CLASS_SCHEDULE_EXTRA_FORMATTER = format_personal_delete; $cal_type_id = $TYPE_ID; $default_view = $SUPERCALENDAR_VIEW_DAY; include_once 'components/class.schedule.php'; $SHOW_SUPERTABLE = 0; include_once 'components/classes.php';