#!/usr/bin/perl BEGIN { use lib '/usr/home/cfg' ; require push_inc ; } use CGI qw( :standard ); use CGI::Carp qw(fatalsToBrowser); use Date::Calc qw(:all); # use Date::Calc qw(Add_Delta_Days) ; require cfg ; print header; # CGI.pm method use POSIX; #------------------------------------------------------------------------------------------ @ARGV = split(/\\*\&/, $ENV{'QUERY_STRING'}); our $qid = $ARGV[0] ; our $qaction = $ARGV[1] ; our $event_or_analytics = ($qid eq 'event') ? "event" : ($qid eq 'analytics') ? "analytics" : "" ; if ($qid eq 'event' || $qid eq 'analytics') { $qid = $qaction ; $qaction = 'view' ; } our ($q) = CGI -> new() ; $iaction = $q -> param('iaction') || $qaction ; $id = $q -> param('id') || $qid ; our $dialog = 1 ; #------------------------------------------------------------------------------------------ our $savjqy = 1 ; our $addbkb = 1 ; # our $testing = 1 ; # our $debug = 1 ; our $max_operators = 15 ; #------------------------------------------------------------------------------------------ # &common_debug("dialog/events.pl [$iaction]") ; &today ; #-------- page opts -------------------------------------------------------------------------------------------------------------------------------------------------- $table = 'events' ; #--------------------------------------------------------------------------------------------------------------------------------------------------------------------- if ($iaction eq '') { &load_events ; &screen1 ; } if ($iaction eq 'add') { &add_form; &screen2 ; } if ($iaction eq 'edit') { &common_min_load_params ; &edit_form; &screen2 ; } if ($iaction eq 'save') { &common_min_load_params ; &insert_events ; &screen3 ; } if ($iaction eq 'update') { &common_min_load_params ; &update_events ; &screen3 ; } if ($iaction eq 'delete') { &common_min_load_params ; &delete_events ; &screen3 ; } if ($iaction eq 'view') { &common_min_load_params ; &view_form; &screen2 ; } if ($iaction eq 'available' or $iaction eq 'unavailable' or $iaction eq 'confirm') { &common_min_load_params ; &update_events_staff ; &screen3 ; } # if ($iaction eq 'saveoperator'){ # &common_min_load_params ; # &save_operator ; # &screen3 ; # } exit ; #------------------------------------------------------------------------------------------ # sub save_operator { # $ignore{iaction} = 1 ; # $ignore{event_quote_nr} = 1 ; # &db_open_upd ; # our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it # @operators_a = split(/\,/,$i{operators_type_a}) ; # @operators_b = split(/\,/,$i{operators_type_b}) ; # my %selected_operator_a = () ; # my %selected_operator_b = () ; # for (@operators_a) { # $selected_operators{$_} = 1; # } # for (@operators_b) { # $selected_operators{$_} = 1; # } # my %operator_type = () ; # &db_min_ro('users','id,user_type',"user_type LIKE 'casual%'",'','') ; # foreach (keys %{$db{users}}) { # $operator_type{$_} = uc substr($db{users}{$_}{user_type},-1,1) ; # } # # my @db_operators_a = () ; foreach (@operators_a) { push @db_operators_a, $_ ; } # # my @db_operators_b = () ; foreach (@operators_b) { push @db_operators_b, $_ ; } # # my $operators_a = join(',',@db_operators_a) ; # # my $operators_b = join(',',@db_operators_b) ; # $ignore{operators_type_a} = 1 ; # $ignore{operators_type_b} = 1 ; # %exist_col = () ; # # for (1 .. $max_operators) { # push @sql_fields, "operator_workings_event" ; # push @sql_fields, "description_workings_event" ; # push @sql_fields, "qty_workings_event" ; # push @sql_fields, "amount_usd_workings_event" ; # # } # my $select = join(",", @sql_fields) ; # &db_min_ro('event_quotes_min',"id,$select","quote_nr='$i{event_quote_nr}'",'','') ; # my %seen_operator = () ; # my $first_avail_col = 0 ; # my $col = 0 ; # my @deselected_operator_a = () ; # my @deselected_operator_b = () ; # # for (1 .. $max_operators) { # # $col = $max_operators - $_ + 1 ; # # last if $db{event_quotes}{$i{event_quote_nr}}{"description_$col\_workings_event"} ; # # $first_avail_col = $col ; # # } # # for (1 .. $max_operators) { # my $op_id = $db{event_quotes}{$i{event_quote_nr}}{"operator_$_\_workings_event"} ; # if ($op_id and not $selected_operators{$op_id}){ # $i{"operator_$_\_workings_event"} = '' ; # $i{"description_$_\_workings_event"} = '' ; # $i{"qty_$_\_workings_event"} = 0 ; # $i{"amount_usd_$_\_workings_event"} = '0.00' ; # # } # # next unless $op_id ; # # $seen_operator{$op_id} = 1 ; # } # # } # my @new_operators_a = () ; # my @new_operators_b = () ; # for (@operators_a){ # next if $seen_operator{$_} ; # push @new_operators_a, $_ ; # } # for (@operators_b){ # next if $seen_operator{$_} ; # push @new_operators_b, $_ ; # } # for (@new_operators_a){ # $i{"qty_workings_event"} = 1 ; # $i{"amount_usd_workings_event"} = '0.00' ; # $i{"operator_workings_event"} = $_ ; # $i{"description_workings_event"} = '14' ; # $first_avail_col++; # } # for (@new_operators_b){ # $i{"qty_workings_event"} = 1 ; # $i{"amount_usd_workings_event"} = '0.00' ; # $i{"operator_workings_event"} = $_ ; # $i{"description_workings_event"} = '14' ; # $first_avail_col++; # } # &db_min_upd('event_quotes',"quote_nr='$i{event_quote_nr}'") ; # # foreach (keys %i) { # # if (substr($_,0,3) eq 'new') { next ; } # # if ($ignore{$_}) { next ; } # # if ($hidden{$_} == 1) { next ; } # # if ($i{$_} =~ /\"/) { $set .= qq(`$_`='$i{$_}',) ; } elsif ($i{$_} eq 'NULL') { $set .= qq(`$_`=$i{$_},) ; } else { $set .= qq(`$_`="$i{$_}",) ; } # # } # # &common_debug("UPDATE event_quotes SET $set WHERE quote_nr='$i{event_quote_nr}'") ; # # # for (1 .. $max_operators) { # # for $op_cnt ($max_operators .. 1) { # # my $ex_col = "operator_$op_cnt\_workings_event" ; # # my $op_id = $db{event_quotes}{$eid}{$ex_col} ; # # # next unless $op_id ; # # $first_avail_col = $op_cnt unless $op_id ; # # foreach $op_a (@operators_a) { # # if ($op_a eq $op_id) { # # $exist_col{$op_a} = $ex_col ; # # } # # } # # foreach $op_b (@operators_b) { # # if ($op_b eq $op_id) { # # $exist_col{$op_b} = $ex_col ; # # } # # } # # } # # } # # # return unless $exist_col ; # # local $avail_col = ($first_avail_col) ? $first_avail_col : 1 ; # # foreach (@operators_a) { # # next if $exist_col{$_} ; # # local $field = "operator_$avail_col\_workings_event" ; # # $i{$field} = $_ ; # # # &db_min_upd('event_quotes',"quote_nr='$i{event_quote_nr}'") ; # # $avail_col++ # # } # # foreach (@operators_b) { # # next if $exist_col{$_} ; # # local $field = "operator_$avail_col\_workings_event" ; # # $i{$field} = $_ ; # # # &db_min_upd('event_quotes',"quote_nr='$i{event_quote_nr}'") ; # # $avail_col++ # # } # $db_ignore_open_close = 0 ; # do one open and one close instead of repeating it # &db_close_conn ; # # exit ; # } #------------------------------------------------------------------------------------------ # sub process_operators { # @operators_a = split(/\,/,$i{operators_type_a}) ; # @operators_b = split(/\,/,$i{operators_type_b}) ; # my @db_operators_a = () ; foreach (@operators_a) { push @db_operators_a, $_ ; } # my @db_operators_b = () ; foreach (@operators_b) { push @db_operators_b, $_ ; } # my $operators_a = join(',',@db_operators_a) ; # my $operators_b = join(',',@db_operators_b) ; # $ignore{operators_type_a} = 1 ; # $ignore{operators_type_b} = 1 ; # # $i{operator_names_type_a} = $operators_a ; # # $i{operator_names_type_b} = $operators_b ; # } #------------------------------------------------------------------------------------------ sub update_events_staff { # local $exist_col = '' ; # local $avail_col = '' ; local $exists = '' ; &db_min_ro('events','id,event_quote_nr',"event_quote_nr='$i{event_quote_nr}' AND user_id='$userid'",'','') ; foreach my $eid (keys %{$db{events}}) { $exists = 1 if $db{events}{$eid}{event_quote_nr} eq $i{event_quote_nr} ; } # for (1 .. $max_operators) { # push @sql_fields, "operator_$_\_workings_event" ; # } # my $select = join(",", @sql_fields) ; # &db_min_ro('event_quotes',"id,$select","quote_nr='$i{event_quote_nr}'",'','') ; # foreach my $eid (keys %{$db{event_quotes}}) { # # for (1 .. $max_operators) { # for ($max_operators .. 1) { # my $ex_col = "operator_$_\_workings_event" ; # my $op_id = $db{event_quotes}{$eid}{$ex_col} ; # # next unless $op_id ; # $avail_col = $ex_col unless $op_id ; # if ($userid eq $op_id) { # $exist_col = $ex_col ; # # last ; # } # } # } # return unless $exist_col ; # if ($exist_col and $iaction eq 'unavailable') { # $i{"$exist_col"} = '' ; # set unavailable # &db_min_upd('event_quotes',"quote_nr='$i{event_quote_nr}'") ; # } elsif ($iaction eq 'available' and $exist_col eq '' and $avail_col) { # $i{"$avail_col"} = $userid ; # set available # &db_min_upd('event_quotes',"quote_nr='$i{event_quote_nr}'") ; # } $ignore{iaction} = 1 ; $i{date_time} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ; # $i{category} = 'available' if $iaction eq 'confirm' ; if ($exists) { &db_min_upd('events',"event_quote_nr='$i{event_quote_nr}' AND user_id='$userid'") ; } else { &db_min_insert('events') ; } } #------------------------------------------------------------------------------------------ sub update_events { unless ($i{id}) { $error = qq(NO ID) ; return ; } &hidden_fields ; $hidden{id} = 1 ; # $i{user_id} = $userid ; # if ($i{completed}) { $i{completeddate} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ; } else { $i{completed} = '0' ; } &db_min_upd('events',"id='$i{id}'") ; # &update_operators($i{event_quote_nr}) ; } #------------------------------------------------------------------------------------------ sub delete_events { unless ($i{id}) { $error = qq(NO ID) ; return ; } &db_min_delete('events',"id='$i{id}'") ; } #------------------------------------------------------------------------------------------ sub insert_events { &hidden_fields ; # $i{id} = &db_min_get_max('events','id') ; # $i{user_id} = $userid ; # $i{operator_names_type_a} = ; $i{date_time} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ; &db_min_insert('events') ; # &update_operators($i{event_quote_nr}) ; } #------------------------------------------------------------------------------------------ # sub update_operators { # my ($iidd) = @_ ; # return unless $iidd ; # my $operators = qq~~ ; # foreach (split(",",$i{operator_names_type_a})) { # $operators .= qq~$_;~ ; # } # foreach (split(",",$i{operator_names_type_b})) { # $operators .= qq~$_;~ ; # } # chop $operators if $operators ; # # my $iidd = ; # %i = () ; # $i{id} = $iidd ; # $i{operators_workings_event} = $operators ; # &db_common_upd('event_quotes_min',"id='$i{id}'") ; # } #------------------------------------------------------------------------------------------ sub hidden_fields { $textarea{notes} = 1 ; # $required{title} = 1 ; $required{category} = 1 ; if ($db{$table}{$id}{category} eq 'leave') { $required{days} = 9 ; } else { $ignore{days} = 1 ; $ignore{type} = 1 ; } $datetimepicker{startdate} = 1 ; $datetimepicker{enddate} = 1 ; $ignore{iaction} = 1 ; $ignore{completed} = 1 ; $ignore{title} = 1 ; $ignore{operator_names_type_a} = 1 ; $ignore{operator_names_type_b} = 1 ; $hidden{id} = 2 ; # $hidden{user_id} = 2 ; $hidden{date_time} = 2 ; # $checkbox{completed} = 2 ; $selected{category}{$db{$table}{$id}{category}} = 'SELECTED' ; $select{category} = 1 ; if ($db{$table}{$id}{category} eq 'leave') { $opts{category} .= qq(); } else { # $opts{category} .= qq() ; $opts{category} .= qq() ; $opts{category} .= qq() ; $opts{category} .= qq() ; } # $opts{category} .= qq() ; # $opts{category} .= qq() ; &sort_fields ; } #------------------------------------------------------------------------------------------ sub sort_fields { $sort_field{1} = 'category' ; $sort_field{2} = 'startdate' ; $sort_field{3} = 'enddate' ; $sort_field{4} = 'user_id' ; $sort_field{5} = 'notes' ; } #------------------------------------------------------------------------------- sub sort_leave_fields { $sort_field{1} = 'category' ; $sort_field{2} = 'startdate' ; $sort_field{3} = 'enddate' ; $sort_field{4} = 'days' ; $sort_field{5} = 'type' ; $sort_field{6} = 'user_id' ; $sort_field{7} = 'notes' ; } #------------------------------------------------------------------------------- sub edit_form { $boxtitle = 'Edit' ; &db_min_ro($table,'*',"id='$i{id}'",'','') ; &hidden_fields ; if ($db{$table}{$id}{category} eq 'leave') { $selected{'type'}{$db{$table}{$i{id}}{type}} = 'SELECTED' ; &common_min_opts('leave_type','type',1) ; &sort_leave_fields ; } &common_min_select_opts('user_id','users','name',$db{$table}{$id}{user_id},1) ; &display_user; $print_box_content_rows = &common_min_edit_form($i{id},$table,'update') ; } #------------------------------------------------------------------------------------------ sub view_form { &db_open_ro ; our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it # our @month_array = ( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ) ; our @month_array = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") ; our @months = ( "" , "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ) ; # @month_array = @months ; $boxtitle = 'View' ; $table = 'event_quotes' ; if ($event_or_analytics eq 'event') { # &db_min_ro($table,'quote_nr,nr,quote_date,customer,country_id,ref,date_from,date_to,qty,currency,grand_total,invoice_nr',"quote_nr='$id'",'','') ; # &db_min_ro($table,'quote_nr,quote_date,country_id,ref,date_from,date_to,qty,currency,grand_total,invoice_nr',"quote_nr='$id'",'','') ; $sort_field{1} = 'quote_nr' ; $sort_field{2} = 'ref' ; $sort_field{3} = 'date_from' ; $sort_field{4} = 'date_to' ; $sort_field{5} = 'type_of_system' ; $sort_field{6} = 'type_details' if $usertype ne 'schools_manager' ; # $sort_field{7} = 'system_name' if $usertype ne 'schools_manager' ; $sort_field{7} = 'system_details' if $usertype ne 'schools_manager' ; # $sort_field{8} = 'club_name' ; $sort_field{9} = 'days' ; $sort_field{10} = 'operators' ; $sort_field{11} = 'sport_type_ids' ; $sort_field{12} = 'city' ; $sort_field{13} = 'region' ; $sort_field{14} = 'venue' ; # $sort_field{1} = 'quote_nr' ; # $sort_field{2} = 'ref' ; # $sort_field{3} = 'date_from' ; # $sort_field{4} = 'date_to' ; # $sort_field{5} = 'type' ; # $sort_field{6} = 'sport_type_ids' ; # # $sort_field{7} = 'ligr' ; # $sort_field{8} = 'location' ; # $sort_field{9} = 'city_id' ; # $sort_field{10} = 'organisation_ids' ; # # $sort_field{5} = 'country_id' ; # $sort_field{11} = 'quote_to' ; # $sort_field{12} = 'notes' ; # $sort_field{13} = 'nr_of_casuals' ; # $sort_field{14} = 'operator_names_type_a' ; # $sort_field{15} = 'nr_of_casuals_2' ; # $sort_field{16} = 'operator_names_type_b' ; $sort_field{17} = 'poc_name' ; $sort_field{18} = 'poc_contact_nr' ; $sort_field{19} = 'category_1' ; $sort_field{20} = 'category_1_sub_categories' ; $sort_field{21} = 'category_2' ; $sort_field{22} = 'category_2_sub_categories' ; $sort_field{23} = 'recipient_name' ; $sort_field{24} = 'recipient_nr' ; $sort_field{25} = 'additional_notes' ; $sort_field{26} = 'format_of_title' ; $preferred_title{organisation_ids} = "Venue(s)" ; $preferred_title{sport_type_ids} = "Sport Types(s)" ; foreach (sort {$a <=> $b} keys %sort_field) { push @sql_fields, $sort_field{$_} ; } for (1 .. $max_operators) { push @sql_fields, "operator_$_\_workings_event" ; } my $select = join(",", @sql_fields) ; &db_min_ro('event_quotes_poc','id,name,contact_nr','','','') ; &db_min_ro('event_quotes_categories','id,category','','','') ; &db_min_ro('event_systems','id,name,description','','','') ; &db_min_ro('sport_types','id,name','','','') ; &db_min_ro('regions','id,name','','','') ; &db_min_ro('cities','id,name','','','') ; &db_min_ro('organisations','id,name','','','') ; &db_min_ro('event_type_details','id,name','','','') ; # &db_min_ro($table,"$select,casual_worker,casual_worker_2,user_id","quote_nr='$id'",'','') ; } my $analytics_sql_where = ($event_or_analytics eq 'event') ? "event_quote_id <> '0' AND event_quote_id = '$id'" : ($event_or_analytics eq 'analytics') ? "id= '$id'" : "" ; &db_min_ro('analytics_event_bookings','id,event_quote_id,fixtures_saved_values,analytics_saved_values,start_date_time,end_date_time,sport_type_ids,event_name',"$analytics_sql_where",'','') ; &db_switch_conn('sss') ; &db_min_ro('teams','id,name','','','') ; &db_switch_conn('aisa') ; my @fixtures_saved_values = () ; my @analytics_saved_values = () ; my %analytics_saved_values = () ; # our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ; our $analytics_table_body = qq~~ ; our $analytics_table = qq~~ ; our $analytics_event_exists = 0 ; my $analytics_required = 0 ; foreach my $aid (sort { $b <=> $a } keys %{$db{analytics_event_bookings}}) { if ($event_or_analytics eq 'analytics') { $db{$table}{$id}{date_from} = $db{analytics_event_bookings}{$aid}{start_date_time} ; $db{$table}{$id}{date_to} = $db{analytics_event_bookings}{$aid}{end_date_time} ; } $analytics_event_exists = 1 ; # $analytics_event_exists = 0 ; # $db{analytics_event_bookings}{$id}{analytics_saved_values} = "" ; # $db{analytics_event_bookings}{$id}{fixtures_saved_values} = "" ; $analytics_required = 1 if !$db{analytics_event_bookings}{$aid}{analytics_saved_values} && !$db{analytics_event_bookings}{$aid}{fixtures_saved_values} ; $sort_field{27} = 'fixture_date/Time_from' ; $sort_field{28} = 'sport' ; $sort_field{29} = 'team' ; $sort_field{30} = 'home_vs_opp_team' ; $sort_field{31} = 'stream_forwarding' ; $sort_field{32} = 'stream_key' ; $sort_field{33} = 'stream_URL' ; $db{analytics_event_bookings}{$aid}{fixtures_saved_values} =~ s/\|+$// ; $db{analytics_event_bookings}{$aid}{fixtures_saved_values} = ";;;" unless $db{analytics_event_bookings}{$aid}{fixtures_saved_values} ; @fixtures_saved_values = split(/\|/,$db{analytics_event_bookings}{$aid}{fixtures_saved_values}) ; my $fixtures_row_cnt = 0 ; foreach (@fixtures_saved_values) { my @abc = split(/\;/,$_) ; $fixtures_row_cnt++ ; $analytics_saved_values{$aid}{$fixtures_row_cnt}{$sort_field{27}} = ($abc[0]) ? &common_min_date_as_string($abc[0]) : ($db{analytics_event_bookings}{$aid}{start_date_time}) ? &common_min_date_as_string($db{analytics_event_bookings}{$aid}{start_date_time}) : &common_min_date_as_string("$now_year-$now_mm-$now_dd 08:00:00") ; $analytics_saved_values{$aid}{$fixtures_row_cnt}{$sort_field{28}} = ($abc[1]) ? $db{sport_types}{$abc[1]}{name} : ($db{analytics_event_bookings}{$aid}{sport_type_ids} && $db{analytics_event_bookings}{$aid}{sport_type_ids} !~ /;/) ? $db{sport_types}{$db{analytics_event_bookings}{$aid}{sport_type_ids}}{name} : "N/A" ; $analytics_saved_values{$aid}{$fixtures_row_cnt}{$sort_field{29}} = ucfirst $abc[2] . ' ' . uc $abc[3] ; $analytics_saved_values{$aid}{$fixtures_row_cnt}{$sort_field{30}} = ($abc[4] && $abc[6]) ? $db{teams}{$abc[4]}{name} . ' vs ' . $db{teams}{$abc[6]}{name} : ($abc[4]) ? $db{teams}{$abc[4]}{name} . ' vs N/A' : ($abc[6]) ? 'N/A vs ' . $db{teams}{$abc[6]}{name} : "" ; } @analytics_saved_values_arr = split(/\|/,$db{analytics_event_bookings}{$aid}{analytics_saved_values}) ; my $analytics_row_cnt = 0 ; foreach (@analytics_saved_values_arr) { my @abc = split(/\;/,$_) ; $abc[1] =~ s/\_semi_colon_character_/\;/g ; $abc[1] =~ s/\_pipe_character_/\|/g ; $abc[2] =~ s/\_semi_colon_character_/\;/g ; $abc[2] =~ s/\_pipe_character_/\|/g ; $analytics_row_cnt++ ; $analytics_saved_values{$aid}{$analytics_row_cnt}{$sort_field{31}} = ($abc[0] eq '1') ? "Yes" : ($abc[0] eq "2") ? "No" : "" ; $analytics_saved_values{$aid}{$analytics_row_cnt}{$sort_field{32}} = $abc[1] ; $analytics_saved_values{$aid}{$analytics_row_cnt}{$sort_field{33}} = ($abc[2]) ? qq~Click Here~ : qq~~ ; } if ($analytics_row_cnt > $fixtures_row_cnt) { for ($fixtures_row_cnt + 1 .. $analytics_row_cnt) { $analytics_saved_values{$aid}{$_}{$sort_field{27}} = ($db{analytics_event_bookings}{$aid}{start_date_time}) ? &common_min_date_as_string($db{analytics_event_bookings}{$aid}{start_date_time}) : &common_min_date_as_string("$now_year-$now_mm-$now_dd 08:00:00") ; $analytics_saved_values{$aid}{$_}{$sort_field{28}} = ($db{analytics_event_bookings}{$aid}{sport_type_ids} && $db{analytics_event_bookings}{$aid}{sport_type_ids} !~ /;/) ? $db{sport_types}{$db{analytics_event_bookings}{$aid}{sport_type_ids}}{name} : "N/A" ; } } } if ($analytics_event_exists) { $useropts{'common'}{'css'} .= qq~ table { border-collapse: separate ; border-spacing: 12.5px ; width: 100% ; font-size: 1em ; } tbody tr { line-height: 0 ; } thead th { line-height: 0 ; } tbody td { background-color: rgb(238,238,238) ; } ~ ; my $table_header = "" . join ("", map { join(" ", map { ucfirst $_ } split (/\_/, $sort_field{$_} ) ) } (27 .. 33) ) . "" ; foreach my $analytics_id (sort {$b <=> $a} keys %analytics_saved_values) { my $analytics_table_raw = qq~~ ; foreach my $row_counter (sort {$a <=> $b} keys %{$analytics_saved_values{$analytics_id}}) { last if $analytics_required ; $analytics_table_raw .= qq~ ~ ; foreach my $col_nr (27 .. 33) { my $nowrap = ($col_nr == 27) ? "nowrap" : "" ; $analytics_table_raw .= ($analytics_saved_values{$analytics_id}{$row_counter}{$sort_field{$col_nr}}) ? qq~ $analytics_saved_values{$analytics_id}{$row_counter}{$sort_field{$col_nr}} ~ : qq~ ~ ; } $analytics_table_raw .= qq~ ~ ; } $analytics_table .= qq~$analytics_table_raw~ if $analytics_table_raw ; #
#

