Annotation of loncom/enrollment/localenroll.pm, revision 1.1

1.1     ! raeburn     1: package localenroll;
        !             2: 
        !             3: use strict;
        !             4: use DBI;
        !             5: use LONCAPA::Configuration;
        !             6: 
        !             7: sub fetch_enrollment {
        !             8:   my ($dom,$affiliatesref,$replyref) = @_;
        !             9:   $ENV{SYBASE} = '/usr/local/freetds';
        !            10: 
        !            11:   my $DB_PATH = "dbi:Sybase:server=ESDB1;database=RO_ClassList";
        !            12:   my $DB_USER =""; # Not stored in CVS
        !            13:   my $DB_PASSWD = ""; # Not stored in CVS
        !            14: 
        !            15:   my $configvars = &LONCAPA::Configuration::read_conf('loncapa.conf');
        !            16: 
        !            17:   my $dbh= DBI->connect($DB_PATH,$DB_USER,$DB_PASSWD);
        !            18:   my $dbflag = 0;
        !            19:   if (defined $dbh) {
        !            20:      $dbflag = 1; 
        !            21:      foreach my $crs (sort keys %{$affiliatesref}) {
        !            22:          my $xmlfile =  $$configvars{'lonDaemons'}."/tmp/".$dom."_".$crs."_classlist.xml";
        !            23:          $$replyref{$crs} = &write_class_data ($dbh,$xmlfile,\@{$$affiliatesref{$crs}});
        !            24:      }
        !            25:      $dbh->disconnect;
        !            26:   }
        !            27:   return $dbflag;
        !            28: }
        !            29: 
        !            30: sub write_class_data {
        !            31:   my ($dbh,$xmlfile,$coursesref) = @_;
        !            32:   my $stucount = 0;
        !            33:   open(FILE, ">$xmlfile");
        !            34:   print FILE qq|<?xml version="1.0" encoding="UTF-8"?>
        !            35: <!DOCTYPE text>
        !            36: <students>
        !            37: |;
        !            38:   foreach my $class (@{$coursesref}) {
        !            39:       if ($class =~ m/^([suf]s\d{2})(\w{2,3})(\d{3,4}\w?)(\d{3})$/) {
        !            40:           my $sth = $dbh->prepare("SELECT Pid,Pilot_Id,Student_Name FROM LONCAPA_ClassList WHERE Term_Code = '$1' AND Subj_Code = '$2' AND Crse_Code = '$3' AND Sctn_Code = '$4'  ORDER BY Student_Name");
        !            41:           $sth->execute();
        !            42:           while ( my($pid,$pilot,$name)  = $sth->fetchrow_array ) {
        !            43:               $stucount ++;
        !            44:               $name =~ s/^\s//g;
        !            45:               $name =~ s/\s$//g;
        !            46:               my ($last,$given,$first,$middle);
        !            47:               $last = substr($name,0,index($name,","));
        !            48:               $given = substr($name,index($name,",")+1);
        !            49:               $given =~ s/^\s//g;
        !            50:               if ($given =~ m/\w\s\w/) {
        !            51:                   $first = substr($given,0,index($given," "));
        !            52:                   $middle = substr($given,index($given," ")+1);
        !            53:                   $middle =~ s/\s//g;
        !            54:               } else {
        !            55:                   $first = $given;
        !            56:               }
        !            57:               $first =~ s/\s$//g;
        !            58:               print FILE qq| <student username="$pilot">
        !            59:   <autharg>MSU.EDU</autharg>
        !            60:   <authtype>krb4</authtype>
        !            61:   <email>$pilot\@msu.edu</email>
        !            62:   <enddate></enddate>
        !            63:   <firstname>$first</firstname>
        !            64:   <generation></generation>
        !            65:   <groupID>$class</groupID>
        !            66:   <lastname>$last</lastname>
        !            67:   <middlename>$middle</middlename>
        !            68:   <startdate></startdate>
        !            69:   <studentID>$pid</studentID>
        !            70:  </student>
        !            71: |;
        !            72: # Format for startdate is YYYY:MM:DD:HH:MM:SS
        !            73: # Format forenddate is YYYY:MM:DD:HH:MM:SS
        !            74: # Authentication is one of: krb4, krb5, int or loc
        !            75: # Password is either the password for int, or Kerberos domain (for krb4 or krb5), or argument (for loc).
        !            76: # If authentication, password, startdate or enddate are blank, the default for the course is used.  These defaults can be modified using the Automated Enrollment Manager.
        !            77:           }
        !            78:           $sth->finish;
        !            79:       }
        !            80:   }
        !            81:   print FILE qq|</students>|;
        !            82:   close(FILE);
        !            83:   return $stucount;
        !            84: }
        !            85: 
        !            86: sub get_sections {
        !            87: 
        !            88: }
        !            89: 
        !            90: 1;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>