X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=tasks.php;h=7c5f0d46785cd13cd2c192c4edffd07819a3ff53;hb=d50da3563583a7c18e5dd76fd751cee19bf8bdaa;hp=779cb319ac8e91ae92f07694eaa6ae4acc75e1d6;hpb=b2f3faa3e8e647967e17aac9e9be7ffbad8f9716;p=contractor-progress.git diff --git a/tasks.php b/tasks.php index 779cb31..7c5f0d4 100644 --- a/tasks.php +++ b/tasks.php @@ -88,12 +88,12 @@ function tasks_display_main() { $task_id = format_int($_REQUEST['tasks_id']);; $client_id = logged_in(); if(logged_in_as_contractor()) { - $row = db_get_row('tasks', 'title,url,description,state,price', 'where id=%i', $task_id); + $row = db_get_row('tasks', 'title,url,description,state,price,client_id', 'where id=%i', $task_id); } else { - $row = db_get_row('tasks', 'title,url,description,state,price', 'where id=%i && client_id=%i', $task_id, $client_id); + $row = db_get_row('tasks', 'title,url,description,state,price,client_id', 'where id=%i && client_id=%i', $task_id, $client_id); } if($row) { - list($title, $url, $description, $state, $price) = $row; + list($title, $url, $description, $state, $price, $owner_id) = $row; tem_set('task_id', $task_id); tem_set('title', $title); tem_set('url', $url); @@ -111,7 +111,10 @@ function tasks_display_main() { case TASK_NEEDS_CLARIFICATION: case TASK_NEEDS_QUOTE: case TASK_BUG: + tem_show('normal_edit_link'); + break; case TASK_NEEDS_GO_AHEAD: + tem_show('approve_price_link'); tem_show('normal_edit_link'); tem_show('price_row'); break; @@ -119,13 +122,19 @@ function tasks_display_main() { tem_show('normal_edit_link'); tem_show('working_link'); tem_show('price_row'); + break; case TASK_WORKING: tem_show('price_row'); tem_show('needs_testing_link'); break; case TASK_NEEDS_TESTING: + if($owner_id == logged_in()) { + tem_show('finished_link'); + } + # FALL THROUGH case TASK_FINISHED: tem_show('price_row'); + tem_show('mark_paid_link'); # FIXME break; } } else { @@ -188,6 +197,17 @@ function tasks_edit_main() { $state = TASK_BUG; } + if(isset($_REQUEST['tasks_mark_paid_id'])) { + if(!logged_in_as_contractor()) { + message("Error: only Jason can mark tasks as paid."); + return './'; + } + $id = $_REQUEST['tasks_mark_paid_id']; + db_update('tasks', 'paid', 1, 'where id=%i', $id); + message('Marked as paid.'); + return './'; + } + if(isset($_REQUEST['tasks_approve_price_id'])) { $id = $_REQUEST['tasks_approve_price_id']; $owner = db_get_value('tasks', 'client_id', 'where id=%i', $id);; @@ -217,7 +237,7 @@ function tasks_edit_main() { message("Error: only Jason can say when he's done."); return './'; } - db_update('tasks', 'state', TASK_NEEDS_TESTING, 'where id=%i', $id); + db_update('tasks', 'state,finished_at', TASK_NEEDS_TESTING, date('Y-m-d'), 'where id=%i', $id); message('Task awaits testing.'); return './'; }