#!/usr/bin/perl -T # This script lists the awards received by members of the organisation # Modification History # 0.01 (20020223) tallan - Created. # 0.02 (20020223) tallan - Added menu. # 0.03 (20020303) tallan - add support for update=yes parm. my $version = "0.03 (20020303)"; use strict; use warnings; use lib '../../lib'; use Data::Dumper; use APMS; use APMS::Instrument; use APMS::CGIRequest; use APMS::CGIResponse; #use APMS::CGIForm; use APMS::User; # ----------------------------------------------------------------------------- # Initialisation... my $config = new APMS::Config(); $config->version($version); my $debug = 0; my $instrument = new APMS::Instrument(); my $request = new APMS::CGIRequest(); my $update = $request->param('update') || ''; my $login; if ($update eq 'yes') { $login = APMS::login($request, $instrument); } my $response = new APMS::CGIResponse($request, 200); unless ($response->template('awards')) { printf($config->get_resource('template') . "\n", 'awards'); } # ----------------------------------------------------------------------------- my $customer = $config->get('customer.name'); $response->param('customer',$customer); $response->param('title', "$customer - Awards"); $response->param('title1', "Awards"); $response->param('menu', [ { url => '/apps/user/', label => 'User Functions' }, ] ); $response->no_more('menu'); if ($update eq 'yes') { if ($login->is_admin()) { $response->param('admin_update', 'true'); } } $response->no_more('admin_update'); my $search = APMS::User::FindAllActive(); disp($debug, $response, $search, 'award.life-member'); disp($debug, $response, $search, 'award.service'); disp($debug, $response, $search, 'award.president-prize'); disp($debug, $response, $search, 'award.first-year-presenter'); disp($debug, $response, $search, 'award.cmgus-prize'); # ----------------------------------------------------------------------------- print STDERR "Finished.\n" if ($debug); my $bytes = $response->finalise(); $instrument->stop('good', $bytes, 'byte'); exit 0; # ----------------------------------------------------------------------------- # process the data for each type of award sub disp { my ($debug, $response, $search, $attr) = @_; print STDERR "attr = $attr\n" if ($debug); my $results = APMS::User::Search($search, $attr, 'ex'); #print STDERR "Results for $attr: " . scalar(keys %$results) . "\n" if ($debug); my %list; foreach my $userid (sort keys %$results) { my $user = $$results{$userid}; $list{$user->get($attr) . '-' . $user->get('person.lastname')} = $user; #print STDERR "year = " . $user->get($attr) ."\n" if ($debug); } my @fields; foreach my $k (sort keys %list) { my $user = $list{$k}; my $userid = $user->id(); my $name = $user->get('person.firstname') . ' ' . $user->get('person.lastname'); my $year = $user->get($attr); print STDERR "$year = $name\n" if ($debug); my $z = {name => $name, year => $year, userid => $userid}; push (@fields, $z); } $response->push_param($attr, {fields => \@fields}); $response->no_more($attr); }