Annotation of register/prgsrc/addclub.pl, revision 1.1
1.1 ! boris 1: #!/usr/bin/perl
! 2:
! 3: =pod
! 4:
! 5: =head1 NAME
! 6:
! 7: addclub.pl - transform results of club registration form into a number of SQL statements
! 8:
! 9: =head1 SYNOPSIS
! 10:
! 11: cat text | addclub.pl
! 12:
! 13: =head1 DESCRIPTION
! 14:
! 15: This is a ocmapnion script for register.cgi. It transforms registration card
! 16: created by register.cgi into something that can be with minimal massage
! 17: fed into SQL
! 18:
! 19: =head1 AUTHOR
! 20:
! 21: Boris Veytsman
! 22:
! 23: =head1 DATE
! 24:
! 25: $Date: 2001/09/11 22:27:12 $
! 26:
! 27: =head1 REVISION
! 28:
! 29: $Revision: 1.6 $
! 30:
! 31: =cut
! 32:
! 33: use strict;
! 34:
! 35: my %ClubFields = ('Name'=>'Name', 'Address' => 'Address',
! 36: 'URL' => 'URL', 'Phone' => 'Phone',
! 37: 'Fax'=> 'Fax', 'Email' => 'Email',
! 38: 'DoB'=>'DoB', 'Sponsor' => 'Sponsor',
! 39: 'Meetings' => 'Meetings',
! 40: 'AdultTeams' => 'AdultTeams',
! 41: 'KidTeams'=>'KidTeams',
! 42: 'ForeignFests'=>'ForeignFests',
! 43: 'Braglist'=>'Braglist',
! 44: 'OwnFests'=>'OwnFests',
! 45: );
! 46:
! 47: my %ClubClubFields = ('Parents' => 'Parents', 'Memebers' => 'Members');
! 48:
! 49: my %PeopleFields = ();
! 50: my %ClubPeopleFields=();
! 51: my @PersonalFields=('Name', 'Address','URL','Phone','Fax','Email');
! 52: for (my $i=1; $i<=5; $i++) {
! 53: foreach my $field (@PersonalFields) {
! 54: $PeopleFields{"$field$i"}=$field;
! 55: }
! 56: $ClubPeopleFields{"Position$i"}='Position';
! 57: }
! 58:
! 59: my %RegionFields = ('Latitude'=>'Lat', 'Longitude'=>'Lon');
! 60:
! 61: my %AdditionalFields=('IgraA'=>'IgraA','IgraB'=>'IgraB','IgraC'=>'IgraC',
! 62: 'Registrar'=>'Registrar',
! 63: 'RegistrarEmail'=>'RegistrarEmail');
! 64:
! 65:
! 66: my %Fields = (%ClubFields, %ClubClubFields, %PeopleFields,
! 67: %RegionFields, %ClubPeopleFields, %AdditionalFields);
! 68:
! 69: # foreach my $key (keys %Fields) {
! 70: # print "$key: $Fields{$key}\n";
! 71: # }
! 72:
! 73: my %Result=();
! 74: my $field="";
! 75:
! 76: while (<>) {
! 77: chomp;
! 78: next if (/^\s*$/);
! 79: s/\"/\\"/g;
! 80: s/\'/\\'/g;
! 81: if (/^([^=]+)=(.*)/ && exists $Fields{$1}) {
! 82: $field=$1;
! 83: $Result{$field}=$2;
! 84: } elsif (/^Submit=Submit/) {
! 85: PrintResults();
! 86: } elsif ($field) {
! 87: $Result{$field} .= " $_";
! 88: }
! 89: }
! 90:
! 91: exit 0;
! 92:
! 93: sub PrintResults {
! 94:
! 95: my @Names=();
! 96: my @Values=();
! 97: foreach my $field (keys %ClubFields) {
! 98: if (exists $Result{$field}) {
! 99: push @Names, $field;
! 100: push @Values, "\"$Result{$field}\"";
! 101: }
! 102: }
! 103: print "INSERT INTO Clubs (\n",join(",\n",@Names),"\n) VALUES(\n",
! 104: join(",\n",@Values),"\n);\n\n";
! 105:
! 106: my @Names=('Name');
! 107: my @Values=("");
! 108: foreach my $field (keys %RegionFields) {
! 109: if (exists $Result{$field}) {
! 110: push @Names, $field;
! 111: push @Values, "\"$Result{$field}\"";
! 112: }
! 113: }
! 114: print "SELECT rid,Name from Regions;\n";
! 115: print "INSERT INTO Regions (\n",join(",\n",@Names),"\n) VALUES(\n",
! 116: join(",\n",@Values),"\n);\n\n";
! 117: print "INSERT INTO RegionRegion (Parent,Child) VALUES ();\n\n";
! 118: print "SELECT cid,Name from Clubs;\n";
! 119: print "INSERT INTO ClubRegion (rid,cid) VALUES ();\n\n";
! 120:
! 121:
! 122: print "SELECT pid,Name from People;\n";
! 123: for (my $i=1; $i<=5; $i++) {
! 124: @Names=();
! 125: @Values=();
! 126: foreach my $field (@PersonalFields) {
! 127: if (exists $Result{"$field$i"}) {
! 128: push @Names, $PeopleFields{"$field$i"};
! 129: push @Values, '"'.$Result{"$field$i"}.'"';
! 130: }
! 131: }
! 132: if (scalar @Names) {
! 133: print "INSERT INTO People (\n",join(",\n",@Names),"\n) VALUES(\n",
! 134: join(",\n",@Values),"\n);\n\n";
! 135: }
! 136: }
! 137:
! 138: print "SELECT pid,Name from People;\n";
! 139: for (my $i=1; $i<=5; $i++) {
! 140: if (exists $Result{"Position$i"}) {
! 141: print "INSERT INTO ClubPeople (cid,pid,Position,Weight) VALUES (,,",
! 142: $Result{"Position$i"}, ",10);\n";
! 143: }
! 144: }
! 145:
! 146: foreach my $field (keys %ClubClubFields) {
! 147: if (exists $Result{$field}) {
! 148: print "\n# $field:\n";
! 149: print "# $Result{$field}\n";
! 150: print "INSERT INTO ClubClub (Parent, Child) VALUES (,);\n\n";
! 151: }
! 152: }
! 153: %Result=();
! 154:
! 155: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>