📄 condition.php
字号:
<?php
function send_webmail( $USER_STR )
{
global $connection;
global $SMS_CONTENT;
global $LOGIN_USER_ID;
global $LOGIN_USER_NAME;
global $RUN_ID;
$query = "SELECT * from WEBMAIL where USER_ID='".$LOGIN_USER_ID."' order by IS_DEFAULT desc LIMIT 1";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
$EMAIL = $ROW['EMAIL'];
$SMTP_SERVER = $ROW['SMTP_SERVER'];
$LOGIN_TYPE = $ROW['LOGIN_TYPE'];
$SMTP_PASS = $ROW['SMTP_PASS'];
$SMTP_PORT = $ROW['SMTP_PORT'];
$SMTP_SSL = $ROW['SMTP_SSL'] == "1" ? "ssl" : "";
$EMAIL_PASS = $ROW['EMAIL_PASS'];
$EMAIL_PASS = decrypt_str( $EMAIL_PASS, "webmail" );
if ( $LOGIN_TYPE == "1" )
{
$SMTP_USER = substr( $EMAIL, 0, strpos( $EMAIL, "@" ) );
}
else
{
$SMTP_USER = $EMAIL;
}
if ( $SMTP_PASS == "yes" )
{
$SMTP_PASS = $EMAIL_PASS;
}
else
{
$SMTP_PASS = "";
}
$USER_ARRAY = explode( ",", $USER_STR );
$query = "select USER_ID,EMAIL from USER WHERE find_in_set(USER_ID,'".$USER_STR."')";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$USER_ID = $ROW['USER_ID'];
if ( !( $USER_ID == $LOGIN_USER_ID ) )
{
$TO_EMAIL = $ROW['EMAIL'];
if ( $TO_EMAIL == "" )
{
$query1 = "select EMAIL from WEBMAIL WHERE USER_ID='".$USER_ID."' limit 1";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW1 = mysql_fetch_array( $cursor ) )
{
$TO_EMAIL = $ROW['EMAIL'];
}
}
$TO_WEBMAIL .= $TO_EMAIL.",";
}
}
$CONTENT = export_flow( $RUN_ID );
$result = send_mail( $EMAIL, $TO_WEBMAIL, $SMS_CONTENT, $CONTENT, $SMTP_SERVER, $SMTP_USER, $SMTP_PASS, TRUE, $LOGIN_USER_NAME, "", "", "", TRUE, $SMTP_PORT, $SMTP_SSL );
if ( $result === TRUE )
{
message( "提示", "外部邮件发送成功" );
}
else
{
message( "外部邮件发送失败", $result );
}
}
}
function turn_other( $INPUT_STR, $EXCEPT = "" )
{
global $connection;
global $FLOW_ID;
global $RUN_ID;
global $PRCS_ID;
global $FLOW_PRCS;
$CUR_DATE = date( "Y-m-d", time( ) );
$INPUT_ARRAY = explode( ",", $INPUT_STR );
$COUNT = sizeof( $INPUT_ARRAY );
$I = 0;
for ( ; $I < $COUNT; ++$I )
{
$query = "select * from FLOW_RULE where FLOW_ID='".$FLOW_ID."' and USER_ID='{$INPUT_ARRAY[$I]}';";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
$BEGIN_DATE = $ROW['BEGIN_DATE'];
$END_DATE = $ROW['END_DATE'];
$STATUS = $ROW['STATUS'];
$TO_ID = $ROW['TO_ID'];
$CONDITION1 = compare_date( $CUR_DATE, $BEGIN_DATE );
$CONDITION2 = compare_date( $CUR_DATE, $END_DATE );
$STATUS1 = 0;
if ( $STATUS == 1 )
{
if ( $BEGIN_DATE != "0000-00-00" && $END_DATE != "0000-00-00" )
{
if ( $CONDITION1 == 1 && $CONDITION2 == -1 )
{
$STATUS1 = 1;
}
}
else if ( $BEGIN_DATE != "0000-00-00" )
{
if ( $CONDITION1 == 1 )
{
$STATUS1 = 1;
}
}
else if ( $END_DATE != "0000-00-00" )
{
if ( $CONDITION1 == 1 )
{
$STATUS1 = 1;
}
}
else
{
$STATUS1 = 1;
}
}
if ( !( $STATUS1 == 1 ) && !( $EXCEPT != $INPUT_ARRAY[$I] ) )
{
$query = "select USER_NAME from USER where USER_ID='".$TO_ID."';";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
$TO_NAME = $ROW['USER_NAME'];
}
$CONTENT = "根据委托规则把工作委托给[".$TO_NAME."]";
run_log( $RUN_ID, $PRCS_ID, $FLOW_PRCS, $INPUT_ARRAY[$I], 2, $CONTENT );
$INPUT_ARRAY[$I] = $TO_ID;
}
}
}
$OUTPUT_STR = join( ",", $INPUT_ARRAY );
if ( substr( $OUTPUT_STR, -1, 1 ) == "," )
{
$OUTPUT_STR = substr( $OUTPUT_STR, 0, -1 );
}
return $OUTPUT_STR;
}
function get_form( $FORM_ID, $RUN_ID )
{
global $connection;
$query = "SELECT ITEM_ID,ITEM_DATA from FLOW_RUN_DATA WHERE RUN_ID=".$RUN_ID." ORDER BY ITEM_ID";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$ITEM_ID = $ROW['ITEM_ID'];
$ITEM_DATA = $ROW['ITEM_DATA'];
$TMP_DATA[$ITEM_ID - 1] = $ITEM_DATA;
}
$query = "SELECT PRINT_MODEL from FLOW_FORM_TYPE WHERE FORM_ID=".$FORM_ID;
$cursor1 = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$PRINT_MODEL = $ROW['PRINT_MODEL'];
}
$ELEMENT_ARRAY = html_element( $PRINT_MODEL );
$ITEM_ID_MAX = sizeof( $ELEMENT_ARRAY );
$ITEM_ID = 0;
$ITEM_I = 0;
for ( ; $ITEM_I < $ITEM_ID_MAX; ++$ITEM_I )
{
$ELEMENT = $ELEMENT_ARRAY[$ITEM_I];
$ECLASS = get_attr( $ELEMENT, "CLASS" );
$ETITLE = get_attr( $ELEMENT, "TITLE" );
if ( !( $ECLASS != "DATE" ) && !( $ECLASS != "USER" ) )
{
$FORM_DATA[$ETITLE] = $TMP_DATA[$ITEM_ID];
if ( $FORM_DATA[$ETITLE] == "NAAAALOaxuKqfjdcOLp66SG1uokBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" )
{
$FORM_DATA[$ETITLE] = "";
}
++$ITEM_ID;
}
}
return $FORM_DATA;
}
function check_condition( $FORM_DATA, $CONDITION, $CONDITION_SET, $RUN_ID, $PRCS_ID )
{
global $connection;
global $LOGIN_USER_NAME;
global $LOGIN_USER_ID;
global $LOGIN_DEPT_ID;
global $LOGIN_USER_PRIV;
global $CONDITION_DESC;
if ( $CONDITION == "" )
{
return "";
}
$CONDITION_SET_VALUE = $CONDITION_SET;
$CONDITION_SET_DESC = $CONDITION_SET;
$CONDITION_SET_DESC = str_replace( "and", "并且", $CONDITION_SET_DESC );
$CONDITION_SET_DESC = str_replace( "or", "或者", $CONDITION_SET_DESC );
$CONDITION_SET_DESC = str_replace( "!", "非", $CONDITION_SET_DESC );
$CON_ARRAY = explode( "\n", $CONDITION );
$ARRAY_COUNT = sizeof( $CON_ARRAY );
if ( $CON_ARRAY[$ARRAY_COUNT - 1] == "" )
{
--$ARRAY_COUNT;
}
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
$RULE = $CON_ARRAY[$I];
$TMP = trim( str_replace( " ", "", $RULE ) );
if ( !( $TMP == "" ) )
{
$RULE_ARRAY = explode( "'", $RULE );
$ITEM_TITLE = $RULE_ARRAY[1];
$ITEM_CON = $RULE_ARRAY[2];
$ITEM_VALUE = $RULE_ARRAY[3];
if ( strstr( $ITEM_TITLE, "[主办人会签意见]" ) || strstr( $ITEM_TITLE, "[从办人会签意见]" ) )
{
$query = "SELECT USER_ID from FLOW_RUN_PRCS where RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID}";
if ( strstr( $ITEM_TITLE, "[主办人会签意见]" ) )
{
$query .= " and OP_FLAG=1";
}
else
{
$query .= " and OP_FLAG=0";
}
$cursor = exequery( $connection, $query );
$FEED_CONTENT = "";
$PRCS_USER = "";
while ( $ROW = mysql_fetch_array( $cursor ) )
{
$PRCS_USER = $ROW['USER_ID'];
$query1 = "SELECT CONTENT from FLOW_RUN_FEEDBACK where RUN_ID=".$RUN_ID." and PRCS_ID={$PRCS_ID} and USER_ID='{$PRCS_USER}'";
$cursor1 = exequery( $connection, $query1 );
while ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$FEED_CONTENT .= $ROW['CONTENT'];
}
}
if ( $PRCS_USER != "" )
{
$FORM_DATA[$ITEM_TITLE] = $FEED_CONTENT;
}
else
{
$FORM_DATA[$ITEM_TITLE] = "无-从-办-人";
}
}
else if ( strstr( $ITEM_TITLE, "[公共附件名称]" ) )
{
$query1 = "SELECT ATTACHMENT_NAME from FLOW_RUN WHERE RUN_ID='".$RUN_ID."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$ATTACHMENT_NAME = $ROW['ATTACHMENT_NAME'];
}
$FORM_DATA[$ITEM_TITLE] = $ATTACHMENT_NAME;
}
else if ( strstr( $ITEM_TITLE, "[当前步骤号]" ) )
{
$FORM_DATA[$ITEM_TITLE] = $PRCS_ID;
}
else if ( strstr( $ITEM_TITLE, "[当前主办人姓名]" ) )
{
$FORM_DATA[$ITEM_TITLE] = $LOGIN_USER_NAME;
}
else if ( strstr( $ITEM_TITLE, "[当前主办人角色]" ) )
{
$query1 = "SELECT PRIV_NAME from USER_PRIV WHERE USER_PRIV='".$LOGIN_USER_PRIV."'";
$cursor1 = exequery( $connection, $query1 );
if ( $ROW = mysql_fetch_array( $cursor1 ) )
{
$PRIV_NAME = $ROW['PRIV_NAME'];
}
$FORM_DATA[$ITEM_TITLE] = $PRIV_NAME;
}
else if ( strstr( $ITEM_TITLE, "[当前主办人部门]" ) )
{
include_once( "inc/department.php" );
$FORM_DATA[$ITEM_TITLE] = $SYS_DEPARTMENT[$LOGIN_DEPT_ID]['DEPT_NAME'];
}
$CHECK_PASS = 0;
if ( stristr( $ITEM_CON, "include" ) )
{
$ITEM_CON_DESC = "包含";
if ( stristr( $FORM_DATA[$ITEM_TITLE], $ITEM_VALUE ) )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, "exclude" ) )
{
$ITEM_CON_DESC = "不包含";
if ( !stristr( $FORM_DATA[$ITEM_TITLE], $ITEM_VALUE ) )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, "==" ) || stristr( $ITEM_CON, "!==" ) )
{
if ( stristr( $ITEM_CON, "==" ) )
{
$flag = TRUE;
}
else
{
$flag = FALSE;
}
$ITEM_CON_DESC = $flag ? "类型为" : "类型不能为";
if ( $ITEM_VALUE == "数值" && $flag == is_numeric( $FORM_DATA[$ITEM_TITLE] ) )
{
$CHECK_PASS = 1;
}
else if ( $ITEM_VALUE == "日期" && $flag == is_date( $FORM_DATA[$ITEM_TITLE] ) )
{
$CHECK_PASS = 1;
}
else if ( $ITEM_VALUE == "日期+时间" && $flag == is_date_time( $FORM_DATA[$ITEM_TITLE] ) )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, ">=" ) )
{
$ITEM_CON_DESC = "大于等于";
if ( $ITEM_VALUE <= $FORM_DATA[$ITEM_TITLE] )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, "<=" ) )
{
$ITEM_CON_DESC = "小于等于";
if ( $FORM_DATA[$ITEM_TITLE] <= $ITEM_VALUE )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, "<>" ) )
{
$ITEM_CON_DESC = "不等于";
if ( $FORM_DATA[$ITEM_TITLE] != $ITEM_VALUE )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, ">" ) )
{
$ITEM_CON_DESC = "大于";
if ( $ITEM_VALUE < $FORM_DATA[$ITEM_TITLE] )
{
$CHECK_PASS = 1;
}
}
else if ( stristr( $ITEM_CON, "<" ) )
{
$ITEM_CON_DESC = "小于";
if ( $FORM_DATA[$ITEM_TITLE] < $ITEM_VALUE )
{
$CHECK_PASS = 1;
}
}
else if ( $ITEM_CON == "=" )
{
$ITEM_CON_DESC = "等于";
if ( $FORM_DATA[$ITEM_TITLE] == $ITEM_VALUE )
{
$CHECK_PASS = 1;
}
}
else
{
$ITEM_CON = "";
}
if ( $ITEM_VALUE == "" )
{
$ITEM_VALUE = "空";
}
$SET_DESC = "{$ITEM_TITLE} {$ITEM_CON_DESC} {$ITEM_VALUE}";
if ( !$CHECK_PASS )
{
if ( $ITEM_CON == "" || $ITEM_TITLE == "" )
{
$NOT_PASS = "条件表达式错误:\n".$RULE."\n";
return $NOT_PASS;
}
if ( $CONDITION_SET == "" )
{
$NOT_PASS = "不符合条件:\n".$SET_DESC."\n";
return $NOT_PASS;
}
$SET_VALUE = "0";
}
else
{
$SET_VALUE = "1";
}
$COUNT = $I + 1;
$CONDITION_SET_VALUE = str_replace( "[".$COUNT."]", $SET_VALUE, $CONDITION_SET_VALUE );
$CONDITION_SET_DESC = str_replace( "[".$COUNT."]", "[".$SET_DESC."]", $CONDITION_SET_DESC );
}
}
if ( $CONDITION_SET != "" )
{
eval( "\$RESULT=(".$CONDITION_SET_VALUE.");" );
if ( !$RESULT )
{
$NOT_PASS = $CONDITION_DESC == "" ? "不符合条件公式:".$CONDITION_SET_DESC : $CONDITION_DESC;
return $NOT_PASS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -