turn_auto.php

来自「极限网络智能办公系统 - Office Automation 2008 官方10」· PHP 代码 · 共 411 行

PHP
411
字号
<?php
 

function get_others( $FLOW_ID, &$PRCS_OP_USER, &$PRCS_USER )
{
	global $connection;
	if ( $PRCS_OP_USER != "" )
	{
		$CHANG_USER = 1;
		$CUR_DATE = date( "Y-m-d", time( ) );
		$query = "SELECT * from FLOW_RUN_OTHERS where FLOW_ID=".$FLOW_ID." and USER_ID='{$PRCS_OP_USER}'";
		$cursor = exequery( $connection, $query );
		if ( $ROW = mysql_fetch_array( $cursor ) )
		{
			$OTHERS_USER = $ROW['OTHERS_USER'];
			$BEGIN_TIME = $ROW['BEGIN_TIME'];
			$END_TIME = $ROW['END_TIME'];
			if ( $BEGIN_TIME != "0000-00-00" && $CUR_DATE < $BEGIN_TIME )
			{
				$CHANG_USER = 0;
			}
			if ( $END_TIME != "0000-00-00" && $END_TIME < $CUR_DATE )
			{
				$CHANG_USER = 0;
			}
			if ( $CHANG_USER == 1 )
			{
				$PRCS_OP_USER = $OTHERS_USER;
				if ( !find_id( $PRCS_USER, $PRCS_OP_USER ) )
				{
					$PRCS_USER .= $PRCS_OP_USER.",";
				}
				get_others( $FLOW_ID, $PRCS_OP_USER, $PRCS_USER );
			}
			return 0;
		}
	}
}

