#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

use Opals::Constant;

use Opals::User qw(
    
    user_addQuick
    user_isUserBc

);

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookie, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => '/txtbk/teacher/addTeacher.tmpl',
    }
);

my $firstname   = $input->{'firstname'};
my $lastname    = $input->{'lastname'};
my $userbarcode = $input->{'userbarcode'};
my $gender      = $input->{'gender'};
my $homeroom    = '';
my $permission  = '-------y------';
my $status       = 1;
#my $categorycode  = USER_TEACHER;

my $catCode_teacher = getCatCode_teacher($dbh);


if (!$catCode_teacher || $catCode_teacher < 1){
    $template->param(
         status     => 'fail',
         errorCode  => 3,
         errorMsg   => 'Teacher cannot be saved. No user category Teacher found. Please add one.'
         );

}
elsif ($firstname ne "" && $lastname ne "" ){
    $userbarcode =undef if($userbarcode eq '') ;
    my $uid = user_isUserBc($dbh,$userbarcode);
    if($uid){
            $template->param(
                 status         => 'fail',
                 firstname      => $firstname,
                 lastname       => $lastname,
                 userbarcode    =>  $userbarcode,
                 errorCode      => 1,
                 errorMsg       => 'ERROR:Duplicate user barcode. Please reenter.'
                 );
        }
    else{
        if (user_addQuick($dbh, $lastname, $firstname
                          , $userbarcode ,$catCode_teacher
                          , $permission,$status,$gender,$homeroom)) {        
            $template->param(status => 'OK');
        }
        else {
            $template->param(
                    status     => 'fail',
                    errorCode  => 2,
                    errorMsg   => 'User cannot be saved. Please try again later.'
            );
        }
    }
}


tmpl_write($dbh, $cgi, $cookie, $template);


########################################################################################

sub getCatCode_teacher{
    
    my ($dbh) = @_;
    my $sql = "select catid from opl_category where catname regexp '^teacher\$'";
    my $sth = $dbh->prepare($sql);
    $sth->execute();
    my $ret = $sth->fetchrow_array();
    $sth->finish;
    return $ret?$ret:0;

}


