📄 fun_compute.php
字号:
<?php
function comput_allitem( $FLOW_ID, $USER_ID )
{
global $connection;
$count = 0;
$count1 = 0;
$length = 0;
$query = "SELECT * from SAL_ITEM";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
if ( $ROW['ISCOMPUTER'] == "1" )
{
$DATA_FORMULA[$count1] = $ROW['FORMULA'];
$DATA_FORMULAID[$count1] = $ROW['ITEM_ID'];
++$count1;
}
else
{
$Sequence[$count] = $ROW['ITEM_ID'];
++$length;
++$count;
}
}
$count = 0;
$count1 = 0;
while ( computearray( $DATA_FORMULAID ) != 0 )
{
$ARRAY_COUNT = sizeof( $DATA_FORMULA );
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
if ( !( $DATA_FORMULAID[$I] != 0 ) && !( issonformula( $DATA_FORMULA[$I], $Sequence ) == "1" ) )
{
$Sequence[$length + $count1] = $DATA_FORMULAID[$I];
$Compute_Formula[$count1] = $DATA_FORMULA[$I];
$DATA_FORMULAID[$I] = 0;
++$count1;
}
}
++$count;
if ( !( 50 < $count ) )
{
continue;
}
$ARRAY_COUNT = sizeof( $DATA_FORMULAID );
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
if ( $DATA_FORMULAID[$I] != 0 )
{
echo $DATA_FORMULA[$I]."公式定义有误!!<br>";
}
}
return;
}
$ARRAY_COUNT = sizeof( $Sequence );
$query = "SELECT * from SAL_DATA where FLOW_ID='".$FLOW_ID."'and USER_ID='{$USER_ID}'";
$cursor = exequery( $connection, $query );
if ( $ROW = mysql_fetch_array( $cursor ) )
{
$USER_ID = $ROW['USER_ID'];
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
$Update_Date[$I] = $ROW["S".$Sequence[$I]];
}
$Update_Date = compute_all( $Update_Date, $Sequence, $Compute_Formula );
$query = "update SAL_DATA set ";
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
$STR = "S".$Sequence[$I];
if ( $Update_Date[$I] == "" )
{
$Update_Date[$I] = "0";
}
$query .= $STR."=".$Update_Date[$I];
if ( $I != $ARRAY_COUNT - 1 )
{
$query .= ",";
}
}
$query .= " where FLOW_ID=".$FLOW_ID." and USER_ID='{$USER_ID}'";
exequery( $connection, $query );
}
}
function issonformula( $formul, $ARRAY_Sequence )
{
$temp = explode( "\$", $formul );
$ARRAY_COUNT = sizeof( $temp );
if ( $temp[$ARRAY_COUNT - 1] == "" )
{
--$ARRAY_COUNT;
}
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
if ( !( substr( $temp[$I], 0, strpos( $temp[$I], "]" ) ) != "" ) )
{
continue;
}
$ARRAY_COUNT1 = sizeof( $ARRAY_Sequence );
$h = 0;
for ( ; $h < $ARRAY_COUNT1; ++$h )
{
$tempid = substr( $temp[$I], 0, strpos( $temp[$I], "]" ) );
if ( !( $ARRAY_Sequence[$h] == $tempid ) )
{
continue;
}
break;
}
if ( !( $h == $ARRAY_COUNT1 ) )
{
continue;
}
return "0";
}
return "1";
}
function computearray( $FORMULAID )
{
$ARRAY_COUNT = sizeof( $FORMULAID );
$SUM = 0;
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
$SUM += $FORMULAID[$I];
}
return $SUM;
}
function compute_all( $Update_Date, $Sequence, $Compute_Formula )
{
$ARRAY_COUNT = sizeof( $Sequence );
$I = $ARRAY_COUNT - sizeof( $Compute_Formula );
for ( ; $I < $ARRAY_COUNT; ++$I )
{
if ( strlen( strrchr( $Compute_Formula[$I - ( $ARRAY_COUNT - sizeof( $Compute_Formula ) )], "<" ) ) == 0 )
{
$temp = formula_swap( $Sequence, $Compute_Formula[$I - ( $ARRAY_COUNT - sizeof( $Compute_Formula ) )], $Update_Date );
eval( "\$O=".$temp.";" );
}
else
{
$temp = str_replace( "<", "", formula_swap( $Sequence, $Compute_Formula[$I - ( $ARRAY_COUNT - sizeof( $Compute_Formula ) )], $Update_Date ) );
$temp = str_replace( ">", "", $temp );
eval( "\$O=".$temp.";" );
$O = compute_tax( round( $O, 2 ) );
}
$Update_Date[$I] = round( $O, 2 );
}
return $Update_Date;
}
function formula_swap( $Sequence, $Formula, $Update_Date )
{
$Formula = str_replace( "[", "", $Formula );
$Formula = str_replace( "]", "", $Formula );
$Formula = str_replace( "\$", "S", $Formula );
$ARRAY_COUNT = sizeof( $Sequence );
$I = $ARRAY_COUNT - 1;
for ( ; 0 <= $I; --$I )
{
$temp = "S".( $I + 1 );
$index = findinarray( $I + 1, $Sequence );
$Formula = str_replace( $temp, $Update_Date[$index], $Formula );
}
return $Formula;
}
function findinarray( $a, $Sequence )
{
$ARRAY_COUNT = sizeof( $Sequence );
$I = 0;
for ( ; $I < $ARRAY_COUNT; ++$I )
{
if ( !( $Sequence[$I] == $a ) )
{
continue;
}
return $I;
}
}
function compute_tax( $cha )
{
if ( $cha <= 0 )
{
return 0;
}
if ( 0 < $cha && $cha <= 500 )
{
return round( $cha * 0.05, 2 );
}
if ( 500 < $cha && $cha <= 2000 )
{
return round( $cha * 0.1 - 25, 2 );
}
if ( 2000 < $cha && $cha <= 5000 )
{
return round( $cha * 0.15 - 125, 2 );
}
if ( 5000 < $cha && $cha <= 20000 )
{
return round( $cha * 0.2 - 375, 2 );
}
if ( 20000 < $cha && $cha <= 40000 )
{
return round( $cha * 0.25 - 1375, 2 );
}
if ( 40000 < $cha && $cha <= 60000 )
{
return round( $cha * 0.3 - 3375, 2 );
}
if ( 60000 < $cha && $cha <= 80000 )
{
return round( $cha * 0.35 - 6375, 2 );
}
if ( 80000 < $cha && $cha <= 100000 )
{
return round( $cha * 0.4 - 10375, 2 );
}
if ( 100000 < $cha && 100000 < $cha )
{
return round( $cha * 0.45 - 15375, 2 );
}
}
echo " ";
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -