#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);
use Opals::User qw(
    user_add
    user_addQuick
    user_LoadCategory
    user_isUserBc
);

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

my $cgi = CGI->new;
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'user/info.tmpl',
            reqPermission   => 'user_add',
        }
);

my $input = $cgi->Vars();
my $quickEntry = $input->{'qk'} ;

if ($permission && $permission->{'user_add'}) {
    ##my $input = $cgi->Vars();

    # Get user info
    if ($input->{'op'} eq 'add' && !$quickEntry) {  
        if ( my $uid  = user_add($dbh, $input,$cgi)) {
            $template->param(success => 1);
        }
        else {
            $template->param(error => 1);
        }

        
    } 
    elsif($input->{'op'} eq 'add' && $quickEntry){
        my $lastname      = $input->{'lastname'};
        my $firstname     = $input->{'firstname'};
        my $userbarcode   = $input->{'userbarcode'};
        my $homeroom      = $input->{'homeroom'};
        my $categorycode  = $input->{'usertype'};
        my $permission    = $input->{'permission'};
        my $status        = $input->{'status'};
        my $gender        = $input->{'gender'};
        
        $userbarcode =undef if($userbarcode eq '') ;
        my $uid = user_isUserBc($dbh,$userbarcode);
        if($uid){
            $template->param(
                 userBarcodeDup => 1,
                 firstname      => $firstname,
                 lastname       => $lastname,
                  );
        }
        else{
            if (user_addQuick($dbh, $lastname, $firstname
                              , $userbarcode ,$categorycode
                              , $permission,$status,$gender,$homeroom)) {        
                $template->param(success => 1);
            }
            else {
                $template->param(error => 1);
            }
        }
    }

    if ($input->{'status'}) {
        $template->param( active => 1 );
    }
    else {
        $template->param( inactive => 1 );
    }

    # Get guardian's info
    my @gardian=();
    for (my $i = 0; $i < 3; $i++) {
        push @gardian, { order => $i, tab => $i + 31 };
    }
    $template->param(guardian => \@gardian);

    # Load borrower type (or permissions)
    my @brwrtype;
    @brwrtype = user_LoadCategory($dbh);
    $template->param( category => \@brwrtype );

    my $country = Opals::Context->preference('country');
    if ($country =~ m/us/i) {
        $template->param(country_us => 1);
    }   # currently, only USA/Canadian address supported.
}

$template->param(userAdd => 1);
if($quickEntry){
    $template->param(quickBorrowerEntry => 1);
}

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