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>