asset_admin_transfer.php

来自「这是一个用于资产管理的源码工具包」· PHP 代码 · 共 659 行 · 第 1/3 页

PHP
659
字号
<?/******************************************************************************	SimpleAssets - an online web based asset management application.*	Copyright (C) 2002 Jeff Gordon (jgordon81@users.sourceforge.net). All rights reserved.*	Public Works and Government Services Canada (PWGSC)*   Architecture and Standards Directorate**	Released July 2002**  	This program is free software licensed under the * 	GNU General Public License (GPL).**	This file is part of SimpleAssets.**	SimpleAssets is free software; you can redistribute it and/or modify*	it under the terms of the GNU General Public License as published by*	the Free Software Foundation; either version 2 of the License, or*	(at your option) any later version.**	SimpleAssets is distributed in the hope that it will be useful,*	but WITHOUT ANY WARRANTY; without even the implied warranty of*	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*	GNU General Public License for more details.**	You should have received a copy of the GNU General Public License*	along with SimpleAssets; if not, write to the Free Software*	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*******************************************************************************/// contains functions:// asset_admin_transfer_erase($key)// asset_admin_transfer_sign_in($key)// asset_admin_transfer_squeeze()// asset_admin_transfer_approvals($key)// asset_admin_transfer_approvals_approve($key, $new)// asset_admin_transfer_approvals_deny($key)// asset_admin_transfer_choose_owner($key)// asset_admin_transfer_dates($key)// asset_admin_transfer_licenses($key)// asset_admin_transfer($key)// deletes an upcoming asset transfer or sign outfunction asset_admin_transfer_erase($key) {	global $my_access_level;	global $my_emp_id;	global $print_screen;		// get info for transfer id	if ($my_access_level < 2) $sql2 = "SELECT StartDate, EndDate, EmployeeId, AssetId, Temp FROM Assignments WHERE Id=" . $key . " AND StartDate > " . time() . " AND EmployeeId=" . $my_emp_id;	else $sql2 = "SELECT StartDate, EndDate, EmployeeId, AssetId, Temp FROM Assignments WHERE Id=" . $key;	if (($result2 = doSql($sql2)) && (mysql_num_rows($result2) && ($query_data2 = mysql_fetch_array($result2)))) {		// found and may be deleted		$startdate = $query_data2["StartDate"];		$enddate = $query_data2["EndDate"];		$assetid = $query_data2["AssetId"];		$temp = $query_data2["Temp"];		$err_out = "You cannot cancel the only owner or any transfers which have already taken place.";	} else {		// not found, cannot be deleted		$err_out = "This transfer has already been deleted or its start date has already passed.  See the help for options about changing transfer dates.";	}	// for permanent transfers only, verify number of entries is greater than 1, otherwise the asset will be assigned to no one if it was deleted	$sql = "SELECT StartDate, EndDate, EmployeeId AS Employees_ID, AssetId, Temp FROM Assignments WHERE AssetId=" . $assetid . " AND Temp=0 AND Approve=0";	if ($result = doSql($sql)) $num_results = mysql_num_rows($result);	else $num_results = 0;		// check if either the transfer no longer exists OR if it's the only transfer	if ((mysql_num_rows($result2) == 0) || (($temp == "0") && ($num_results < 2))) {		asset_menu_header(true,"Cancel Request","<font class=text18bold color='#ff0033'>ERROR: Cancellation Refused.</font>",$assetid);		asset_tabs($assetid);		asset_print_info($assetid);		echo "<table width=100% bgcolor='#ffeecc'><tr><td><br>";		echo "<blockquote><font class='text12'>" . $err_out . "</font></blockquote>";		echo "<p></td></tr></table>";	} else {		if ($temp == 0) {			// select the asset transfer right after the asset transfer being deleted and get start date			$sql = "SELECT StartDate FROM Assignments WHERE AssetId=" . $assetid . " AND Temp=0 AND StartDate > " . $enddate . " AND Approve=0 AND id <> " . $key . " ORDER BY StartDate";			$result = doSql($sql);			if (($result = doSql($sql)) && (mysql_num_rows($result) && ($query_data = mysql_fetch_array($result)))) $newenddate = ($query_data["StartDate"] - 1);			else $newenddate = "0";			// if current end date is 0, the new end date will be 0			if ($enddate == "0") $newenddate = "0";			// select the asset transfer right before the asset transfer being deleted			// update its enddate with saved startdate - 1			$sql = "SELECT id FROM Assignments WHERE AssetId=" . $assetid . " AND Temp=0 AND StartDate < " . $startdate . " AND Approve=0 AND id <> " . $key . " ORDER BY StartDate DESC";			if (($result = doSql($sql)) && (mysql_num_rows($result) && ($query_data = mysql_fetch_array($result)))) {				$sql = "UPDATE Assignments SET EndDate=" . $newenddate . " WHERE id=" . $query_data["id"];				$result = doSql($sql);				}		}					// delete the requested transfer		$sql = "DELETE FROM Assignments WHERE Id=" . $key;		$result = doSql($sql);		// join two adjacent transfers assigned to the same employee and asset		asset_admin_transfer_squeeze();			asset_menu_header(true,"Cancel Request","Cancellation Accepted</font>",$assetid);		asset_tabs($assetid);		asset_print_info($assetid);		echo "<table width=100% bgcolor='#ffeecc'><tr><td><br>";		echo "<blockquote><font class='text12'>The request has been successfully cancelled.</font></blockquote>";		echo "<p></td></tr></table>";	}}// does an early sign in of an asset previously signed outfunction asset_admin_transfer_sign_in($key) {	global $lastaction;	global $lastkey;	$sql = "SELECT EmployeeId AS Employees_ID, AssetId, EndDate FROM Assignments WHERE id=" . $key;	if (($result = doSql($sql)) && (mysql_num_rows($result) && ($query_data = mysql_fetch_array($result)))) {		$day = date("d",time());		$month = date("m",time());		$year = date ("Y",time());		$new_time =  mktime(23,59,59,$month,$day,$year);		if ($new_time < $query_data["EndDate"]) $sql = "UPDATE Assignments SET EndDate=" . $new_time . ",Completed=1 WHERE id=" . $key;		else $sql = "UPDATE Assignments SET Completed=1 WHERE id=" . $key;		$result = doSql($sql);		asset_menu_header(true,"Early Sign In","Request for Early Sign In Received",$query_data["AssetId"]);		asset_tabs($query_data["AssetId"]);		asset_print_info($query_data["AssetId"]);		echo "<table width=100% bgcolor='#ffeecc'><tr><td><br>";		echo "<blockquote><font class='text12'>Asset has been successfully signed in.</font></blockquote>";		echo "<p></td></tr></table>";		echo "<p><center>";		echo "<a href='" . $PHP_SELF . "?action=" . $lastaction . "&key=" . $lastkey . "'><img src='images/next.jpg' border=0 width=88 height=27></a>";		echo "</center>";	} else {		asset_menu_header(true,"Early Sign In","<font color='#ff0033'>ERROR: Request for Early Sign In Failed</font>",$query_data["AssetId"]);		asset_tabs($query_data["AssetId"]);		asset_print_info($query_data["AssetId"]);		echo "<table width=100% bgcolor='#ffeecc'><tr><td><br>";		echo "<blockquote><font class='text12'>The transfer information about the asset you are trying to sign in could not be located.</font></blockquote>";		echo "<p></td></tr></table>";		echo "<p><center>";		echo "<a href='" . $PHP_SELF . "?action=" . $lastaction . "&key=" . $lastkey . "'><img src='images/next.jpg' border=0 width=88 height=27></a>";		echo "</center>";	}}// join two adjacent transfers assigned to the same employee and assetfunction asset_admin_transfer_squeeze() {	$sql = "SELECT Assignments.id AS id_Main, Assignments_Alias.id AS id_Alias, Assignments.StartDate AS StartDate, Assignments.EndDate AS EndDate, Assignments_Alias.StartDate AS StartDate_Alias, Assignments_Alias.EndDate AS EndDate_Alias FROM Assignments LEFT JOIN Assignments AS Assignments_Alias ON ((Assignments.EndDate = ((Assignments_Alias.StartDate)-1)) AND (Assignments.EmployeeId = Assignments_Alias.EmployeeId) AND (Assignments.AssetId = Assignments_Alias.AssetId) AND (Assignments.Temp = Assignments_Alias.Temp)) WHERE Assignments.Approve=0 AND Assignments_Alias.Approve=0";	$result = doSql($sql);	while (($result = doSql($sql)) && (mysql_num_rows($result)) && ($query_data = mysql_fetch_array($result))) {		if ($query_data["StartDate"] == 0) {			$newsql = "UPDATE Assignments SET StartDate=" . $query_data["StartDate_Alias"] . " WHERE Id=" . $query_data["id_Main"];			$result2 = doSql($newsql);		}		$newsql = "UPDATE Assignments SET EndDate=" . $query_data["EndDate_Alias"] . " WHERE Id=" . $query_data["id_Main"];		$result2 = doSql($newsql);		$newsql = "DELETE FROM Assignments WHERE id=" . $query_data["id_Alias"];		$result2 = doSql($newsql);	}}// approval screen for unapproved transfersfunction asset_admin_transfer_approvals($key) {	global $my_emp_id;	global $my_access_level;	global $temp;	global $approve;	global $deny;	global $print_screen;	global $hrcolor;	global $emp_db;		$PHP_SELF = $_SERVER['PHP_SELF'];	if (is_numeric($approve)) $err_out = asset_admin_transfer_approvals_approve($approve, true);	if (is_numeric($deny)) $err_out = asset_admin_transfer_approvals_deny($deny);	asset_menu_header(true,"","Approve Transfers","");	$sql = "SELECT " . $emp_db . "Employees.LastName, " . $emp_db . "Employees.FirstName, " . $emp_db . "Employees.Id, Assets.AssetTag, Assets.AssetType, Assets.AssetSupplier, Assets.AssetModel, Assets.AssetSerial, Assets.AssetPrice, Assets.os, Assets.Id AS Assets_ID, Assignments.EmployeeId AS Employees_ID, Assignments.StartDate, Assignments.EndDate, Assignments.Id AS Assignments_ID FROM ((Assets LEFT JOIN Assignments ON Assets.ID = Assignments.AssetId) LEFT JOIN " . $emp_db . "Employees ON " . $emp_db . "Employees.ID = Assignments.EmployeeID) WHERE Assignments.Approve=1 ORDER BY Assignments.StartDate DESC;";	if (($result = doSql($sql)) && (mysql_num_rows($result))) {		echo "<table width=100% border=0 class='approvals_dark'>";		echo "<td class='text12bold'>Transfer Date</td>";		echo "<td class='text12bold'>Current Owner</td>";		echo "<td class='text12bold'>New Owner</td>";		echo "<td class='text12bold'>Asset Tag</td>";		echo "<td class='text12bold'>Type</td>";		echo "<td class='text12bold'>Supplier/Model</td>";		echo "<td class='text12bold'>Approve</td>";		echo "<td class='text12bold'>Deny</td>";				while ($query_data = mysql_fetch_array($result)) {			$assetid = $query_data["Assets_ID"];			$sql2 = "SELECT " . $emp_db . "Employees.LastName, " . $emp_db . "Employees.FirstName, " . $emp_db . "Employees.Tel, " . $emp_db . "Employees.Organization, " . $emp_db . "Employees.Dept, " . $emp_db . "Employees.Building, " . $emp_db . "Employees.Floor, " . $emp_db . "Employees.Workstation, Assignments.StartDate, Assignments.Completed, Assignments.EndDate, Assignments.EmployeeID AS Employees_ID FROM Assignments LEFT JOIN " . $emp_db . "Employees ON Assignments.EmployeeID = " . $emp_db . "Employees.Id WHERE Assignments.AssetId=" . $assetid . " AND Assignments.Temp=0 AND Assignments.Approve=0 AND Assignments.StartDate <= " . time() . " ORDER BY Assignments.StartDate DESC;";			$result2 = doSql($sql2);			if (($result2) && (mysql_num_rows($result2)) && ($query_data2 = mysql_fetch_array($result2)) ) {				$cur_owner_id = $query_data2["Employees_ID"];				switch($query_data2["Employees_ID"]) {					case "0":						$cur_owner_name = "General Assets";						break;					case "-1":						$cur_owner_name = "Surplus";						break;					case "-2":						$cur_owner_name = "Retired";						break;					default:						$cur_owner_name = $query_data2["LastName"] . ", " . $query_data2["FirstName"];						break;				}			} else {				$cur_owner_name = "Unknown";			}			$new_owner_name = $query_data["Employees_ID"];			switch($query_data["Employees_ID"]) {				case "0":					$new_owner_name = "General Assets";

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?