Analytics Required

#
if ($analytics_table_raw) { # $analytics_table_body .= qq~ #
#   #
#
#
# ~ ; $analytics_table_body .= qq~
~ if $analytics_table_body ; $analytics_table_body .= &common_min_box_top('tasks',"View Analytics - $db{analytics_event_bookings}{$analytics_id}{event_name} [$analytics_id]") ; $analytics_table_body .= qq~ $table_header $analytics_table_raw
~ ; } } } if ($event_or_analytics eq 'event') { &db_min_ro($table,"*","quote_nr='$id'",'','') ; if ($db{$table}{$id}{city_id} =~ /,/) { $sort_field{12} = 'cities' ; } else { $sort_field{13} = '' ; } &db_min_ro('event_quotes_min',"*","id='$id'",'','') ; &db_min_ro('users','id,name,user_type,phone',"user_type LIKE 'casual%'",'','') ; foreach (keys %{$db{users}}) { $casual_name{$_} = $db{users}{$_}{name} ; # my $casual_type = $db{users}{$_}{user_type} ; $casual_type =~ s/_casual//g ; $casual_type{$_} = uc substr($db{users}{$_}{user_type},-1,1) ; } # %col_name = () ; # &db_min_ro('countries','id,name',"id=$db{$table}{$id}{country_id}",'','') if $db{$table}{$id}{country_id} ; # foreach (keys %{$db{countries}}) { $country{$_} = $db{countries}{$_}{name} ; } %col_name = () ; &db_min_ro('event_types','id,name',"id=$db{$table}{$id}{type}",'','') if $db{$table}{$id}{type} ; foreach (keys %{$db{event_types}}) { $event_type{$_} = $db{event_types}{$_}{name} ; } %col_name = () ; &db_min_ro('customers','id,name',"id=$db{$table}{$id}{quote_to}",'','') if $db{$table}{$id}{quote_to} ; foreach (keys %{$db{customers}}) { $customers{$_} = $db{customers}{$_}{name} ; } %col_name = () ; # &db_min_ro('events','id,event_quote_nr,category,user_id',"event_quote_nr='$id'",'','') ; # my $user_id = $db{$table}{$id}{user_id} ; my $quote_nr = $db{$table}{$id}{quote_nr} ; my $start = $db{$table}{$id}{date_from} ; my $end = $db{$table}{$id}{date_to} ; my $date_start = substr($start,0,10); my $date_end = substr($end,0,10); # for (1 .. $max_operators) { # local $field = "operator_$_\_workings_event" ; # $op_id = $db{$table}{$id}{$field} ; my %selected_names = () ; # &common_debug("operator_workings_event : $db{event_quotes_min}{$id}{operator_workings_event} , id : $id") ; foreach my $op_id (split(";",$db{event_quotes_min}{$id}{operator_workings_event})) { next unless $op_id ; next if $done_op{$op_id}{$quote_nr} ; $this_user_subscribed{$op_id} = 1 ; $cat{$date_start}{$date_end}{$quote_nr}{$op_id} = 'assigned' ; $ccnt{$date_start}{$date_end}{$casual_type{$op_id}}{$quote_nr}++ ; $subscribed_names{$date_start}{$date_end}{$casual_type{$op_id}}{$quote_nr} .= "$casual_name{$op_id}, " ; $done_op{$op_id}{$quote_nr} = 1 ; # $selected_names{operator_names_type_a}{$op_id}{$id} = 'SELECTED' if $casual_type{$op_id} eq 'A' ; # $selected_names{operator_names_type_b}{$op_id}{$id} = 'SELECTED' if $casual_type{$op_id} eq 'B' ; # &common_debug("op_id : $op_id , casual_type : $casual_type{$op_id} , id : $id") ; } &db_min_ro('events','id,event_quote_nr,category,user_id,startdate,enddate',"user_id='$userid' OR event_quote_nr='$id'",'','') ; # &db_min_ro('events','id,event_quote_nr,category,user_id,startdate,enddate',"(user_id='$userid' OR event_quote_nr='$id') AND startdate LIKE '$date_start%' AND enddate LIKE '$date_end%'",'','') ; foreach (keys %{$db{events}}) { my $start = $db{events}{$_}{startdate} ; my $edate_start = substr($start,0,10); my $end = $db{events}{$_}{enddate} ; my $edate_end = substr($end,0,10); $qnr = $db{events}{$_}{event_quote_nr} ; $uid = $db{events}{$_}{user_id} ; if ($date_start ne $edate_start) { next ; } if ($date_end ne $edate_end) { next ; } # $booked_this_one{$uid}{$qnr}{$db{events}{$_}{category}} = 1 ; $cat{$edate_start}{$edate_end}{$qnr}{$uid} = $db{events}{$_}{category} ; # $ccnt{$edate_start}{$edate_end}{$casual_type{$uid}}{$qnr}++ if $cat{$edate_start}{$edate_end}{$qnr}{$uid} eq 'available' ; # $subscribed_names{$edate_start}{$edate_end}{$casual_type{$uid}}{$qnr} .= "$casual_name{$uid}, " if $cat{$edate_start}{$edate_end}{$qnr}{$uid} eq 'available' ; &check_dates_booked($qnr,$uid,$db{events}{$_}{startdate},$db{events}{$_}{enddate}) if $cat{$edate_start}{$edate_end}{$qnr}{$uid} eq 'available' ; } my $casual_1_type = $db{$table}{$id}{casual_worker} ; my $casual_2_type = $db{$table}{$id}{casual_worker_2} ; $preferred_title{date_from} = 'Date From' ; $preferred_title{date_to} = 'Date To' ; $preferred_title{quote_to} = 'Client' ; $preferred_title{nr_of_casuals} = 'Nr of Operators' ; # . $casual_1_type ; $preferred_title{nr_of_casuals_2} = 'Nr of Operators' ; # . $casual_2_type ; $preferred_title{ref} = 'Event Name' ; $lcol = 2 ; $fcol = 8 ; # foreach (sort { $col_name{$a} cmp $col_name{$b} } keys %col_name) { # $col = $col_name{$_} ; my $casuals_1_subscribed = sprintf("%0.0f",$ccnt{$date_start}{$date_end}{$casual_1_type}{$id}) ; my $casuals_2_subscribed = sprintf("%0.0f",$ccnt{$date_start}{$date_end}{$casual_2_type}{$id}) ; chop $subscribed_names{$date_start}{$date_end}{$casual_1_type}{$id} ; chop $subscribed_names{$date_start}{$date_end}{$casual_1_type}{$id} ; chop $subscribed_names{$date_start}{$date_end}{$casual_2_type}{$id} ; chop $subscribed_names{$date_start}{$date_end}{$casual_2_type}{$id} ; my $casual_1_names_subscribed = '[' . $subscribed_names{$date_start}{$date_end}{$casual_1_type}{$id} . ']' if $subscribed_names{$date_start}{$date_end}{$casual_1_type}{$id} ; my $casual_2_names_subscribed = '[' . $subscribed_names{$date_start}{$date_end}{$casual_2_type}{$id} . ']' if $subscribed_names{$date_start}{$date_end}{$casual_2_type}{$id} ; # my $operator_id = 0 ; # my %selected_names = () ; # for (1 .. $max_operators) { # $operator_id = $db{$table}{$id}{"operator_$_\_workings_event"} ; # $selected_names{operator_names_type_a}{$operator_id}{$id} = 'SELECTED' if $operator_id and $casual_type{$operator_id} eq 'A' ; # $selected_names{operator_names_type_b}{$operator_id}{$id} = 'SELECTED' if $operator_id and $casual_type{$operator_id} eq 'B' ; # } # $selected_names{operator_names_type_a}{48}{$id} = 'SELECTED' ; foreach my $casual_id (keys %casual_name){ $opts{operator_names_type_a} .= qq() if $casual_type{$casual_id} eq 'A' ; $opts{operator_names_type_b} .= qq() if $casual_type{$casual_id} eq 'B' ; } my @club_ids_arr = () ; foreach (split(";",$db{$table}{$id}{club_ids})) { push @club_ids_arr , "`id` = '$_'" if $_ ; } my $club_ids_sql = join(" OR ",@club_ids_arr) ; $club_ids_sql = "($club_ids_sql)" if $club_ids_sql ; &db_min_ro('clubs','id,name',"$club_ids_sql",'',''); if ($date_start eq $date_end) { $sort_field{3} = 'date' ; $sort_field{4} = '' ; $preferred_title{date_from} = 'Date' ; } my @times_from = split(/\;/,$db{$table}{$id}{times_from}) ; my @times_to = split(/\;/,$db{$table}{$id}{times_to}) ; my @times_from_com = () ; my @times_to_com = () ; push @times_from_com,substr($db{$table}{$id}{date_from},11) ; my @days_active = split(/\;/,$db{$table}{$id}{days_active}) ; my %dates_hash = () ; for (1 .. 10) { my ($year,$month,$day) = split(/\-/,substr($db{$table}{$id}{date_from},0,10)) ; my ($new_year,$new_month,$new_day) = Add_Delta_Days($year,$month,$day,$_-1) ; $new_day = sprintf("%02s",$new_day) ; $new_month = sprintf("%02s",$new_month) ; $dates_hash{$_} = "$new_year-$new_month-$new_day" ; push @times_from_com,$times_from[$_-2] if $times_from[$_-2] && $_ > 1 ; push @times_from_com,substr($db{$table}{$id}{date_from},11) if !$times_from[$_-2] && $_ > 1 ; last if substr($db{$table}{$id}{date_to},0,10) eq "$new_year-$new_month-$new_day" ; push @times_to_com,$times_to[$_-1] if $times_to[$_-1] ; push @times_to_com,substr($db{$table}{$id}{date_to},11) if !$times_to[$_-1] ; } my $system_count = 0 ; my $system_day_cnt = 0 ; my %system_has_daily_op = () ; foreach my $system_row (split(/\|/,$db{$table}{$id}{daily_operator_ids})) { $system_count++ ; next unless $system_row ; $system_day_cnt = 0 ; foreach my $col (split(/\;/,$system_row)) { $system_day_cnt++ ; next unless $col ; $default_op_ids{$system_count}{$system_day_cnt} = $col if $col ; $system_daily_ops{$system_count} .= qq~Day $system_day_cnt : $db{users}{$col}{name}, ~ if $col ; } chop $system_daily_ops{$system_count} if $system_daily_ops{$system_count} ; chop $system_daily_ops{$system_count} if $system_daily_ops{$system_count} ; } $system_count = 0 ; # push @times_to_com, substr($db{$table}{$id}{date_to},11) ; # my $system_count = 0 ; my $system_day_cnt = 0 ; my %system_has_daily_op = () ; # foreach my $system_row (split(/\|/,$db{$table}{$id}{daily_operator_ids})) { # $system_count++ ; # next unless $system_row ; # $system_day_cnt = 0 ; # foreach my $col (split(/\;/,$system_row)) { # $system_day_cnt++ ; # next unless $col ; # $default_op_ids{$system_count}{$system_day_cnt} = $col if $col ; # $system_daily_ops{$system_count} .= qq~Day $system_day_cnt : $db{users}{$col}{name}, ~ if $col ; # } # chop $system_daily_ops{$system_count} if $system_daily_ops{$system_count} ; # chop $system_daily_ops{$system_count} if $system_daily_ops{$system_count} ; # } # $system_count = 0 ; } foreach my $cnt (sort {$a <=> $b} keys %sort_field) { $col = $sort_field{$cnt} ; next if !$col || $col eq 'quote_nr' ; $val = $db{$table}{$id}{$col} ; # next if not $val and $col ne 'operator_names_type_a' and $col ne 'operator_names_type_b' and $col ne 'category_1_sub-Categories' and $col ne 'category_2_sub-Categories' ; # $val = $country{$val} if $col eq 'country_id' ; $val = $customers{$val} if $col eq 'quote_to' ; # $val = $event_type{$val} if $col eq 'type' ; if ($col eq 'nr_of_casuals') { $casuals_1_subscribed = 0 unless $casuals_1_subscribed ; $db{$table}{$id}{nr_of_casuals} = 0 unless $db{$table}{$id}{nr_of_casuals} ; $val = "$casuals_1_subscribed/$val $casual_1_names_subscribed" ; $fully_substribed{$casual_1_type} = 1 if $casuals_1_subscribed >= $db{$table}{$id}{nr_of_casuals} ; } elsif ($col eq 'nr_of_casuals_2') { $casuals_2_subscribed = 0 unless $casuals_2_subscribed ; $db{$table}{$id}{nr_of_casuals_2} = 0 unless $db{$table}{$id}{nr_of_casuals_2} ; $val = "$casuals_2_subscribed/$val $casual_2_names_subscribed" ; $fully_substribed{$casual_2_type} = 1 if $casuals_2_subscribed >= $db{$table}{$id}{nr_of_casuals_2} ; } elsif ($col eq 'date_from' || $col eq 'date') { $val = &process_date($db{$table}{$id}{date_from}) ; $val .= qq~ to ~ . substr($times_to_com[0],0,5) ; $val .= substr($db{$table}{$id}{date_to},11,5) if $col eq 'date' ; } elsif ($col eq 'date_to') { $val = &process_date($db{$table}{$id}{date_to}) ; $val = substr($val,0,-5) . substr($times_from_com[-1],0,5) . qq~ to ~ . substr($val,-5,5) ; } elsif ($col eq 'operator_names_type_a'){ next unless $db{$table}{$id}{nr_of_casuals} ; # $preferred_title{$col} = "Operator Names A" ; # $fcol = 3 ; # $multiple{$col} = 1 ; # $setmultiple = 'multiple' ; # $print_box_content_rows .= &common_min_form_select($col,'') ; # $print_box_content_rows . "" ; } elsif ($col eq 'operator_names_type_b') { # next unless $db{$table}{$id}{nr_of_casuals_2} ; # $preferred_title{$col} = "Operator Names B" ; # $fcol = 3 ; # $multiple{$col} = 1 ; # $setmultiple = 'multiple' ; # $print_box_content_rows .= &common_min_form_select($col,'') ; } elsif ($col eq 'sport_type_ids') { $val = qq~~ ; foreach (split(",",$db{$table}{$id}{sport_type_ids})) { $val .= qq~$db{sport_types}{$_}{name}, ~ ; } chop $val if $val ; chop $val if $val ; } # elsif ($col eq 'city_id') { # $val = $db{cities}{$val}{city} ; # $val .= qq~, $db{regions}{$db{$table}{$id}{region_id}}{name}~ if $db{$table}{$id}{region_id} ; # } # elsif ($col eq 'organisation_ids') { # $val = qq~~ ; # foreach (split(",",$db{$table}{$id}{organisation_ids})) { # $val .= qq~$db{organisations}{$_}{name}, ~ ; # } # chop $val if $val ; chop $val if $val ; # } # event_quotes_poc','id,name,contact_nr elsif ($col eq 'poc_name') { $val = $db{event_quotes_poc}{$db{$table}{$id}{poc_id}}{name} ; } elsif ($col eq 'poc_contact_nr') { $val = $db{event_quotes_poc}{$db{$table}{$id}{poc_id}}{contact_nr} ; $val =~ s/ //g ; if (substr($val,0,2) eq '27' && length($val) == 11) { $val = "+27 " . substr($val,2,2) . " " . substr($val,4,3) . " " . substr($val,7,4) ; } elsif ((substr($val,0,2) eq '07' || substr($val,0,2) eq '08' || substr($val,0,2) eq '02') && length($val) == 10) { $val = "+27 " . substr($val,1,2) . " " . substr($val,3,3) . " " . substr($val,6,4) ; } else { $val = $db{event_quotes_poc}{$db{$table}{$id}{poc_id}}{contact_nr} ; } } elsif ($col eq 'category_1_sub_categories') { my @a = split('\|;\|',$db{event_quotes_min}{$id}{category_details}) ; $a[0] =~ s/\n/
/g; $a[0] = substr($a[0],0,-4) if substr($a[0],-4,4) eq '
' ; $val = $a[0] ; next unless $val ; } elsif ($col eq 'category_2_sub_categories') { my @a = split('\|;\|',$db{event_quotes_min}{$id}{category_details}) ; $a[1] =~ s/\n/
/g; $a[1] = substr($a[1],0,-4) if substr($a[1],-4,4) eq '
' ; $val = $a[1] ; next unless $val ; } elsif ($col eq 'category_1') { $val = $db{event_quotes_categories}{$db{$table}{$id}{category_id_1}}{category} ; } elsif ($col eq 'category_2') { $val = $db{event_quotes_categories}{$db{$table}{$id}{category_id_2}}{category} ; } elsif ($col eq 'type_details') { # event_system_id_multiple $val = qq~~ ; foreach my $type_id (split(",",$db{$table}{$id}{type_details_id})) { $val .= qq~$db{event_type_details}{$type_id}{name}, ~ ; } chop $val if $val ; chop $val if $val ; } elsif ($col eq 'system_details') { # elsif ($col eq 'system_name') { $val = qq~~ ; # my $cnt_sys = 0 ; my @club_ids = split(";",$db{$table}{$id}{club_ids}) ; my @operator_ids = ($db{$table}{$id}{operator_ids} =~ /;/) ? split(";",$db{$table}{$id}{operator_ids}) : split(",",$db{$table}{$id}{operator_ids}) ; my $cnt_sys = -1 ; foreach my $event_id (split(/\;/,$db{$table}{$id}{event_system_id_multiple})) { $cnt_sys++ ; next if not $event_id and not $club_ids[$cnt_sys] ; $event_id =~ s/f-//g ; $val .= qq~$db{event_systems}{$event_id}{name} ~ if $event_id ; $val .= qq~>>> ~ if $event_id and not $db{event_systems}{$event_id}{description} ; $val .= qq~($db{event_systems}{$event_id}{description}) >>> ~ if $db{event_systems}{$event_id}{description} and $event_id ; $val .= qq~NO SYSTEM >>> ~ unless $event_id ; $val .= qq~$db{clubs}{$club_ids[$cnt_sys]}{name} >>> ~ if $club_ids[$cnt_sys] ; $val .= qq~NO CLUB >>> ~ unless $club_ids[$cnt_sys] ; $val .= qq~$db{users}{$operator_ids[$cnt_sys]}{name}~ if $operator_ids[$cnt_sys] ; $cnt_sys++ ; $val .= qq~[$system_daily_ops{$cnt_sys}]~ if $system_daily_ops{$cnt_sys} && !$operator_ids[$cnt_sys-1] ; $cnt_sys-- ; # $val .= qq~>>> $db{clubs}{$club_ids[$cnt_sys]}{name} ~ if $db{clubs}{$club_ids[$cnt_sys]}{name} ; # $val .= qq~>>> $db{users}{$operator_ids[$cnt_sys]}{name} ~ if $db{users}{$operator_ids[$cnt_sys]}{name} ; # $val .= qq~[$db{users}{$operator_ids[$cnt_sys]}{phone}] ~ if $db{users}{$operator_ids[$cnt_sys]}{name} && $db{users}{$operator_ids[$cnt_sys]}{phone} ; $val .= qq~
~ ; # $cnt_sys++ ; } # chop $val if $val ; chop $val if $val ; $val = substr($val,0,-4) if $val ; } # elsif ($col eq 'club_name') { # $val = '' ; # foreach my $club_id (split(";",$db{$table}{$id}{club_ids})) { # $val .= qq~$db{clubs}{$club_id}{name}
~ if $club_id ; # } # $val =~ s/\n/
/g; # $val = substr($val,0,-4) if substr($val,-4,-1) eq '/g; } elsif ($col eq 'additional_notes') { $val = $db{$table}{$id}{additional_notes} ; $val =~ s/\n/
/g; } elsif ($col eq 'fixture_date/Time_from') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'sport') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'age_group') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'team') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'stream_forwarding') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'stream_key') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } elsif ($col eq 'stream_URL') { $val = join(",",map{"$analytics_saved_values{$col}{$_}"} sort {$a <=> $b} keys %{$analytics_saved_values{$col}}) ; } next unless $val ; $print_box_content_rows .= &common_min_form_view($col,$val,'') unless $col eq 'operator_names_type_a' or $col eq 'operator_names_type_b' ; if ($col eq 'date_from' && substr($db{$table}{$id}{date_from},0,10) ne substr($db{$table}{$id}{date_to},0,10)) { for (2 .. 9) { last if substr($db{$table}{$id}{date_to},0,10) eq $dates_hash{$_} ; next if $db{$table}{$id}{days_active} && !$days_active[$_ - 1] ; my ($new_year,$new_month,$new_day) = split(/\-/,$dates_hash{$_}) ; $val = $new_day . "-" . $month_array[$new_month - 1] . "-" . $new_year . " @ " . substr($times_from_com[$_ - 1],0,5) . " to " . substr($times_to_com[$_ - 1],0,5) ; $print_box_content_rows .= &common_min_form_view(" ",$val,'') ; } } } $dialog = 0 ; $addbkb = 0 ; # $print_box_content_rows .= &common_min_forms_end('','','report') ; # my @assigned_users_a = split(/\,/,$db{$table}{$id}{operator_names_type_a}s) ; # my @assigned_users_b = split(/\,/,$db{$table}{$id}{operator_names_type_b}) ; # my %selected_names = () ; # for (@assigned_users_a){ $selected_names{operator_names_type_a}{$_}{$id} = 'SELECTED'; } # for (@assigned_users_b){ $selected_names{operator_names_type_b}{$_}{$id} = 'SELECTED'; } # # # $print_box_content_rows .= qq~ $form_for_save .= qq~
 
  
 
