aboutsummaryrefslogtreecommitdiff
path: root/src/ftask.php
diff options
context:
space:
mode:
authorCassio de Campos <cassiopc@gmail.com>2017-07-31 17:49:48 +0000
committerCassio de Campos <cassiopc@gmail.com>2017-07-31 17:49:48 +0000
commit335f8f720e62d485dff8632f526b81c17d0b95e4 (patch)
tree40f3f97942b2ce810d180851b7074807670454dc /src/ftask.php
parenta844dc7d621fc03d5846bd523d8b8899ecdba610 (diff)
downloadboca-335f8f720e62d485dff8632f526b81c17d0b95e4.tar.gz
boca-335f8f720e62d485dff8632f526b81c17d0b95e4.zip
bfs
Diffstat (limited to 'src/ftask.php')
-rw-r--r--src/ftask.php61
1 files changed, 38 insertions, 23 deletions
diff --git a/src/ftask.php b/src/ftask.php
index 36f272a..fc2cd48 100644
--- a/src/ftask.php
+++ b/src/ftask.php
@@ -386,6 +386,12 @@ function DBNewTask($param, $c=null, $autotask=false) {
exit;
}
$tasknumber = $a["nexttask"] + 1;
+ DBExec($c, "update sitetable set sitenexttask=$tasknumber" .
+ " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)");
+ $taskinc = myunique();
+ if(($taskinc % 2) == 0) $taskinc--;
+ if($autotask) $taskinc++;
+ $tasknumber = $taskinc;
} else {
$sql = "select * from tasktable as t where t.contestnumber=$contest and " .
"t.sitenumber=$site and t.tasknumber=$tasknumber";
@@ -396,9 +402,9 @@ function DBNewTask($param, $c=null, $autotask=false) {
$lr = DBRow($r,0);
$t = $lr['updatetime'];
}
+ $taskinc = $tasknumber - 1;
}
- DBExec($c, "update sitetable set sitenexttask=$tasknumber" .
- " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)");
+
$ret=1;
if($insert) {
if($filename!="" && $filepath!="") {
@@ -420,28 +426,37 @@ function DBNewTask($param, $c=null, $autotask=false) {
}
} else $oid="NULL";
- $taskinc = myunique();
- if(($taskinc % 2) == 0) $taskinc--;
- if($autotask) $taskinc++;
- $tasknumber = $taskinc;
- while(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
- "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
- "color, colorname, updatetime) " .
- "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
- "'$desc', '$sys', '$color', '$colorname', $updatetime)",
- "DBNewTask(insert task)")) {
- $tasknumber+=2;
- if($tasknumber > $taskinc + 6) break;
- }
- if($tasknumber > $taskinc + 6) {
- DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
- "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
- "color, colorname, updatetime) " .
- "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
- "'$desc', '$sys', '$color', '$colorname', $updatetime)",
- "DBNewTask(insert task)");
+ if($taskinc >= $tasknumber) {
+ while(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
+ "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
+ "color, colorname, updatetime) " .
+ "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
+ "'$desc', '$sys', '$color', '$colorname', $updatetime)",
+ "DBNewTask(insert task)")) {
+ $tasknumber+=2;
+ if($tasknumber > $taskinc + 6) {
+ DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
+ "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
+ "color, colorname, updatetime) " .
+ "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
+ "'$desc', '$sys', '$color', '$colorname', $updatetime)",
+ "DBNewTask(insert task)");
+ break;
+ }
+ }
+ } else {
+ if(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " .
+ "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ".
+ "color, colorname, updatetime) " .
+ "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " .
+ "'$desc', '$sys', '$color', '$colorname', $updatetime)",
+ "DBNewTask(insert task)")) {
+ if($cw)
+ DBExec($c, "commit work", "DBNewTask(commit-insert-error)");
+ return false;
+ }
}
- if($sys=="t") $u="System";
+ if($sys=="t") $u="System";
else $u = "User $user";
if($cw) {