#!/usr/bin/perl
# Copyright 2001-2021 Leslie Richardson
# This file is part of Open Admin for Schools.
# Open Admin for Schools is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
use DBI;
use CGI;
use Time::JulianDay;
my %lex = ('Graduation Requirements' => 'Graduation Requirements',
'Credits' => 'Credits',
'Check' => 'Check',
'Main' => 'Main',
'Provincial Number' => 'Provincial Number',
'Duplicate' => 'Duplicate',
'Grade' => 'Grade',
'Homeroom' => 'Homeroom',
'Continue' => 'Continue',
'Check All' => 'Check All',
'Schools' => 'Schools',
'Select' => 'Select',
'Missing' => 'Missing',
);
my $self = 'checkgrad_local.pl';
# Read Config
eval require "../../etc/admin.conf";
if ( $@ ) {
print $lex{Error}. ": $@
\n";
die $lex{Error}. ": $@\n";
}
# Read checkCredit library.
eval require "../../lib/libgrad.pl";
if ( $@ ) {
print $lex{Error}. ": $@
\n";
die $lex{Error}. ": $@\n";
}
my $q = new CGI;
print $q->header( -charset, $charset );
my %arr = $q->Vars;
my $dsn = "DBI:$dbtype:dbname=$dbase";
my $dbh = DBI->connect($dsn,$user,$password);
$dbh->{mysql_enable_utf8} = 1;
my (%saskedgrade, %saskedname);
my $title = "$lex{Check} $lex{Credits}";
print qq{$doctype\n
Student | Missing Gr 10 Req | Missing Gr 11 Req | };
print qq{Missing Gr 12 Req | Grade Credits |
---|---|---|---|---|
$r{lastname}, $r{firstname} - $r{provnum} \n}; print qq{ $programtext \n}; if ( $r{provnum} ) { print qq{\n}; } print qq{ | };
if ( $r{program} == 9 ) {
my @result = checkCreditAdult12( $r{provnum}, $graderef, $dbh );
print q{}; # nothing in grade 10 or grade 11 rows. print qq{ | };
if ( not @result ) {
print qq{Complete};
} else { #print incompletes
foreach my $res ( @result ) {
$totals{12}{$res}++;
print qq{$res \n}; } } print qq{ | \n};
# Print completed Credits
my $cref = getCredits( $r{provnum}, $dbh );
my %credits = %$cref;
my %gcred;
foreach my $cid ( keys %credits ) {
$gcred{ $credits{$cid} }++;
}
print q{};
my $csum = '0';
foreach my $grade ( sort keys %gcred ) {
print qq{Gr $grade: $gcred{$grade} \n}; $csum += $gcred{$grade}; } print qq{Total $csum | };
if ( not @result ) {
print qq{Complete};
} else { #print incompletes
foreach my $res ( @result ) {
$totals{10}{$res}++;
print qq{$res \n}; } } print q{ | };
my @result11 = checkCredit11( $r{provnum}, $graderef, $dbh );
if ( not @result11 ) {
print qq{Complete};
} else { #print incompletes
foreach my $res ( @result11 ) {
$totals{11}{$res}++;
print qq{$res \n}; } } print q{ | };
my @result12 = checkCredit12( $r{provnum}, $graderef, $dbh );
if ( not @result12 ) { # they COULD be done IF they have 24+ credits.
# Check total credits to make sure.
my $cref = getCredits( $r{provnum}, $dbh );
my %credits = %$cref;
my (%gcred, $csum);
foreach my $cid ( keys %credits ) {
$gcred{ $credits{$cid} }++;
}
foreach my $grade ( sort keys %gcred ) {
$csum += $gcred{$grade};
}
if ( $csum < 24 ) { # not enough credits yet.
print qq{12 Electives \n}; } else { # they have enough credits to graduate. print qq{Complete}; } } else { #print incompletes foreach my $res ( @result12 ) { $totals{12}{$res}++; print qq{$res \n}; } } print qq{ | \n};
# Print completed Credits
my $cref = getCredits( $r{provnum}, $dbh );
my %credits = %$cref;
my %gcred;
foreach my $cid ( keys %credits ) {
$gcred{ $credits{$cid} }++;
}
print q{};
my $csum = '0';
foreach my $grade ( sort keys %gcred ) {
print qq{Gr $grade: $gcred{$grade} \n}; $csum += $gcred{$grade}; } print qq{Total $csum | \n};
} else {
print qq{Missing Provincial Number | \n}; } } # end student loop # Print Totals Row print qq{
};
print qq{Requirement Totals Students:$studcount | };
foreach my $grade ( 10..12 ) {
print q{};
foreach my $key ( sort keys %{ $totals{$grade} } ) {
print qq{$key - $totals{$grade}{$key} \n}; } print qq{ | \n};
}
print qq{