X-Git-Url: https://jasonwoof.com/gitweb/?p=contractor-progress.git;a=blobdiff_plain;f=index.php;h=4258b8a192dbed82839e43e71e0a9414906bc119;hp=121f0994cbe7a7f6bc8391fae0def7e4841a81be;hb=ee6685eef368fdd21c4916b32a0ad26880146cce;hpb=db0666968543559bb521f3a7c15ff4c8ab2f7661 diff --git a/index.php b/index.php index 121f099..4258b8a 100644 --- a/index.php +++ b/index.php @@ -1,14 +1,25 @@ . -function enc_money($float) { - return format_money($float, $cents = true); -} +require_once('code/tasks.php'); function index_main() { if(!logged_in()) { - return './login'; + return 'login'; } $ret = _index_main(); if($ret) { @@ -17,16 +28,24 @@ function index_main() { tem_show('main_body'); } -function task_summary($tem_prefix, $where_clause) { - $rows = db_get_rows('tasks', 'id,price,title,state', $where_clause); +# pass multiple argumens for where-clause and printf-args just like db_get_rows() +function task_summary($tem_prefix, $where_clause/*, ... */) { + $args = func_get_args(); + $args = array_slice($args, 1); + array_unshift($args, 'tasks', 'id,price,title,state,client_id'); + $rows = call_user_func_array('db_get_rows', $args); + #$rows = db_get_rows('tasks', 'id,price,title,state,client_id', $where_clause); if($rows) { $total = 0.0; foreach($rows as $row) { - list($id, $price, $title, $state) = $row; + list($id, $price, $title, $state, $client_id) = $row; tem_set('task_id', $id); tem_set('task_title', $title); tem_set('task_price', $price); tem_set('task_state', task_state_pretty($state)); + if(logged_in_as_contractor()) { + tem_set('client', db_get_value('people', 'username', 'where id=%i', $client_id)); + } tem_show($tem_prefix . '_row'); $total += $price; } @@ -38,12 +57,38 @@ function task_summary($tem_prefix, $where_clause) { } function _index_main() { - task_summary('needs_attention', 'where state=' . TASK_DRAFT . ' || state=' . TASK_NEEDS_CLARIFICATION . ' || state=' . TASK_NEEDS_GO_AHEAD . ' || state=' . TASK_NEEDS_TESTING . ' order by id'); - task_summary('queue', 'where state=' . TASK_QUEUED . ' order by ord'); - task_summary('jason', 'where state=' . TASK_NEEDS_QUOTE . ' || state=' . TASK_WORKING . ' || state=' . TASK_BUG . ' order by id desc'); - #task_summary('jason_pricing', 'where state=' . TASK_NEEDS_QUOTE . ' order by id desc'); - #task_summary('jason_working', 'where state=' . TASK_WORKING . ' order by id desc'); - task_summary('finished_unpaid', 'where state=' . TASK_FINISHED . ' && paid = 0 order by id desc'); - task_summary('finished_paid', 'where state=' . TASK_FINISHED . ' && paid = 1 order by id desc'); + $client_id = logged_in(); + + # make sure they've filled out the tiny user agreement + $tiny_agreement = db_get_value('people', 'tiny_agreement', 'where id=%i', $client_id); + if($tiny_agreement < 30) { + return './tiny_agreement'; + } + + if(logged_in_as_contractor()) { + tem_show('su_link'); + tem_show('needs_attention_header'); + + # things with a view link: + task_summary('needs_approval', 'where state=%i || (client_id=%i && (state=%i || state=%i || state=%i)) order by id desc', TASK_WORKING, $client_id, TASK_NEEDS_TESTING, TASK_NEEDS_GO_AHEAD, TASK_BUG); + + # things with an edit link: + task_summary('needs_fixing', 'where (state=%i || state=%i) || (client_id=%i && (state<%i || state=%i)) order by id desc', TASK_NEEDS_QUOTE, TASK_BUG, $client_id, TASK_DRAFT, TASK_NEEDS_CLARIFICATION); + task_summary('finished_unpaid', 'where state=%i && paid=0 order by finished_at desc', TASK_FINISHED); + task_summary('finished_untested', 'where state=%i order by client_id, finished_at desc', TASK_NEEDS_TESTING); + task_summary('finished_paid', 'where state=%i && paid = 1 order by finished_at desc limit 20', TASK_FINISHED); + task_summary('queue', 'where state=%i order by client_id, ord desc', TASK_QUEUED); + } else { + if(db_count('tasks', 'where client_id=%i && (state=%i || state=%i || state=%i || state=%i)', $client_id, TASK_DRAFT, TASK_NEEDS_CLARIFICATION, TASK_NEEDS_GO_AHEAD, TASK_NEEDS_TESTING)) { + tem_show('needs_attention_header'); + task_summary('needs_approval', 'where client_id=%i && (state=%i || state=%i) order by id', $client_id, TASK_NEEDS_GO_AHEAD, TASK_NEEDS_TESTING); + task_summary('needs_fixing', 'where client_id=%i && (state=%i || state=%i) order by id', $client_id, TASK_DRAFT, TASK_NEEDS_CLARIFICATION); + } + task_summary('queue', 'where client_id=%i && state=%i order by ord desc', $client_id, TASK_QUEUED); + task_summary('jason', 'where client_id=%i && (state=%i || state=%i) order by id desc', $client_id, TASK_NEEDS_QUOTE, TASK_BUG); + task_summary('jason_working', 'where client_id=%i && state=%i order by id desc', $client_id, TASK_WORKING); + task_summary('finished_unpaid', 'where client_id=%i && state=%i && paid=0 order by finished_at desc', $client_id, TASK_FINISHED); + task_summary('finished_paid', 'where client_id=%i && state=%i && paid=1 order by finished_at desc', $client_id, TASK_FINISHED); + } return; }