~ ; $trigger_jquery_raw .= qq~\$("#savebuttcalender").click(function() { var op_a_val = \$("#selectOperator_names_type_a").chosen().val() ; var op_b_val = \$("#selectOperator_names_type_b").chosen().val() ; // const selected_a = op_a_val.split(",") ; // const selected_b = op_b_val.split(",") ; // let counter_a = 0 ; // let counter_b = 0 ; // for (let i = 0; i < selected_a.length; i++) { // counter_a++ ; // } // for (let i = 0; i < selected_b.length; i++) { // counter_b++ ; // } // var max_ops_a = '$db{$table}{$id}{nr_of_casuals}' ; // var max_ops_b = '$db{$table}{$id}{nr_of_casuals_2}' ; // if (max_ops_a < counter_a && max_ops_b < counter_b) { // noty({text:'Operator A names exceed max nr allowed of '+max_ops_a+'! and Operator B names exceed max nr allowed of '+max_ops_b+'!',layout:"center",type:"error",timeout:3000}); // return; // } else if (max_ops_b < counter_b && max_ops_a >= counter_a) { // noty({text:'Operator B names exceed max nr allowed of '+max_ops_b+'!',layout:"center",type:"error",timeout:3000}); // return; // } else if (max_ops_a < counter_a && max_ops_b >= counter_b) { // noty({text:'Operator A names exceed max nr allowed of '+max_ops_a+'!',layout:"center",type:"error",timeout:3000}); // return; // } else { \$('#operators-type-a').val(op_a_val); \$('#operators-type-b').val(op_b_val); \$('#$table-form').submit(); // } });~ ; # $trigger_jquery_raw .= qq~\$("#savebuttcalender").click(function() { # var max_allowed_a = $db{$table}{$id}{nr_of_casuals} ; # var max_allowed_b = $db{$table}{$id}{nr_of_casuals_2} ; # if (max_allowed_a < counter_a && max_allowed_b < counter_b) { # noty({text:'Operator A names exceed max nr allowed of '+max_allowed_a+'! and Operator B names exceed max nr allowed of '+max_allowed_b+'!',layout:"center",type:"error",timeout:3000}); # return; # } else if (max_allowed_b < counter_b && max_allowed_a >= counter_a) { # noty({text:'Operator B names exceed max nr allowed of '+max_allowed_b+'!',layout:"center",type:"error",timeout:3000}); # return; # } else if (max_allowed_a < counter_a && max_allowed_b >= counter_b) { # noty({text:'Operator A names exceed max nr allowed of '+max_allowed_a+'!',layout:"center",type:"error",timeout:3000}); # return; # } else { # \$('#$table-form').submit(); # } # });~ ; # $print_box_content_rows . "" ; $db_ignore_open_close = 0 ; # do one open and one close instead of repeating it &db_close_conn ; # my $saction = ($cat{$date_start}{$date_end}{$id}{$userid} eq 'available') ? 'unavailable' : 'available' ; my $butttxt = uc $saction ; my $buttcolor = ($saction eq 'available') ? 'success' : 'danger' ; my $buttcolor = ($saction eq 'available') ? 'success' : 'danger' ; if ($cat{$date_start}{$date_end}{$id}{$userid} eq 'available') { $saction = 'unavailable' ; } elsif ($cat{$date_start}{$date_end}{$id}{$userid} eq 'assigned') { $saction = 'available' ; # $buttcolor = 'info' ; $buttcolor = 'success' ; } elsif ($cat{$date_start}{$date_end}{$id}{$userid} eq 'unavailable') { $saction = 'available' ; $buttcolor = 'success' ; } my $butttxt = uc $saction ; my ($dy1,$dm1,$dd1,$th1,$tm1,$ts1) = &common_split_sql_time($db{$table}{$id}{date_from}) ; my ($dy2,$dm2,$dd2,$th2,$tm2,$ts2) = &common_split_sql_time($db{$table}{$id}{date_to}) ; my $Dd = Delta_Days($dy1,$dm1,$dd1,$dy2,$dm2,$dd2); # my $nr_of_casuals_1_allowed = sprintf("%0.0f",$db{$table}{$id}{nr_of_casuals}) ; # if ($casuals_1_subscribed >= $nr_of_casuals_1_allowed and $saction eq 'available') { return ; } # fully subscribed # my $nr_of_casuals_2_allowed = sprintf("%0.0f",$db{$table}{$id}{nr_of_casuals_2}) ; # if ($casuals_2_subscribed >= $nr_of_casuals_2_allowed and $saction eq 'available') { return ; } # fully subscribed my $cnow = $now_ccyymmdd . $now_hour . $now_min . $now_sec ; my $cstart = $db{$table}{$id}{date_from} ; $cstart =~ s/ //g ; $cstart =~ s/-//g ; $cstart =~ s/://g ; my $cend = $db{$table}{$id}{date_to} ; $cend =~ s/ //g ; $cend =~ s/-//g ; $cend =~ s/://g ; my $in_the_past = 0 ; our $files_attach = qq~~ ; my $pdf_tooltip_extra = ($event_or_analytics eq 'analytics') ? "ANALYTICS EVENT" : "EVENT" ; my $pdf_tooltip_extra2 = ($event_or_analytics eq 'analytics') ? "Analytics Event" : "Event" ; $files_attach .= qq~



~ if $glod_user_level > 1 ; for (1 .. 3) { $working_uploads = &get_event_uploads($qid,"upload_$_",'id') ; if ($working_uploads) { $files_attach .= qq~

$working_uploads

~ ; } } # ;;;;6797|;;;;6797|;;;;6797|;8;;;6797 if ($cstart < $cnow && $cend < $cnow) { # event in the past # if (1) { # event in the past if ($analytics_event_exists) { if ($analytics_table) { $analytics_table_body .= qq~

Event has past

$files_attach
 
~ ; } else { $print_box_content_rows .= qq~

Event has past

$files_attach
 
~ ; } } else { $print_box_content_rows .= qq~

Event has past

$files_attach
 
~ ; } return ; } else { if ($analytics_event_exists) { if ($analytics_table) { $analytics_table_body .= qq~

 

$files_attach
~ ; } else { $print_box_content_rows .= qq~

Analytics Required

$files_attach
 
~ ; } # my $analytics_required = ($analytics_table) ? qq~ ~ : qq~Analytics Required~ ; # my $close_button = (!$analytics_table) ? qq~ #
#
#   #
#
# ~ : qq~~ ; } else { $print_box_content_rows .= qq~

 

$files_attach
~ ; } } if ($time_subscribed{$userid}{"$dy1$dm1$dd1$th1"} and $cat{$date_start}{$date_end}{$id}{$userid} ne 'available') { $print_box_content_rows .= qq~You're already booked for an event during this time~; return ; } # busy on another event already, avoid double booking if ($time_subscribed{$userid}{"$dy2$dm2$dd2$th2"} and $cat{$date_start}{$date_end}{$id}{$userid} ne 'available') { $print_box_content_rows .= qq~You're already booked for an event during this time~; return ; } # busy on another event already, avoid double booking return unless substr($usertype,0,6) eq 'casual' ; # my $is_operator = uc substr($usertype,0,6) ; # unless (substr($usertype,0,6) eq 'casual') { $print_box_content_rows .= qq~$is_operator~; return ; } my $casual_type = uc substr($usertype,-1,1) ; # return if $fully_substribed{$casual_type} and $cat{$date_start}{$date_end}{$id}{$userid} and $cat{$date_start}{$date_end}{$id}{$userid} ne 'available' ; # return if $fully_substribed{$casual_type} and $saction eq 'available' and $this_user_subscribed{$userid} != 1 ; return unless $butttxt ; $print_box_content_rows .= qq~
~ ; } #------------------------------------------------------------------------------------------ sub process_date { my ($date_string) = @_ ; my $year = substr($date_string, 0, 4) ; my $month = substr($date_string, 5, 2) ; $month = int($month); $month = $month_array[$month - 1] ; my $day = substr($date_string, 8, 2) ; my $date_return = "$day-" ; $date_return .= "$month-" ; $date_return .= "$year" ; $date_return .= " @ " . substr($date_string,11,5) ; return $date_return ; } #------------------------------------------------------------------------------------------ sub get_event_uploads { my ($id,$type,$folder) = @_ ; unless ($id and $type) { return() ; } my $uploads = '' ; my %uploads = () ; my $field = $type ; my ($doctype,$num) = split(/\_/,$field) ; $doctype .= 's' ; $table = $doctype unless $table ; my $doc = $db{$table}{$id}{$field} ; &common_debug("$doc") ; if ($doc){ my $tooltip = qq~data-toggle="tooltip" data-placement="right" data-title="$doc"~ ; my @docarr = split(/\./,$doc); my $ext = pop @docarr ; my $file = pop @docarr ; my $dlg_title = uc substr($doc,0,4) . ' ' . $ext ; $file_cnt++; my $test_icon_loc = qq~$htmlpath/img/icons/doc/$ext.png~; my $icon_loc = qq~/img/icons/doc/$ext.png~; $icon_loc = qq~/img/icons/doc/def.png~ unless -f $test_icon_loc ; # $uploads{$type} .= qq~~ ; $uploads{$type} .= qq~~ ; # $uploads .= qq~~; } if ($uploads{$type}) { $uploads = $uploads{$type} ; } return ($uploads) ; } #------------------------------------------------------------------------------------------ sub check_dates_booked { my ($qnr,$uid,$startdate,$enddate) = @_ ; my ($dy1,$dm1,$dd1,$th1,$tm1,$ts1) = &common_split_sql_time($startdate) ; my $startccyymmdd = $dy1 . $dm1 . $dd1 ; $start_hour{$uid}{$startccyymmdd} = $th1 ; #my $startccyymmddhr = $startccyymmdd . $th1 ; my ($dy2,$dm2,$dd2,$th2,$tm2,$ts2) = &common_split_sql_time($enddate) ; my $endccyymmdd = $dy2 . $dm2 . $dd2 ; $end_hour{$uid}{$endccyymmdd} = $th2 ; #my $endccyymmddhr = $endccyymmdd . $th2 ; my $array_date = $startccyymmdd ; while ($array_date < $endccyymmdd) { my $date_dd = substr($array_date,6,2) ; my $date_mm = substr($array_date,4,2) ; my $date_ccyy = substr($array_date,0,4) ; my ($ccyy,$month,$day) = Add_Delta_Days($date_ccyy,$date_mm,$date_dd,1) ; $month = sprintf("%02s", $month) ; $day = sprintf("%02s", $day) ; $array_date = "$ccyy$month$day" ; $start_hr = ($start_hour{$uid}{$array_date}) ? $start_hour{$uid}{$array_date} : 0 ; $end_hr = ($end_hour{$uid}{$array_date}) ? $end_hour{$uid}{$array_date} : 23 ; for ($start_hr .. $end_hr) { my $hr = sprintf("%02s", $_) ; my ($year,$month,$day, $hour,$min,$sec) = Add_Delta_DHMS($date_ccyy,$date_mm,$date_dd,$hr,'00','00', 0,1,0,0); $time_subscribed{$uid}{"$array_date$hr"} = 1 ; } # $day_subscribed{$uid}{$array_date} = 1 ; } } #------------------------------------------------------------------------------------------ sub display_user { &db_min_ro('users','id,name,username','','','') ; foreach my $id (keys %{$db{users}}) { $user_name{$id} = $db{users}{$id}{name} ; } } #------------------------------------------------------------------------------------------ sub add_form { $boxtitle = 'Add' ; @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','',1,'',$user_excl_sql) ; # &common_min_opts('leave_type','type',1) ; %col_name = () ; &db_min_ro($table,'*','id > 1 AND id < 10','','') ; &hidden_fields ; # $extra_form_fields = qq() ; $print_box_content_rows = &common_min_add_form('events','save') ; } #------------------------------------------------------------------------------------------ sub load_events { &db_min_ro($table,'*',"id='$id'",'','') ; &common_min_dialog ; &display_user; my $category = ucfirst $db{$table}{$id}{category} ; # my $title_row = qq(
$db{$table}{$id}{title}
) ; if ($db{$table}{$id}{category} eq 'leave') { # $title_row = '' ; $category = ucfirst $db{$table}{$id}{type} . ' ' . $category } if ($db{$table}{$id}{category} eq 'weekend_work') { $category =~ s/\_/ /g ; } $content = qq(
 

Item

$title_row
$user_name{$db{$table}{$id}{user_id}}
$category
$db{$table}{$id}{notes}
$db{$table}{$id}{startdate}
$db{$table}{$id}{enddate}
$db{$table}{$id}{date_time}
) ; } #---------------------------------------------------------------------------------------- sub screen1 { my $buttons = '' ; if ($useropts{super}{lc $username}){ $buttons = qq(     ); } print < $print_top
$content
 
$buttons
 
$dialog{'common'}{'js'} ENDOFTEXT # #
   
 
} #------------------------------------------------------------------------------------------ sub screen2 { $trigger_jquery_raw .= qq(\$("#savebutt").click(function() { var sc_val = \$("#selectAssigned_users").chosen().val() ; \$('#assigned-users').val(sc_val); \$('#events-form').submit(); });) ; &common_min_alert_type ; &common_min_footer('id','') ; &common_min_dialog ; my $events_table_body = ($event_or_analytics eq 'event') ? qq~

$boxtitle Event

$print_box_content_rows
~ : qq~~ ; print < $print_top
$events_content
$events_table_body $analytics_table_body $dialog{'common'}{'js'} $print_footer_jscript $print_footer_forms ENDOFTEXT # } #------------------------------------------------------------------------------------------ sub screen3 { if (($username eq 'rory') and ($testing)) { return ; } print < $useropts{title} ENDOFTEXT # } #------------------------------------------------------------------------------------------ use db ; use db_min ; use today ; use common ; use common_min ; 1;