📄 book.php
字号:
<?php/*Copyright Intermesh 2003Author: Merijn Schering <mschering@intermesh.nl>Version: 1.0 Release date: 08 July 2003This program is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation; either version 2 of the License, or (at youroption) any later version.*/require_once ("../../Group-Office.php");$GO_SECURITY->authenticate();$GO_MODULES->authenticate('projects');require_once ($GO_LANGUAGE->get_language_file('projects'));//check for the addressbook module$ab_module = isset ($GO_MODULES->modules['addressbook']) ? $GO_MODULES->modules['addressbook'] : false;if ($ab_module && $ab_module['read_permission']) { require_once ($ab_module['class_path'].'addressbook.class.inc'); $ab = new addressbook();} else { $ab_module = false;}$page_title = $lang_modules['projects'];require_once ($GO_MODULES->class_path."projects.class.inc");$projects = new projects();$task = isset ($_REQUEST['task']) ? $_REQUEST['task'] : '';$booking_id = isset($_REQUEST['booking_id']) ? smart_addslashes($_REQUEST['booking_id']) : 0;$link_back = (isset ($_REQUEST['link_back']) && $_REQUEST['link_back'] != '') ? $_REQUEST['link_back'] : $_SERVER['REQUEST_URI'];$return_to = isset ($_REQUEST['return_to']) ? $_REQUEST['return_to'] : $_SERVER['HTTP_REFERER'];switch ($task) { case 'save_hours' : $unit_value = isset ($_POST['unit_value']) ? smart_addslashes($_POST['unit_value']) : 0; $int_fee_value = number_to_phpnumber(smart_addslashes($_POST['int_fee_value'])); $int_fee_time = smart_addslashes($_POST['int_fee_time']); $ext_fee_value = number_to_phpnumber(smart_addslashes($_POST['ext_fee_value'])); $ext_fee_time = smart_addslashes($_POST['ext_fee_time']); $projects->set_registration_method($GO_SECURITY->user_id, smart_addslashes($_POST['registration_method']), $unit_value, $int_fee_value, $int_fee_time, $ext_fee_value, $ext_fee_time); $start_time = date_to_unixtime($_POST['book_start_date'].' '.$_POST['start_hour'].':'.$_POST['start_min']); $timezone_offset = get_timezone_offset($start_time) * 3600; $start_time -= $timezone_offset; //if user gave a number of units calulate ending time if ($_POST['registration_method'] == 'units') { $end_time = $start_time + $unit_value * 60 * $_POST['units']; $break_time = 0; } else { $break_time = ($_POST['break_hours'] * 3600) + ($_POST['break_mins'] * 60); $end_time = date_to_unixtime($_POST['book_end_date'].' '.$_POST['end_hour'].':'.$_POST['end_min']); $timezone_offset = get_timezone_offset($end_time) * 3600; $end_time -= $timezone_offset; $unit_value = 0; } if ($end_time < $start_time) { $feedback = '<p class="Error">'.$pm_invalid_period.'</p>'; }elseif ($_POST['project_id']['value'] < 1) { $feedback = '<p class="Error">'.$pm_select_project.'</p>'; }elseif ($booking_id == 0 && $existing_booking_id = $projects->check_hours($_POST['pm_user_id']['value'], $start_time, $end_time)) { $link = '<a href="'.$_SERVER['PHP_SELF'].'?booking_id='.$existing_booking_id.'&return_to='.urlencode($return_to).'">'.$pm_here.'</a>'; $feedback = '<p class="Error">'.sprintf($pm_already_booked, $link).'</p>'; } else { if($booking_id > 0) { if (!$projects->update_booking($booking_id, $_REQUEST['project_id']['value'], $_POST['pm_user_id']['value'], $start_time, $end_time, $break_time, $unit_value, smart_addslashes($_POST['book_comments']), $int_fee_value, $int_fee_time, $ext_fee_value, $ext_fee_time )) { $feedback = '<p class="Error">'.$strSaveError.'</p>'; } else { $feedback = '<p class="Success">'.$pm_add_hours_success.'</p>'; if ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } } }else { if (!$projects->add_booking($_REQUEST['project_id']['value'], $_POST['pm_user_id']['value'], $start_time, $end_time, $break_time, $unit_value, smart_addslashes($_POST['book_comments']), $int_fee_value, $int_fee_time, $ext_fee_value, $ext_fee_time)) { $feedback = '<p class="Error">'.$strSaveError.'</p>'; } else { $feedback = '<p class="Success">'.$pm_add_hours_success.'</p>'; if ($_POST['close'] == 'true') { header('Location: '.$return_to); exit (); } } } } break; case 'stop_timer' : $timer = $projects->get_timer($GO_SECURITY->user_id); $timer_start_time = $timer['start_time'] + (get_timezone_offset($timer['start_time']) * 3600); $timer_end_time = get_time(); $projects->stop_timer($GO_SECURITY->user_id); $projects->set_registration_method($GO_SECURITY->user_id, 'endtime'); $active_tab = 'book'; break;}$pm_settings = $projects->get_settings($GO_SECURITY->user_id);$GO_HEADER['head'] = date_picker::get_header();$page_title = $lang_modules['projects'];require_once ($GO_THEME->theme_path."header.inc");echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'" name="projects_form">';echo '<input type="hidden" name="close" value="false" />';//echo '<input type="hidden" name="project_id" value="'.$project_id.'" />';echo '<input type="hidden" name="task" value="" />';echo '<input type="hidden" name="return_to" value="'.$return_to.'" />';echo '<input type="hidden" name="link_back" value="'.$link_back.'" />';$time = get_time();$day = date("j", $time);$year = date("Y", $time);$month = date("m", $time);$date = date($_SESSION['GO_SESSION']['date_format'], $time);$timer_start_date = isset($timer_start_time) ? date($_SESSION['GO_SESSION']['date_format'], $timer_start_time) : $date;if($booking_id > 0 && $booking = $projects->get_booking($booking_id)){ $title = $pm_edit_data; $pm_user_id = $booking['user_id']; $project_id = $booking['project_id']; $local_start_time = $booking['start_time']+(get_timezone_offset($booking['start_time'])*3600); $local_end_time = $booking['end_time']+(get_timezone_offset($booking['start_time'])*3600); if ($booking['unit_value'] > 0) { $unit_value = $booking['unit_value']; $break_hours = 0; $break_mins = 0; $registration_method = 'units'; $units = ($booking['end_time'] - $booking['start_time'])/($booking['unit_value']*60); }else { $registration_method = 'endtime'; $unit_value = $pm_settings['unit_value']; $units = '0'; $break_hours = gmdate('G', gmmktime(0,0,$booking['break_time'])); $break_mins = gmdate('i', gmmktime(0,0,$booking['break_time'])); } $book_start_date = date($_SESSION['GO_SESSION']['date_format'], $local_start_time); $start_hour = date('G',$local_start_time); $start_min = date('i',$local_start_time); $book_end_date = date($_SESSION['GO_SESSION']['date_format'], $local_end_time); $end_hour = date('G',$local_end_time); $end_min =date('i',$local_end_time); $book_comments = $booking['comments']; $int_fee_value = $booking['int_fee_value']; $int_fee_time = $booking['int_fee_time']; $ext_fee_value = $booking['ext_fee_value']; $ext_fee_time = $booking['ext_fee_time'];}else{ $title = $pm_enter_data; $registration_method = $pm_settings['registration_method']; if(isset ($_REQUEST['project_id'])) { if(is_array($_REQUEST['project_id'])) { $project_id = $_REQUEST['project_id']['value']; }else { $project_id = $_REQUEST['project_id']; } }else { $project_id = 0; } $pm_user_id = isset($_REQUEST['pm_user_id']['value']) ? $_REQUEST['pm_user_id']['value'] : $GO_SECURITY->user_id; $book_start_date = isset($_POST['book_start_date']) ? $_POST['book_start_date'] : $timer_start_date; $hour = isset($timer_start_time) ? date('G', $timer_start_time) : 8; $min = isset($timer_start_time) ? date('i', $timer_start_time) : 0; $start_hour = isset($_POST['start_hour']) ? $_POST['start_hour'] : $hour; $start_min = isset($_POST['start_min']) ? $_POST['start_min'] : $min; $timer_end_date = isset($timer_end_time) ? date($_SESSION['GO_SESSION']['date_format'], $timer_end_time) : $date; $book_end_date = isset($_POST['book_end_date']) ? $_POST['book_end_date'] : $timer_end_date; $hour = isset($timer_end_time) ? date('G', $timer_end_time) : 17; $end_hour = isset($_POST['end_hour']) ? $_POST['end_hour'] : $hour; $min = isset($timer_end_time) ? date('i', $timer_end_time) : 0; $end_min = isset($_POST['end_min']) ? $_POST['end_min'] : $min; $unit_value = $pm_settings['unit_value']; $units = isset($_POST['units']) ? smart_stripslashes($_POST['units']) : '1'; $break_hours = isset($_POST['break_hours']) ? $_POST['break_hours'] : 0; $break_mins = isset($_POST['break_mins']) ? $_POST['break_mins'] : 0; $book_comments = isset($_POST['book_comments']) ? smart_addslashes($_POST['book_comments']) : ''; $int_fee_value = isset($_POST['int_fee_value']) ? $_POST['int_fee_value'] : $pm_settings['int_fee_value']; $int_fee_time = isset($_POST['int_fee_time']) ? $_POST['int_fee_time'] : $pm_settings['int_fee_time']; $ext_fee_value = isset($_POST['ext_fee_value']) ? $_POST['ext_fee_value'] : $pm_settings['ext_fee_value']; $ext_fee_time = isset($_POST['ext_fee_time']) ? $_POST['ext_fee_time'] : $pm_settings['ext_fee_time'];}if (isset($_REQUEST['delete_hours'])){ $projects->delete_hours($_REQUEST['delete_hours']);}$tabtable = new tabtable('book_tab', $title, '100%', '400', '120');$tabtable->print_head($return_to);?><input type="hidden" name="booking_id" value="<?php echo $booking_id; ?>" /><input type="hidden" name="post_action" /><table border="0" cellpadding="0" cellspacing="0"><tr> <td class="TableInside" valign="top"> <?php if (isset($feedback)) echo $feedback; if ($timer = $projects->get_timer($GO_SECURITY->user_id)) { echo '<table border="0" class="alert"><tr><td><img src="'.$GO_THEME->images['alert'].'" border="0" /></td>'. '<td><a class="normal" href="'.$_SERVER['PHP_SELF'].'?project_id='.$timer['project_id'].'&task=stop_timer">'.$pm_clocked_in.'</a></td></tr></table>'; } ?> <table border="0" cellpadding="0" cellspacing="5" width="100%"> <?php $select = new object_select('project', 'projects_form', 'project_id', $project_id); echo '<tr><td>'; echo $select->get_link($strProject); echo ':</td><td>'; echo $select->get_field(); echo '</td></tr>'; if ($GO_MODULES->write_permission) { $select = new object_select('user', 'projects_form', 'pm_user_id', $pm_user_id); echo '<tr><td>'; echo $select->get_link($pm_employee); echo ':</td><td>'; echo $select->get_field(); echo '</td></tr>'; }else { echo '<input type="hidden" name="pm_user_id[value]" value="'.$GO_SECURITY->user_id.'" />'; } $fees = array();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -