#!/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{category} SETTING ALREADY EXISTS FOR USER $i{user_id} FOR $i{leave_year}!",'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( ) ; $del_butt = qq() ; } $print_tbody .= qq( $id $user{$db{$table}{$id}{user_id}} $db{$table}{$id}{leave_year} $db{$table}{$id}{days_entitled} $db{$table}{$id}{days_carried_over} $category $db{$table}{$id}{lastupdate}   $edit_butt $del_butt ) ; } } #------------------------------------------------------------------------------------------ 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() ; } # 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(IDCONSULTANTLEAVE_YEARDAYS_ENTITLEDDAYS_CARRIED_OVERCATEGORYLASTUPDATE ) ; } #------------------------------------------------------------------------------- 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;