219 lines
6.4 KiB
Perl
219 lines
6.4 KiB
Perl
#!/usr/bin/perl
|
|
|
|
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
|
|
|
|
use CGI qw( :standard );
|
|
use CGI::Carp qw(fatalsToBrowser);
|
|
|
|
require cfg ;
|
|
|
|
print header; # CGI.pm method
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
&today;
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
# unless ($username eq 'rory') { print ">>>>>> RORY DOING MAINTENANCE <<<<<<"; exit; }
|
|
|
|
@ARGV = split(/\\*\&/, $ENV{'QUERY_STRING'});
|
|
$action = $ARGV[0] ;
|
|
|
|
our ($q) = CGI -> new() ;
|
|
our $iaction = $q -> param('iaction') || $action ;
|
|
our $isaved = $q -> param('isaved') || '' ;
|
|
|
|
# our $debug = 1 ;
|
|
|
|
&common_min_restriction_super ;
|
|
|
|
#-------- page opts --------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
&page_opts ;
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
&common_min_action;
|
|
|
|
exit;
|
|
|
|
#------------------------------------------------------------------------------------------
|
|
|
|
sub validate {
|
|
|
|
my $exists = '' ;
|
|
|
|
&db_min_ro($table,'*',"`leave_year`='$i{leave_year}' AND `category`='$i{category}' AND `user_id`='$i{user_id}'",'','') ;
|
|
|
|
foreach my $id (keys %{$db{$table}}) {
|
|
if (($db{$table}{$id}{leave_year} eq $i{leave_year}) and ($db{$table}{$id}{category} eq $i{category}) and ($db{$table}{$id}{user_id} eq $i{user_id})) {
|
|
$exists = 1 ;
|
|
}
|
|
}
|
|
|
|
if ($exists) {
|
|
$alert = &common_min_alert('warning',"<i><strong>$i{category}</strong></i> SETTING ALREADY EXISTS FOR USER <i><strong>$i{user_id}</strong></i> FOR <i><strong>$i{leave_year}</strong></i>!",'ok') ;
|
|
%col_name = ();
|
|
&common_min_add_screen;
|
|
&common_min_screen1;
|
|
}
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub insert {
|
|
|
|
&add_db_fields ;
|
|
|
|
$i{lastupdate} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ;
|
|
|
|
&db_min_insert($table) ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub update {
|
|
|
|
unless ($i{id}) { $error = qq(NO ID) ; return ; }
|
|
|
|
&edit_db_fields ;
|
|
|
|
# unless ($i{block}) { $i{block} = '0' ; }
|
|
|
|
# &common_min_upload_files("leave/$i{id}") ;
|
|
|
|
$i{lastupdate} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ;
|
|
|
|
&db_min_upd($table,"id='$i{id}'") ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub list_screen {
|
|
|
|
&db_min_ro('users','*','','','') ;
|
|
foreach my $id (keys %{$db{users}}) { $user{$id} = $db{users}{$id}{name} ; }
|
|
|
|
&db_min_ro($table,'*','','','') ;
|
|
|
|
foreach my $id (keys %{$db{$table}}) {
|
|
my $category = ucfirst $db{$table}{$id}{category} ;
|
|
|
|
my $edit_butt = '' ;
|
|
my $del_butt = '' ;
|
|
|
|
if ($useropts{boss}{lc $username}){
|
|
$edit_butt = qq(<a class="btn btn-info btn-xs" href="javascript:editMinItem('$db{$table}{$id}{id}');"><i class="glyphicon glyphicon-edit icon-white"></i></a> ) ;
|
|
$del_butt = qq(<a class="btn btn-danger btn-xs" href="javascript:deleteMinItem('$db{$table}{$id}{username}','$db{$table}{$id}{id}')"><i class="glyphicon glyphicon-trash icon-white"></i></a>) ;
|
|
}
|
|
|
|
$print_tbody .= qq(<tr id="$id">
|
|
<td>$id</td>
|
|
<td>$user{$db{$table}{$id}{user_id}}</td>
|
|
<td>$db{$table}{$id}{leave_year}</td>
|
|
<td>$db{$table}{$id}{days_entitled}</td>
|
|
<td>$db{$table}{$id}{days_carried_over}</td>
|
|
<td>$category</td>
|
|
<td>$db{$table}{$id}{lastupdate}</td>
|
|
<td nowrap>
|
|
$edit_butt
|
|
$del_butt
|
|
</td>
|
|
</tr>) ;
|
|
}
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub add_db_fields {
|
|
|
|
&hidden_fields ;
|
|
|
|
$ignore{id} = 1 ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub hidden_fields {
|
|
|
|
$ignore{iaction} = 1 ;
|
|
$hidden{lastupdate} = 2 ; # 2 = update db
|
|
$required{days_entitled} = 9 ;
|
|
$required{days_carried_over} = 9 ;
|
|
# $required{days_taken} = 9 ;
|
|
$ignore{days_taken} = 1 ;
|
|
$required{user_id} = 1 ;
|
|
$datepicker{leave_start_date} = 1 ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub edit_db_fields {
|
|
|
|
&hidden_fields ;
|
|
|
|
$hidden{id} = 1 ; # 1 = bypass for db update
|
|
|
|
$ignore{iattachleave} = 1 ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub add_screen {
|
|
|
|
$selected{leave_year}{$now_year} = 'SELECTED';
|
|
$selected{category}{'annual'} = 'SELECTED';
|
|
|
|
&select_opts('') ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub edit_screen {
|
|
|
|
$selected{leave_year}{$db{$table}{$i{id}}{leave_year}} = 'SELECTED';
|
|
$selected{category}{$db{$table}{$i{id}}{category}} = 'SELECTED';
|
|
|
|
&select_opts($i{id}) ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub select_opts {
|
|
|
|
my ($id) = @_ ;
|
|
|
|
&common_min_opts('leave_type','category',1) ;
|
|
|
|
my @years = ($now_year-1,$now_year,$now_year+1) ;
|
|
$required{leave_year} = 1 ; $select{leave_year} = 1 ;
|
|
foreach (@years) {
|
|
$opts{leave_year} .= qq(<option value="$_" $selected{leave_year}{$_}>$_</option>) ;
|
|
}
|
|
|
|
# my $sql_where = "`username`<>'rory' AND `username`<>'duvan'" ;
|
|
|
|
@user_excl_sql = () ;
|
|
|
|
foreach (keys %{$useropts{it}}) {
|
|
push @user_excl_sql, "username <> '$_'" ;
|
|
}
|
|
|
|
my $user_excl_sql = join(" AND ", @user_excl_sql) ;
|
|
|
|
&common_min_select_opts('user_id','users','name',$db{$table}{$i{id}}{user_id},'','',$user_excl_sql) ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub thead {
|
|
|
|
$print_thead = qq(<THEAD><TR><TH>ID</TH><TH>CONSULTANT</TH><TH>LEAVE_YEAR</TH><TH>DAYS_ENTITLED</TH><TH>DAYS_CARRIED_OVER</TH><TH>CATEGORY</TH><TH>LASTUPDATE</TH><TH> </TH></TR></THEAD>) ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub page_opts {
|
|
|
|
our $glyphicon = 'calendar' ;
|
|
our $lcpage = 'leave-setting' ; $ucpage = uc $lcpage ; $ucfirstpage = ucfirst $lcpage ;
|
|
our $table = 'leave_settings' ;
|
|
|
|
if ($useropts{boss}{lc $username}) { &common_min_add_box_icon ; }
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
use common ;
|
|
use today ;
|
|
|
|
1; |