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>