include_once( "inc/auth.php" );
include_once( "inc/utility_sms1.php" );
include_once( "../../prcs_role.php" );
include_once( "condition.php" );
include_once( "inc/utility_all.php" );
if ( !run_role( $RUN_ID, $PRCS_ID ) )
{
	exit( );
}
$query = "SELECT * from FLOW_TYPE WHERE FLOW_ID=".$FLOW_ID;
$cursor1 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
	$FLOW_NAME = $ROW['FLOW_NAME'];
	$FORM_ID = $ROW['FORM_ID'];
}
$FORM_DATA = get_form( $FORM_ID, $RUN_ID );
$query = "SELECT * from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID}";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$FLOW_PRCS = $ROW['FLOW_PRCS'];
}
$query = "SELECT * from FLOW_PROCESS WHERE FLOW_ID=".$FLOW_ID." and PRCS_ID={$FLOW_PRCS}";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$PRCS_OUT = $ROW['PRCS_OUT'];
	$PRCS_OUT_SET = $ROW['PRCS_OUT_SET'];
}
$NOT_PASS = check_condition( $FORM_DATA, $PRCS_OUT, $PRCS_OUT_SET, $RUN_ID, $PRCS_ID );
if ( substr( $NOT_PASS, 0, 5 ) == "SETOK" )
{
	$NOT_PASS = "";
}
if ( $NOT_PASS != "" )
{
	$NOT_PASS = str_replace( "\n", "<br>", $NOT_PASS );
	message( "转出条件检查", $NOT_PASS );
	button_back( );
	exit( );
}
$query = "SELECT * from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID." and PRCS_ID=1";
$cursor = exequery( $connection, $query );
$USER_NAME_STR = "";
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$USER_ID = $ROW['USER_ID'];
	$PRCS_NEW_USER_ID = $USER_ID;
}
$query1 = "SELECT * from FLOW_PROCESS where FLOW_ID=".$FLOW_ID." and PRCS_ID={$FLOW_PRCS}";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
	$PRCS_TO = $ROW['PRCS_TO'];
	$PRCS_TO = str_replace( ",,", ",", $PRCS_TO );
}
if ( $PRCS_TO == "" )
{
	if ( $FLOW_PRCS != $PRCS_MAX )
	{
		$PRCS_TO = $FLOW_PRCS + 1;
	}
	else
	{
		$PRCS_TO = "0";
	}
}
$MY_ARRAY = explode( ",", $PRCS_TO );
$ARRAY_COUNT = sizeof( $MY_ARRAY );
if ( $MY_ARRAY[$ARRAY_COUNT - 1] == "" )
{
	--$ARRAY_COUNT;
}
if ( $PRCS_TO_CHOOSE == "" )
{
	$PRCS_TO_CHOOSE = 0;
}
$FLOW_STOP = 0;
$PRCS_ENABLE_COUNT = 0;
$I = 0;
for ( ;	$I < $ARRAY_COUNT;	++$I	)
{
	$NOT_PASS = "";
	if ( $MY_ARRAY[$I] == "0" )
	{
		$PRCS_ID_TO = "";
		if ( $PRCS_TO_CHOOSE == $I )
		{
			$FLOW_STOP = 1;
		}
		++$PRCS_ENABLE_COUNT;
		$FLOW_PRCS = "";
	}
	else
	{
		$query1 = "SELECT * from FLOW_PROCESS where FLOW_ID=".$FLOW_ID." and PRCS_ID={$MY_ARRAY[$I]}";
		$cursor1 = exequery( $connection, $query1 );
		if ( $ROW = mysql_fetch_array( $cursor1 ) )
		{
			$PRCS_ID_TO = $ROW['PRCS_ID'];
			$PRCS_NAME = $ROW['PRCS_NAME'];
			$PRCS_IN = $ROW['PRCS_IN'];
			$PRCS_IN_SET = $ROW['PRCS_IN_SET'];
			if ( $PRCS_TO_CHOOSE == $I )
			{
				$PRCS_ID_NEXT = $PRCS_ID_TO;
				$PRCS_USER = $ROW['PRCS_USER'];
				$PRCS_DEPT = $ROW['PRCS_DEPT'];
				$PRCS_PRIV = $ROW['PRCS_PRIV'];
				$AUTO_TYPE = $ROW['AUTO_TYPE'];
				$AUTO_USER_OP = $ROW['AUTO_USER_OP'];
				$AUTO_USER = $ROW['AUTO_USER'];
			}
			$PRCS_IN_DESC = str_replace( "'include'", "'包含'", $PRCS_IN );
			$PRCS_IN_DESC = str_replace( "'exclude'", "'不包含'", $PRCS_IN_DESC );
			$PRCS_IN_DESC = str_replace( "''", "'空'", $PRCS_IN_DESC );
			$PRCS_IN_DESC = str_replace( "'", " ", $PRCS_IN_DESC );
			$NOT_PASS = check_condition( $FORM_DATA, $PRCS_IN, $PRCS_IN_SET, $RUN_ID, $PRCS_ID );
			if ( substr( $NOT_PASS, 0, 5 ) == "SETOK" )
			{
				$PRCS_IN_DESC = substr( $NOT_PASS, 5 );
				$NOT_PASS = "";
			}
			if ( $MY_ARRAY[$I] == $FLOW_PRCS )
			{
				$IMAGE_NAME = "arrow_right";
			}
			else if ( find_id( $FLOW_PRCS_UP, $MY_ARRAY[$I] ) )
			{
				$IMAGE_NAME = "arrow_up";
			}
			else
			{
				$IMAGE_NAME = "arrow_down";
			}
			if ( $NOT_PASS == "" )
			{
				++$PRCS_ENABLE_COUNT;
				$FLOW_PRCS = $PRCS_ID_TO;
				if ( $PRCS_USER == "" && $PRCS_DEPT == "" && $PRCS_PRIV == "" )
				{
					message( "提示", "管理员尚未指定下一步骤的经办权限,请与管理员联系!" );
					button_back( );
					exit( );
				}
				if ( $AUTO_TYPE == 1 )
				{
					$PRCS_OP_USER = $PRCS_NEW_USER_ID;
					$PRCS_USER = $PRCS_NEW_USER_ID.",";
				}
				else if ( $AUTO_TYPE == 2 )
				{
					$query3 = "SELECT * from USER,USER_PRIV where USER.USER_PRIV=USER_PRIV.USER_PRIV and DEPT_ID='".$LOGIN_DEPT_ID."' and USER_ID!='{$LOGIN_USER_ID}' order by PRIV_NO,USER_NO,USER_NAME";
					$cursor3 = exequery( $connection, $query3 );
					while ( $ROW = mysql_fetch_array( $cursor3 ) )
					{
						$USER_ID = $ROW['USER_ID'];
						$USER_NAME = $ROW['USER_NAME'];
						$USER_PRIV = $ROW['USER_PRIV'];
						if ( !find_id( $PRCS_USER, $USER_ID ) || !find_id( $PRCS_DEPT, $LOGIN_DEPT_ID ) || !find_id( $PRCS_PRIV, $USER_PRIV ) )
						{
							continue;
						}
						$PRCS_OP_USER = $USER_ID;
						$PRCS_USER = $USER_ID.",";
						break;
					}
					$TOP_FLAG = "on";
				}
				else if ( $AUTO_TYPE == 3 )
				{
					if ( $AUTO_USER != "" )
					{
						$query3 = "SELECT * from USER where USER_ID='".$AUTO_USER_OP."'";
						$cursor3 = exequery( $connection, $query3 );
						if ( $ROW = mysql_fetch_array( $cursor3 ) )
						{
							$USER_ID = $ROW['USER_ID'];
							$DEPT_ID = $ROW['DEPT_ID'];
							$USER_PRIV = $ROW['USER_PRIV'];
							if ( find_id( $PRCS_USER, $USER_ID ) || find_id( $PRCS_DEPT, $DEPT_ID ) || find_id( $PRCS_PRIV, $USER_PRIV ) )
							{
								$PRCS_OP_USER = $USER_ID;
							}
						}
						$query3 = "SELECT * from USER where find_in_set(USER_ID,'".$AUTO_USER."') group by USER_ID";
						$cursor3 = exequery( $connection, $query3 );
						while ( $ROW = mysql_fetch_array( $cursor3 ) )
						{
							$USER_ID = $ROW['USER_ID'];
							$DEPT_ID = $ROW['DEPT_ID'];
							$USER_PRIV = $ROW['USER_PRIV'];
							if ( !find_id( $PRCS_USER, $USER_ID ) || !find_id( $PRCS_DEPT, $DEPT_ID ) || !find_id( $PRCS_PRIV, $USER_PRIV ) )
							{
								$PRCS_USER1 .= $USER_ID.",";
							}
						}
						$PRCS_USER = $PRCS_USER1;
					}
				}
				else if ( !( $PRCS_USER != "" ) && !( $PRCS_DEPT == "" ) && !( $PRCS_PRIV == "" ) )
				{
					$PRCS_USER_ARRAY = explode( ",", $PRCS_USER );
					$PRCS_USER_COUNT = sizeof( $PRCS_USER_ARRAY ) - 1;
					if ( $PRCS_USER_COUNT == 1 )
					{
						if ( substr( $PRCS_USER, -1 ) == "," )
						{
							$PRCS_OP_USER = substr( $PRCS_USER, 0, -1 );
						}
						else
						{
							$PRCS_OP_USER = $PRCS_USER;
						}
					}
					else
					{
						$TOP_FLAG = "on";
					}
				}
			}
		}
	}
}
if ( $PRCS_ENABLE_COUNT == "0" )
{
	if ( $NOT_PASS == "" )
	{
		message( "提示", "流程定义存在问题,管理员尚未定义下一步骤,请与管理员联系!" );
	}
	else
	{
		message( "提示", "无符合条件的下一步骤!" );
	}
	button_back( );
	exit( );
}
echo "\r\n<html>\r\n<head>\r\n<title></title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\r\n</head>\r\n\r\n<body class=\"bodycolor\" topmargin=\"5\">\r\n\r\n";
$query = "SELECT * from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID}";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$FLOW_PRCS1 = $ROW['FLOW_PRCS'];
}
$query = "SELECT * from FLOW_PROCESS where FLOW_ID=".$FLOW_ID." and PRCS_ID={$FLOW_PRCS1}";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
	$PLUGIN = $ROW['PLUGIN'];
}
if ( $PLUGIN != "" )
{
	$PLUGIN_FILE = "../../plugin/".$PLUGIN;
	if ( file_exists( $PLUGIN_FILE ) )
	{
		include_once( $PLUGIN_FILE );
	}
}
$CUR_TIME = date( "Y-m-d H:i:s", time( ) );
if ( $FLOW_PRCS == "" )
{
	$query = "update FLOW_RUN_PRCS set PRCS_FLAG='4' WHERE RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID}";
	exequery( $connection, $query );
	$query = "update FLOW_RUN_PRCS set DELIVER_TIME='".$CUR_TIME."' WHERE RUN_ID={$RUN_ID} and PRCS_ID={$PRCS_ID} and USER_ID='{$LOGIN_USER_ID}'";
	exequery( $connection, $query );
	if ( $SMS_REMIND == "on" || $SMS2_REMIND == "on" )
	{
		$query = "SELECT * from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID;
		$cursor = exequery( $connection, $query );
		$USER_NAME_STR = "";
		while ( $ROW = mysql_fetch_array( $cursor ) )
		{
			$USER_ID = $ROW['USER_ID'];
			if ( find_id( $HISTORY_USER_ID, $USER_ID ) || !( $USER_ID != $LOGIN_USER_ID ) )
			{
				$HISTORY_USER_ID .= $USER_ID.",";
			}
		}
		if ( $SMS_REMIND == "on" )
		{
			$HISTORY_USER_ID1 = $HISTORY_USER_ID;
			send_sms( "", $LOGIN_USER_ID, $HISTORY_USER_ID, 7, $SMS_CONTENT );
		}
		if ( $SMS2_REMIND == "on" )
		{
			$HISTORY_USER_ID2 = $HISTORY_USER_ID;
			send_mobile_sms_user( "", $LOGIN_USER_ID, $HISTORY_USER_ID, $SMS_CONTENT, 7 );
		}
	}
	if ( $SMS_REMIND_START == "on" || $SMS2_REMIND_START == "on" )
	{
		$query = "SELECT * from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID." and PRCS_ID=1";
		$cursor = exequery( $connection, $query );
		$USER_NAME_STR = "";
		if ( $ROW = mysql_fetch_array( $cursor ) )
		{
			$USER_ID = $ROW['USER_ID'];
		}
		if ( $SMS_REMIND_START == "on" && !find_id( $HISTORY_USER_ID1, $USER_ID ) )
		{
			send_sms( "", $LOGIN_USER_ID, $USER_ID, 7, $SMS_CONTENT );
		}
		if ( $SMS2_REMIND_START == "on" && !find_id( $HISTORY_USER_ID2, $USER_ID ) )
		{
			send_mobile_sms_user( "", $LOGIN_USER_ID, $USER_ID, $SMS_CONTENT, 7 );
		}
	}
}
else
{
	get_others( $FLOW_ID, &$PRCS_OP_USER, &$PRCS_USER );
	$PRCS_ID_NEXT = $PRCS_ID + 1;
	if ( $TOP_FLAG == "on" )
	{
		$TOP_FLAG = 1;
	}
	else
	{
		$TOP_FLAG = 0;
	}
	$TOK = strtok( $PRCS_USER, "," );
	while ( $TOK != "" )
	{
		if ( $TOK == $PRCS_OP_USER || $TOP_FLAG )
		{
			$OP_FLAG = 1;
		}
		else
		{
			$OP_FLAG = 0;
		}
		$query = "insert into FLOW_RUN_PRCS(RUN_ID,PRCS_ID,USER_ID,PRCS_FLAG,FLOW_PRCS,OP_FLAG,TOP_FLAG) values (".$RUN_ID.",{$PRCS_ID_NEXT},'{$TOK}','1',{$FLOW_PRCS},'{$OP_FLAG}','{$TOP_FLAG}')";
		exequery( $connection, $query );
		$TOK = strtok( "," );
	}
	$query = "update FLOW_RUN_PRCS set DELIVER_TIME='".$CUR_TIME."' WHERE RUN_ID={$RUN_ID} and PRCS_ID={$PRCS_ID} and USER_ID='{$LOGIN_USER_ID}'";
	exequery( $connection, $query );
	$query = "update FLOW_RUN_PRCS set PRCS_FLAG='3' WHERE RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID}";
	exequery( $connection, $query );
	if ( $SMS_REMIND == "on" )
	{
		send_sms( "", $LOGIN_USER_ID, $PRCS_USER, 7, $SMS_CONTENT );
	}
	if ( $SMS2_REMIND == "on" )
	{
		send_mobile_sms_user( "", $LOGIN_USER_ID, $PRCS_USER, $SMS_CONTENT, 7 );
	}
}
if ( $OP == "MANAGE" )
{
	$PRCS_ID1 = $PRCS_ID - 1;
	$PRCS_ID2 = $PRCS_ID - 2;
	$query = "update FLOW_RUN_PRCS set PRCS_FLAG='4' WHERE RUN_ID=".$RUN_ID." AND (PRCS_ID={$PRCS_ID1} or PRCS_ID={$PRCS_ID2})";
	exequery( $connection, $query );
}
if ( $OP == "MANAGE" )
{
	$URL = "../../manage/index1.php";
}
else
{
	$URL = "../index.php";
}
if ( $MENU_FLAG == "1" )
{
	$URL .= "?FLOW_ID=".$FLOW_ID;
}
header( "location: ".$URL );
echo "\r\n</body>\r\n</html>";
?>

⌨️ 快捷键说明

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