X-Git-Url: http://git.pippins.net/embedvideo/.git/static/git-logo.png?a=blobdiff_plain;f=parse_ward_data;fp=parse_ward_data;h=82a173038d774daa48abb8a312988a2a73c5bd77;hb=f02dbfe276a992b3b1c674cc1b4075fd97c875e2;hp=0000000000000000000000000000000000000000;hpb=5be4f84484b7a86269ae91194950a4f9c3a7550e;p=eq%2F.git diff --git a/parse_ward_data b/parse_ward_data new file mode 100755 index 0000000..82a1730 --- /dev/null +++ b/parse_ward_data @@ -0,0 +1,136 @@ +#!/usr/bin/perl + +use DBI; +use Getopt::Std; +################################################### +# GLOBALS +$dbname = "phpgroupware"; +$dbhost = "192.168.0.2"; +$dbport = 3306; +$dbuser = "phpgroupware"; +$dbpass = "phpgroupware"; +%hometeaching_data = (); +%membership_data = (); +getopts('vsn:o:b'); + +$monthname2num{'Jan'} = '01'; +$monthname2num{'Feb'} = '02'; +$monthname2num{'Mar'} = '03'; +$monthname2num{'Apr'} = '04'; +$monthname2num{'May'} = '05'; +$monthname2num{'Jun'} = '06'; +$monthname2num{'Jul'} = '07'; +$monthname2num{'Aug'} = '08'; +$monthname2num{'Sep'} = '09'; +$monthname2num{'Oct'} = '10'; +$monthname2num{'Nov'} = '11'; +$monthname2num{'Dec'} = '12'; + +###################################################################### +# SUBROUTINES +###################################################################### +sub csv_to_hash +{ + my ($filename, $hashref) = @_; + + open(FILE,$filename) || die "-E- Could not open $filename for reading\n"; + + my $found_header = 0; my $index = 0; + while() + { + $line = $_; + @data = split /\",/, $line; + if(!$found_header) { @header = @data; $found_header = 1; } + else { + foreach $i (0..$#data-1) { + $data[$i] =~ s/\"//g; + $header[$i] =~ s/\"//g; + $hashref->{$index}{$header[$i]} = $data[$i]; + #print "$index: $i: $header[$i]: $data[$i]\n"; + } + $index++; + } + } + + close(FILE); +} + +###################################################################### +sub print_hash +{ + my ($hashref) = @_; + + foreach $key (sort {$a <=> $b} keys %$hashref) { + print "Index: $key\n"; + foreach $field (keys %{$hashref->{$key}}) { + print "$field: $hashref->{$key}{$field}\n"; + } + print "\n"; + } +} + +###################################################################### +sub print_birthdays +{ + my ($hashref) = @_; + + foreach $key (sort {$a <=> $b} keys %$hashref) { + $name = ""; + $birthday = ""; + foreach $field (keys %{$hashref->{$key}}) { + if($field =~ /Full Name/) { $name = $hashref->{$key}{$field}; } + if($field =~ /Birth/) { $birthday = $hashref->{$key}{$field}; } + } + if($name ne "" && $birthday ne "") { printf "%-30s %-10s\n",$name,$birthday; } + } +} + +###################################################################### +# MAIN +###################################################################### + +################################################### +# Open a connection to the database +$dbh=DBI->connect("dbi:mysql:dbname=$dbname;host=$dbhost port=$dbport",$dbuser,$dbpass,{ + AutoCommit=>0, + PrintError=>0}) or print "Connect Failure:".$DBI::errstr."\n" and exit 2; + +################################################### +# Process command line options +if(defined $opt_n) { $datadir = $opt_n; } +else { $datadir = shift(@ARGV); } +print "-> Processing all ward data files in $datadir\n"; + +################################################### +# Parse Ward Data Files +&csv_to_hash("$datadir/Membership.csv",\%membership_data); +&csv_to_hash("$datadir/HomeTeaching.csv",\%hometeaching_data); + +if($opt_v) { + print "-> Membership Data Dump\n\n"; + &print_hash(\%membership_data); + print "-> HomeTeaching Data Dump\n\n"; + &print_hash(\%hometeaching_data); +} + +if($opt_b) { &print_birthdays(\%membership_data); } + +if($opt_s) { $dbh->disconnect(); exit; } + +################################################### +# Disconnect from the database +$dbh->disconnect(); + +###################################################################### + + + + + + + + + + + +