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