File:  [Local Repository] / register / prgsrc / addclub.pl
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Mon Sep 17 02:57:50 2001 UTC (22 years, 9 months ago) by boris
Branches: MAIN
CVS tags: HEAD
added list of people

    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/17 02:57:50 $
   26: 
   27: =head1 REVISION
   28: 
   29: $Revision: 1.2 $
   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: 		      'RegistrarName'=>'RegistrarName', 
   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>