#!/usr/local/bin/perl use CGI qw(:cgi); use Template qw(:DEFAULT %handlers); use CgiTools; use MaiThai; use shared; &sethook(\&template_print_hook); add_dyn_handler('scripturl', $ENV{SCRIPT_NAME}); $user=param('user'); $pw=param('pw'); tie(%user, 'MaiThai', "data/users/$user") if -e "data/users/$user"; unless($user && defined %user && $pw eq $user{password}) { &dumphtml('templates/stats/login.tmpl'); exit; } add_dyn_handler('pw','$pw'); add_dyn_handler('user', $user); if(param('action') eq "stats") { &stats; } elsif(param('action') eq "edit") { &edit; } elsif(param('action') eq "update") { &update; } else { &dumphtml('templates/stats/login.tmpl'); } sub stats { add_dyn_handler('raw', '$raw'); add_dyn_handler('confirmed', '$confirmed'); add_dyn_handler('day', '$datep'); add_dyn_handler('earned', '$earned'); add_dyn_handler('total_confirmed', '$total_confirmed'); add_dyn_handler('total_raw', '$total_raw'); add_dyn_handler('year', '$year'); add_dyn_handler('month', '$mon'); add_dyn_handler('lastpaid', '$lastpaid'); add_dyn_handler('payoutpending', '$payoutpending'); if(param('month') && param('year')) { $mon=param('month'); $mon = length($mon) == 1 ? $mon = "0$mon" : $mon; $year=param('year'); } $period = "$year$mon"; @days=grep { /pending_($year$mon.+)/g } keys %user; &dumphtml('templates/stats/header.tmpl'); for $day (@days) { $date = $day; $date =~ s/pending_//g; $raw=$user{"pending_$date"}; $total_raw += $raw; $confirmed=$user{"confirmed_$date"}; $total_confirmed += $confirmed; $earned=sprintf("%.2f", $confirmed * $payout); $datep =substr($date,0,4); $datep .="/"; $datep .=substr($date,4,2); $datep .="/"; $datep .=substr($date,6,2); &dumpfile('templates/stats/new_line.tmpl'); } $lastpaid = substr($user{"lastpaid"},0,4); $lastpaid .="/"; $lastpaid .=substr($user{"lastpaid"},4,2); $lastpaid .="/"; $lastpaid .=substr($user{"lastpaid"},6,2); $payoutpending=sprintf("%.2f",$user{"payoutpending"}*$payout); $earned=sprintf("%.2f", $total_confirmed * $payout); &dumpfile('templates/stats/footer.tmpl'); } sub edit { map { add_dyn_handler("$_", $user{$_}); } @fields; &dumphtml('templates/stats/edit.tmpl'); } sub update { for $field (@fields) { $user{$field}=param($field); } &dumphtml('templates/stats/user_updated.tmpl'); }