fun_compute.php
来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 227 行
PHP
227 行
<?
function comput_allitem ($FLOW_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;
continue;
}
else
{
$Sequence[$count] = $ROW['ITEM_ID'];
++$length;
++$count;
continue;
}
}
$count = 0;
$count1 = 0;
while ((computearray ($DATA_FORMULAID) != 0))
{
$ARRAY_COUNT = sizeof ($DATA_FORMULA);
for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
{
if (($DATA_FORMULAID[$I] != 0))
{
if ((issonformula ($DATA_FORMULA[$I], $Sequence) == '1'))
{
$Sequence[($length + $count1)] = $DATA_FORMULAID[$I];
$Compute_Formula[$count1] = $DATA_FORMULA[$I];
$DATA_FORMULAID[$I] = 0;
++$count1;
continue;
}
continue;
}
}
++$count;
if ((50 < $count))
{
$ARRAY_COUNT = sizeof ($DATA_FORMULAID);
for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
{
if (($DATA_FORMULAID[$I] != 0))
{
echo ($DATA_FORMULA[$I].'公式定义有误!!<br>');
continue;
}
}
return null;
continue;
}
}
$ARRAY_COUNT = sizeof ($Sequence);
$query = (((''.'SELECT * from SAL_DATA where FLOW_ID=\'').$FLOW_ID).'\'');
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
$USER_ID = $ROW['USER_ID'];
for ($I = 0; ($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 ';
for ($I = 0; ($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 .= ',');
continue;
}
}
($query .= (((((''.' where FLOW_ID=').$FLOW_ID).' and USER_ID=\'').$USER_ID).'\''));
exequery ($connection, $query);
echo ((('员工'.$USER_ID).'的工资项目更新完成!!!').'<br>');
}
}
function issonformula ($formul, $ARRAY_Sequence)
{
$temp = explode ((''.'$'), $formul);
$ARRAY_COUNT = sizeof ($temp);
if (($temp[($ARRAY_COUNT - 1)] == ''))
{
--$ARRAY_COUNT;
}
for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
{
if ((substr ($temp[$I], 0, strpos ($temp[$I], ']')) != ''))
{
$ARRAY_COUNT1 = sizeof ($ARRAY_Sequence);
for ($h = 0; ($h < $ARRAY_COUNT1); ++$h)
{
$tempid = substr ($temp[$I], 0, strpos ($temp[$I], ']'));
if (($ARRAY_Sequence[$h] == $tempid))
{
break;
}
}
if (($h == $ARRAY_COUNT1))
{
return '0';
continue;
}
continue;
}
}
return '1';
}
function computearray ($FORMULAID)
{
$ARRAY_COUNT = sizeof ($FORMULAID);
$SUM = 0;
for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
{
$SUM = ($SUM + $FORMULAID[$I]);
}
return $SUM;
}
function compute_all ($Update_Date, $Sequence, $Compute_Formula)
{
$ARRAY_COUNT = sizeof ($Sequence);
for ($I = ($ARRAY_COUNT - sizeof ($Compute_Formula)); ($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);
for ($I = ($ARRAY_COUNT - 1); (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);
for ($I = 0; ($I < $ARRAY_COUNT); ++$I)
{
if (($Sequence[$I] == $a))
{
return $I;
continue;
}
}
}
function compute_tax ($cha)
{
if (($cha <= 0))
{
return 0;
}
if (((0 < $cha) AND ($cha <= 500)))
{
return round (($cha * 0.05), 2);
}
if (((500 < $cha) AND ($cha <= 2000)))
{
return round ((($cha * 0.1) - 25), 2);
}
if (((2000 < $cha) AND ($cha <= 5000)))
{
return round ((($cha * 0.15) - 125), 2);
}
if (((5000 < $cha) AND ($cha <= 20000)))
{
return round ((($cha * 0.2) - 375), 2);
}
if (((20000 < $cha) AND ($cha <= 40000)))
{
return round ((($cha * 0.25) - 1375), 2);
}
if (((40000 < $cha) AND ($cha <= 60000)))
{
return round ((($cha * 0.3) - 3375), 2);
}
if (((60000 < $cha) AND ($cha <= 80000)))
{
return round ((($cha * 0.35) - 6375), 2);
}
if (((80000 < $cha) AND ($cha <= 100000)))
{
return round ((($cha * 0.4) - 10375), 2);
}
if (((100000 < $cha) AND (100000 < $cha)))
{
return round ((($cha * 0.45) - 15375), 2);
}
}
echo ' ';
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?