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 + -
显示快捷键?