663 lines
24 KiB
Perl
663 lines
24 KiB
Perl
#!/usr/bin/perl
|
|
|
|
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
|
|
|
|
require cfg ;
|
|
|
|
print "Content-type: text/html\n\n";
|
|
|
|
# unless ($useropts{it}{$username}) { print "<<<<<<<<<<<< MAINTENANCE IN PROGRESS >>>>>>>>>" ; exit ; }
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
use CGI::Carp qw(fatalsToBrowser);
|
|
use CGI;
|
|
use Mail::Sendmail;
|
|
use Fcntl qw(:flock);
|
|
use File::Copy;
|
|
use File::Basename;
|
|
use Date::Calc qw(:all);
|
|
use Excel::Writer::XLSX;
|
|
use Time::Piece ;
|
|
|
|
&today;
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
@ARGV = split(/\\*\&/, $ENV{'QUERY_STRING'}) ;
|
|
$action = $ARGV[0] ;
|
|
|
|
our ($q) = CGI -> new() ;
|
|
our $iaction = $q -> param('iaction') || $action ;
|
|
our $isaved = $q -> param('isaved') || '' ;
|
|
|
|
our $open_new_tab = qq~target="_blank"~ ; # opens booking page in a new tab
|
|
|
|
# our $debug = 1 ;
|
|
# our $testing = 1 ;
|
|
|
|
# if ($username ne 'handre') {
|
|
# print "<< MAINTENANCE IN PROGRESS >>" ; exit ;
|
|
# }
|
|
|
|
#-------- page opts --------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
our %fixtures_status = (1 => 'Pending',2 => 'Booked',3 => 'Completed') ;
|
|
# our %coding_provider = (1 => 'SportVot',2 => 'iSport') ;
|
|
# our %footage_type = ("s" => "SSS","r" => "Raw") ;
|
|
our %footage_type = ("s" => "Pixellot","r" => "YouTube") ;
|
|
our %service_types = (1 => "Live Coding",2 => "Individual 48 hrs",3 => "Post Coding 24 hrs") ;
|
|
our %coding_type = ("s" => "Standard","p" => "Premium","i" => "Individual") ;
|
|
our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ;
|
|
|
|
&page_opts ;
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
our $srchscr = 1 ;
|
|
|
|
if ($iaction eq 'save') {
|
|
&db_open_upd ;
|
|
our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
|
|
&common_min_load_params ;
|
|
&report_ifields;
|
|
&update ;
|
|
# &list_screen ;
|
|
$db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
|
|
&db_close_conn ;
|
|
exit if $testing ;
|
|
# &screen3;
|
|
&redirect_screen;
|
|
}
|
|
|
|
&db_open_ro ;
|
|
our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
|
|
&report_screen if $iaction eq '' ;
|
|
|
|
if ($iaction eq 'report') {
|
|
&common_min_load_params ;
|
|
&report_ifields;
|
|
&list_screen ;
|
|
&screen3;
|
|
}
|
|
|
|
&common_min_action;
|
|
$db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
|
|
&db_close_conn ;
|
|
|
|
exit;
|
|
|
|
#------------------------------------------------------------------------------------------
|
|
|
|
sub validate {
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub insert {
|
|
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub update {
|
|
|
|
&db_min_ro($table,"id,fixtures_saved_values","",'','') ;
|
|
|
|
my %seen_event_id = () ; my %ii = %i ; %i = () ;
|
|
|
|
foreach (keys %ii) {
|
|
|
|
# next if $_ !~ /update_/ || ($_ =~ /update_/ && !$ii{$_}) ;
|
|
next if $_ !~ /update_/ ;
|
|
|
|
my @abc = split(/\_/,$_) ;
|
|
|
|
my $event_id = @abc[-1] ; # or -2?
|
|
|
|
next if $seen_event_id{$event_id} ;
|
|
|
|
$seen_event_id{$event_id} = 1 ;
|
|
|
|
$i{fixtures_saved_values} = qq~~ ;
|
|
|
|
my @fixtures_saved_values_split = split(/\|/,$db{$table}{$event_id}{fixtures_saved_values}) ;
|
|
|
|
for my $row_nr (1 .. 100) {
|
|
|
|
my $input_vals = qq~~ ;
|
|
|
|
my $upd_field = "update_$row_nr\_$event_id" ;
|
|
my $coding_provider_field = "coding_provider_$row_nr\_$event_id" ;
|
|
my $status_field = "status_$row_nr\_$event_id" ;
|
|
|
|
my @parts = split(/\;/, $fixtures_saved_values_split[$row_nr - 1]);
|
|
|
|
# splice(@parts, -2) if @parts >= 2;
|
|
|
|
$i{fixtures_saved_values} .= ($ii{$upd_field}) ? join(";",@parts[0..9]) . ';' . qq~$ii{$coding_provider_field}~ . ';' . qq~$ii{$status_field}~ . ';' . qq~$parts[12];$parts[13]~ : qq~$fixtures_saved_values_split[$row_nr - 1]~ ;
|
|
|
|
$i{fixtures_saved_values} =~ s/;+$//g ;
|
|
|
|
$i{fixtures_saved_values} .= qq~|~ ;
|
|
|
|
$ignore{$coding_provider_field} = 1 ;
|
|
$ignore{$status_field} = 1 ;
|
|
$ignore{$upd_field} = 1 ;
|
|
|
|
}
|
|
|
|
$i{fixtures_saved_values} =~ s/\|+$//g ;
|
|
|
|
# $i{fixtures_saved_values} =~ s/([a-zA-Z0-9;])\|+\z/$1/;
|
|
|
|
$i{fixtures_saved_values} =~ s/([a-zA-Z0-9]);+(\|)/$1$2/g;
|
|
$i{fixtures_saved_values} =~ s/([a-zA-Z0-9])\|+$/$1/;
|
|
|
|
$ignore{fixtures_saved_values} = (($i{fixtures_saved_values} && $db{$table}{$event_id}{fixtures_saved_values} && $i{fixtures_saved_values} eq $db{$table}{$event_id}{fixtures_saved_values}) || (!$i{fixtures_saved_values} && !$db{$table}{$event_id}{fixtures_saved_values})) ? 1 : 0 ;
|
|
|
|
&db_min_upd($table,"id='$event_id'") ;
|
|
|
|
}
|
|
|
|
%i = %ii ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub report_ifields {
|
|
|
|
&load_search_vars ;
|
|
|
|
if ($i{client_id}) {
|
|
push @report_sql, "(client_id = '$i{client_id}')" ;
|
|
&db_min_ro('customers','id,name',"`id`='$i{client_id}'",'','') ;
|
|
push @report_results, "customer = `$db{customers}{$i{client_id}}{name}`" ;
|
|
}
|
|
|
|
if ($i{date_from} && $i{date_to}) {
|
|
push @report_sql, " (('$i{date_from} 00:00:00' <= start_date_time AND start_date_time <= '$i{date_to} 23:59:59') OR ('$i{date_from} 00:00:00' <= end_date_time AND end_date_time <= '$i{date_to} 23:59:59' AND end_date_time IS NOT NULL) OR (start_date_time <= '$i{date_from} 00:00:00' AND '$i{date_to} 23:59:59' <= end_date_time AND end_date_time IS NOT NULL)) " ;
|
|
our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ;
|
|
my $start_date_from = &common_min_date_as_string($i{date_from}) ;
|
|
my $start_date_to = &common_min_date_as_string($i{date_to}) ;
|
|
push @report_results, " (DATE BETWEEN '$start_date_from' AND '$start_date_to') " ;
|
|
} elsif ($i{date_from} && !$i{date_to}) {
|
|
push @report_sql, " ('$i{date_from} 00:00:00' <= start_date_time) " ;
|
|
our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ;
|
|
my $start_date_from = &common_min_date_as_string($i{date_from}) ;
|
|
push @report_results, " (DATE AFTER '$start_date_from') " ;
|
|
} elsif (!$i{date_from} && $i{date_to}) {
|
|
push @report_sql, " ('$i{date_to} 23:59:59' <= end_date_time AND end_date_time IS NOT NULL) " ;
|
|
our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ;
|
|
my $start_date_to = &common_min_date_as_string($i{date_to}) ;
|
|
push @report_results, " (DATE BEFORE '$start_date_to') " ;
|
|
}
|
|
|
|
# if ($i{date_from}) {
|
|
# push @report_sql, "(start_date_time >= '$i{date_from} 00:00:00')" ;
|
|
# my $date_from = &common_min_date_as_string($i{date_from}) ;
|
|
# push @report_results, "Start Date Is After `$date_from`" ;
|
|
# }
|
|
|
|
# if ($i{date_to}) {
|
|
# push @report_sql, "(start_date_time <= '$i{date_to} 23:59:59')" ;
|
|
# my $date_to = &common_min_date_as_string($i{date_to}) ;
|
|
# push @report_results, "Start Date Is Before `$date_to`" ;
|
|
# }
|
|
|
|
if ($i{footage_type_id}) {
|
|
# push @report_sql, "(fixtures_saved_values REGEXP ';$i{footage_type_id};[0-9a-z];[0-9a-z]+\\|' OR fixtures_saved_values REGEXP ';$i{footage_type_id};[0-9a-z];[0-9a-z]+\$')" ;
|
|
push @report_results, "Footage Type is `$footage_type{$i{footage_type_id}}`" ;
|
|
}
|
|
|
|
if ($i{service_type_id}) {
|
|
# push @report_sql, "(service_type_id = '$i{service_type_id}')" ;
|
|
push @report_results, "Service Type is `$service_types{$i{service_type_id}}`" ;
|
|
}
|
|
|
|
if ($i{coding_provider_id}) {
|
|
# push @report_sql, "(fixtures_saved_values REGEXP ';$i{coding_provider_id};[0-9a-z]+\\|' OR fixtures_saved_values REGEXP ';$i{coding_provider_id};[0-9a-z]+\$')" ;
|
|
push @report_results, "Coding Provider is `$coding_type{$i{coding_provider_id}}`" ;
|
|
}
|
|
|
|
if ($i{status_id}) {
|
|
# push @report_sql, "(fixtures_saved_values LIKE '%;$i{status_id}' OR fixtures_saved_values LIKE '%;$i{status_id}|%')" ;
|
|
push @report_results, "Coding Provider is `$fixtures_status{$i{status_id}}`" ;
|
|
}
|
|
|
|
$report_results_msg = uc join(', ',@report_results) ;
|
|
|
|
if (not $report_results_msg) {
|
|
$error = qq(ENTER AT LEAST ONE SEARCH PARAMETER) ;
|
|
&report_screen ;
|
|
} else {
|
|
$isaved = qq(SELECT WHERE $report_results_msg) ;
|
|
}
|
|
|
|
our $srch_where_sql = join(' AND ',@report_sql) ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub load_search_vars {
|
|
|
|
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub list_screen {
|
|
|
|
$print_box_content_rows .= &common_min_forms_start("$lcpage") ;
|
|
|
|
our $set_up_groups = 1 ;
|
|
|
|
&load_list_vars("$srch_where_sql") ;
|
|
|
|
$fcol = 12 ;
|
|
|
|
my $report = 1 ;
|
|
|
|
our $xlsxdir = "fixtures_report" ;
|
|
|
|
our $xlsxreportname = "Fixtures_Report" ;
|
|
|
|
my $date = &common_write_date_interval($i{date_from},$i{date_to}) ;
|
|
|
|
our $xlsx_title_heading = "Fixtures Report $date" ;
|
|
|
|
&build_table_and_or_excel(1) ;
|
|
|
|
$fnsortorder = 'asc' ;
|
|
|
|
&common_min_extra_crumb("$lcpage","Search Screen") ;
|
|
|
|
$trigger_jquery_raw .= qq~
|
|
\$("#savebutt").click(function() {
|
|
\$("#$lcpage-form").submit() ;
|
|
}) ;
|
|
~ ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub build_table_and_or_excel {
|
|
|
|
my ($report) = @_ ;
|
|
|
|
our @sql_col_display = ("nr","start_date_time","sport","age_group","team","home_team","ht_colour","away_team","coding_type","footage_type","service_type","coding_provider","status") ;
|
|
|
|
&report_xlsx_export_header("$xlsxreportname",$xlsxdir,'',$xlsx_title_heading) ;
|
|
|
|
push @sql_col_display,"update" ;
|
|
|
|
my $nr_of_cols = scalar @sql_col_display ;
|
|
|
|
my @rev_sql_col_display = reverse @sql_col_display ;
|
|
|
|
foreach (@rev_sql_col_display) { $lastchild++ ; $last_child{$_} = $lastchild ; } # &common_debug("last-child : $_ [$last_child{$_}]");
|
|
|
|
$xlsxrow-- ;
|
|
|
|
my $cali_cnt = 0 ; my $found_editable = 0 ; my @all_select_ids = () ;
|
|
|
|
$format84 -> set_align("center") ;
|
|
|
|
my $start_date_input = "$i{date_from}000000" ;
|
|
|
|
$start_date_input =~ s/-//g ;
|
|
|
|
my $end_date_input = "$i{date_to}235959" ;
|
|
|
|
$end_date_input =~ s/-//g ;
|
|
|
|
# foreach my $id (sort {$db{$table}{$a}{date_from} cmp $db{$table}{$b}{date_from}} keys %{$db{$table}}) {
|
|
foreach my $id (sort { $b <=> $a } keys %{$db{$table}}) {
|
|
|
|
my @fixtures_split = split(/\|/,$db{$table}{$id}{fixtures_saved_values}) ;
|
|
|
|
my @sport_type_ids = split(/\;/,$db{$table}{$id}{sport_type_ids}) ;
|
|
|
|
my $row_cnt = - 1;
|
|
|
|
# foreach my $row (@fixtures_split) {
|
|
foreach my $row_nr (1 .. $db{$table}{$id}{total_fixtures}) {
|
|
|
|
my @fixtures_split_2 = split(/\;/,$fixtures_split[$row_nr - 1]) ;
|
|
my $col_cnt = -2 ;
|
|
|
|
$row_cnt++ ;
|
|
|
|
next if $i{footage_type_id} && $i{footage_type_id} ne 'all' && $fixtures_split_2[8] ne $i{footage_type_id} ;
|
|
next if $i{service_type_id} && $i{service_type_id} ne 'all' && (($fixtures_split_2[9] && $fixtures_split_2[9] ne $i{service_type_id}) || (!$fixtures_split_2[9] && $db{$table}{$id}{service_type_id} ne $i{service_type_id})) ;
|
|
next if $i{coding_provider_id} && $i{coding_provider_id} ne 'all' && $fixtures_split_2[10] ne $i{coding_provider_id} ;
|
|
next if $i{status_id} && $i{status_id} ne 'all' && $fixtures_split_2[11] ne $i{status_id} ;
|
|
|
|
# last if $db{$table}{$id}{total_fixtures} eq $row_cnt ;
|
|
|
|
my $date_val = ($fixtures_split_2[0]) ? $fixtures_split_2[0] : $db{$table}{$id}{start_date_time} ;
|
|
|
|
$date_val =~ s/://g ;
|
|
$date_val =~ s/-//g ;
|
|
$date_val =~ s/ //g ;
|
|
|
|
next if ($date_val < $start_date_input && $start_date_input) || ($date_val > $end_date_input && $end_date_input) ;
|
|
|
|
$cali_cnt++ ;
|
|
|
|
$xlsxcol = 0 ;
|
|
|
|
our $default_javascript = qq~~ ;
|
|
|
|
foreach (@sql_col_display) {
|
|
|
|
# &common_debug("1. XLSX >>> $_") if !$report ;
|
|
|
|
$nr_of_cols_cnt-- ;
|
|
|
|
next unless $_ ; # blank for the buttons column
|
|
|
|
my $formatting = $format84 ;
|
|
my $val = $db{$table}{$id}{$_} ;
|
|
my $val_xlsx = 'MUSTBEBLANK' ;
|
|
my $align = qq~ class="dt-center"~ ;
|
|
my $nowrap = '' ;
|
|
|
|
# &common_debug("2. XLSX >>> val_min=$val_min") if !$report ;
|
|
|
|
my $sys_day_cnt = $cnt{$event_sys_id}{$id} ;
|
|
|
|
$col_cnt++ ;
|
|
|
|
my $field = "" ; my $default_val = $fixtures_split_2[$col_cnt] ; my $only_display_val = 0 ; my $background_color = "#424949" ; my $default_val_is_saved = ($default_val) ? 1 : 0 ;
|
|
|
|
# our %fixtures_status = (1 => 'Pending',2 => 'Booked',3 => 'Completed') ;
|
|
# our %coding_provider = (1 => 'SportVot',2 => 'iSport') ;
|
|
# our %footage_type = ("s" => "SSS","r" => "Raw") ;
|
|
# our %service_types = (1 => "Live Coding",2 => "Post Coding 12 hrs",3 => "Post Coding 24 hrs") ;
|
|
# our %coding_type = ("s" => "Standard","p" => "Premium") ;
|
|
# our @months = ("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") ;
|
|
|
|
if ($_ eq 'nr') {
|
|
$val = &common_min_get_event_quote_button($id,$table,'analytics-event-bookings') ;
|
|
$val .= qq~<span title="Event Quote : $db{$table}{$id}{event_quote_id}" data-toggle="tooltip" data-placement="top"><a href="javascript:editMinItem('$db{$table}{$id}{event_quote_id}','event-quotes');" style="color:black;"><i class="glyphicons glyphicons-paired icon-white"></i></a></span>~ if $db{$table}{$id}{event_quote_id} && $db{$table}{$id}{event_quote_id} > 0 ;
|
|
$val_xlsx = $id ;
|
|
} elsif ($_ eq "start_date_time") {
|
|
$val = ($fixtures_split_2[0]) ? &common_min_date_as_string($fixtures_split_2[0]) : &common_min_date_as_string($db{$table}{$id}{start_date_time}) ;
|
|
} elsif ($_ eq "sport") {
|
|
$val = ($fixtures_split_2[1] && $db{$table}{$id}{sport_type_ids} =~ /\b$fixtures_split_2[1]\b/) ? $db{sport_types}{$fixtures_split_2[1]}{name} : ($db{$table}{$id}{sport_type_ids} !~ /;/ && !$fixtures_split_2[1]) ? $db{sport_types}{$db{$table}{$id}{sport_type_ids}}{name} : "" ;
|
|
} elsif ($_ eq "age_group") {
|
|
$val = ucfirst $fixtures_split_2[2] ;
|
|
} elsif ($_ eq "team") {
|
|
$val = uc $fixtures_split_2[3] ;
|
|
} elsif ($_ eq "home_team") {
|
|
$val = $db{teams}{$fixtures_split_2[4]}{name} ;
|
|
} elsif ($_ eq "ht_colour") {
|
|
$val = $db{analytics_ht_colors}{$fixtures_split_2[5]}{name} ;
|
|
} elsif ($_ eq "away_team") {
|
|
$val = $db{teams}{$fixtures_split_2[6]}{name} ;
|
|
} elsif ($_ eq "coding_type") {
|
|
$val = $coding_type{$fixtures_split_2[7]} ;
|
|
} elsif ($_ eq "footage_type") {
|
|
$val = $footage_type{$fixtures_split_2[8]} ;
|
|
} elsif ($_ eq "service_type") {
|
|
$val = ($fixtures_split_2[9]) ? $service_types{$fixtures_split_2[9]} : $service_types{$db{$table}{$id}{service_type_id}} ;
|
|
} elsif ($_ eq 'coding_provider') {
|
|
$field = "coding_provider_$row_nr\_$id" ;
|
|
$opts{$field} = $opts{coding_provider_id} ;
|
|
|
|
$val = &common_min_table_select($field,$default_val,$only_display_val,$cali_cnt,$last_child{$_},$background_color,$default_val,$_) ;
|
|
$val_xlsx = $coding_provider{$default_val} ;
|
|
} elsif ($_ eq 'status') {
|
|
|
|
# if ($default_val eq '1') { #calibrating
|
|
# $background_color = "#FFA500" ; orange
|
|
# $formatting = $format89 ;
|
|
# } elsif ($default_val eq '2') { #cancelled
|
|
# $background_color = "#AD0502" ; red
|
|
# $formatting = $format90 ;
|
|
# } elsif ($default_val eq '3') { #done
|
|
# $background_color = "#2ECC71" ; greeen
|
|
# $formatting = $format88 ;
|
|
# } elsif ($default_val eq '4') {
|
|
# $background_color = "#424949" ;
|
|
# }
|
|
|
|
# rgb(81, 203, 242) blue
|
|
|
|
if ($default_val eq '1') {
|
|
$background_color = "#FFA500" ;
|
|
} elsif ($default_val eq '2') { #
|
|
$background_color = "rgb(81, 203, 242)" ;
|
|
} elsif ($default_val eq '3') {
|
|
$background_color = "#2ECC71" ;
|
|
}
|
|
$field = "status_$row_nr\_$id" ;
|
|
$opts{$field} = $opts{status_id} ;
|
|
|
|
# 1;;;open;a;7495;1;6684;s;s;s;s|2;;;u19;b;845;1;778;p;r;p;r|3;2025-06-18 06:00:00;8;u17;c;54;1;3975;s;s;s;s
|
|
$val = &common_min_table_select($field,$default_val,$only_display_val,$cali_cnt,$last_child{$_},$background_color,$default_val,$_) ;
|
|
$val_xlsx = $fixtures_status{$default_val} ;
|
|
} elsif ($_ eq 'update') {
|
|
$val = &common_min_table_checkbox("update_$row_nr\_$id") ;
|
|
chop $default_javascript if $default_javascript ;
|
|
if ($default_javascript) {
|
|
push @default_javascript_by_id, qq~"$row_nr\_$id":{$default_javascript}~ ;
|
|
push @all_update_field_ids,"#selectStatus_$row_nr\_$id,#selectCoding_provider_$row_nr\_$id" ;
|
|
}
|
|
|
|
}
|
|
|
|
$print_tbody .= qq~<td $align $nowrap>$val</td>~ if $report ;
|
|
|
|
$val_xlsx = $val if $val_xlsx eq 'MUSTBEBLANK' ;
|
|
|
|
&xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val_xlsx,$formatting) if $val_xlsx && $_ ne 'update' ;
|
|
$xlsxcol++ ;
|
|
}
|
|
|
|
$print_tbody .= qq~</tr>~ if $report ;
|
|
|
|
$xlsxrow++ ;
|
|
|
|
}
|
|
}
|
|
# \$("#itv-table tr th:nth-last-child(1)").css("width","0%") ;
|
|
# \$("#itv-table tr th:nth-last-child(1)").css("display","none") ;
|
|
|
|
my $all_select_ids_string = join(",",@all_select_ids) ;
|
|
|
|
$trigger_jquery_raw .= qq~\$("$all_select_ids_string").chosen({allow_single_deselect:true});~ ;
|
|
|
|
&common_min_table_select_jquery("#$useropts{table_id} td:nth-last-child(3),#$useropts{table_id} td:nth-last-child(2)") ;
|
|
&common_min_table_update_checkbox_col("2") ;
|
|
|
|
$worksheet{$ws}->set_column(0,0,10) ;
|
|
$worksheet{$ws}->set_column(1,11,20) ;
|
|
|
|
&report_xlsx_export_footer('L',15,$xlsxdir) ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub thead {
|
|
|
|
&common_min_thead ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub page_opts {
|
|
|
|
our $glyphicon = 'list' ;
|
|
our $lcpage = 'fixtures-report' ; $ucpage = uc $lcpage ; $ucfirstpage = ucfirst $lcpage ;
|
|
|
|
&common_page_name ;
|
|
|
|
our $table = 'analytics_event_bookings' ;
|
|
$page_title = 'Fixtures Report' ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub report_screen {
|
|
|
|
our $lcol = 3 ;
|
|
our $fcol = 5 ;
|
|
|
|
my %select = () ;
|
|
|
|
&common_min_select_opts('client_id','customers','name','','','',"events='1'") ;
|
|
|
|
$opts{client_id} =~ s/value="$i{client_id}"/value="$i{client_id}" SELECTED/g if $i{client_id} ;
|
|
|
|
my ($sql_next_day) = &common_add_delta_days(10) ;
|
|
my ($next_year,$next_month,$next_day) = split(/\-/,$sql_next_day) ;
|
|
|
|
foreach (sort {$a <=> $b} keys %coding_provider) {
|
|
$opts{coding_provider_id} .= qq~<option value="$_">$coding_provider{$_}</option>~ ;
|
|
}
|
|
$opts{coding_provider_id} =~ s/value="$i{coding_provider_id}"/value="$i{coding_provider_id}" SELECTED/g if $i{coding_provider_id} ;
|
|
|
|
foreach (keys %footage_type) {
|
|
$opts{footage_type_id} .= qq~<option value="$_">$footage_type{$_}</option>~ ;
|
|
}
|
|
$opts{footage_type_id} =~ s/value="$i{footage_type_id}"/value="$i{footage_type_id}" SELECTED/g if $i{footage_type_id} ;
|
|
|
|
foreach (keys %service_types) {
|
|
$opts{service_type_id} .= qq~<option value="$_">$service_types{$_}</option>~ ;
|
|
}
|
|
$opts{service_type_id} =~ s/value="$i{service_type_id}"/value="$i{service_type_id}" SELECTED/g if $i{service_type_id} ;
|
|
|
|
foreach (keys %fixtures_status) {
|
|
$opts{status_id} .= qq~<option value="$_">$fixtures_status{$_}</option>~ ;
|
|
}
|
|
$opts{status_id} =~ s/value="$i{status_id}"/value="$i{status_id}" SELECTED/g if $i{status_id} ;
|
|
|
|
$print_box_content_rows .= &common_min_forms_start('report') ;
|
|
|
|
$print_box_content_rows .= &common_min_form_select('client_id',$i{client_id}) ;
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_from',"$now_year-$now_mm-$now_dd") ; #unless $i{date_from} ;
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_to',"$next_year-$next_month-$next_day") ;
|
|
$print_box_content_rows .= &common_min_form_select('coding_provider_id',$i{coding_provider_id}) ;
|
|
$print_box_content_rows .= &common_min_form_select('footage_type_id',$i{footage_type_id}) ;
|
|
$print_box_content_rows .= &common_min_form_select('service_type_id',$i{service_type_id}) ;
|
|
$print_box_content_rows .= &common_min_form_select('status_id',$i{status_id}) ;
|
|
|
|
$print_box_content_rows .= &common_min_forms_end('','','report') ;
|
|
|
|
&common_min_search_screen ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub screen3 {
|
|
|
|
$custom_column_styles{coding_provider} = qq~style="width:12.5%;min-width:120px;"~ ;
|
|
$custom_column_styles{status} = qq~style="width:12.5%;min-width:120px;"~ ;
|
|
|
|
&thead;
|
|
|
|
if ($isaved) { $alert = &common_min_alert('success',"$ucpage $isaved!",'ok') ; } else { &common_min_alert_type ; }
|
|
|
|
# my $page = "$lcpage\s" ;
|
|
|
|
my $page = "analytics-event-bookings" ;
|
|
|
|
if ($s{no}) { $page = $lcpage ; }
|
|
|
|
&common_min_table('id',$page,'list') ;
|
|
|
|
our $savjqy = 1 ;
|
|
|
|
# &common_min_extra_crumb("manage-$lcpage\s","Manage $ucfirstpage\s") ;
|
|
|
|
$extra_form_fields .= qq~
|
|
<input type="hidden" name="date_from" value="$i{date_from}">
|
|
<input type="hidden" name="date_to" value="$i{date_to}">
|
|
<input type="hidden" name="coding_provider_id" value="$i{coding_provider_id}">
|
|
<input type="hidden" name="footage_type_id" value="$i{footage_type_id}">
|
|
<input type="hidden" name="service_type_id" value="$i{service_type_id}">
|
|
<input type="hidden" name="status_id" value="$i{status_id}">
|
|
~;
|
|
|
|
$print_box_content_rows .= &common_min_forms_end('','','save') ;
|
|
|
|
require _blank ;
|
|
|
|
exit ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub redirect_screen {
|
|
|
|
&common_min_alert_type ;
|
|
|
|
print <<ENDOFTEXT;
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>$useropts{title}</title>
|
|
<script src="$useropts{'bower_components'}/jquery/jquery.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
|
|
\$(document).ready(function(){ \$('#$lcpage-form').submit(); })
|
|
|
|
</script>
|
|
</body>
|
|
|
|
<form role="form" id="$lcpage-form" method="post" action="$lcpage">
|
|
<input type="hidden" name="iaction" value="report">
|
|
<input type="hidden" name="date_from" value="$i{date_from}">
|
|
<input type="hidden" name="date_to" value="$i{date_to}">
|
|
<input type="hidden" name="coding_provider_id" value="$i{coding_provider_id}">
|
|
<input type="hidden" name="footage_type_id" value="$i{footage_type_id}">
|
|
<input type="hidden" name="service_type_id" value="$i{service_type_id}">
|
|
<input type="hidden" name="status_id" value="$i{status_id}">
|
|
<input type="hidden" name="isaved" value="$success">
|
|
</form>
|
|
|
|
</html>
|
|
ENDOFTEXT
|
|
#
|
|
|
|
exit ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub load_list_vars {
|
|
|
|
my ($where) = @_ ;
|
|
|
|
&db_min_ro($table,'id,event_quote_id,fixtures_saved_values,event_completed,event_accepted,event_pending,event_cancelled,event_rejected,sport_type_ids,start_date_time,region_id,client_id,total_fixtures,service_type_id',$where,'','') ;
|
|
my %seen_region = () ; my %seen_client = () ; my $cnt_client = 0 ;
|
|
foreach (keys %{$db{$table}}) {
|
|
$seen_region{$db{$table}{$_}{region_id}} = 1 ;
|
|
$seen_client{$db{$table}{$_}{client_id}} = 1 ;
|
|
$cnt_client++ ;
|
|
}
|
|
&db_min_ro('sport_types','id,name','','','') ;
|
|
&db_min_ro('analytics_ht_colors','id,name','','','') ;
|
|
&db_min_ro('users','id,name,username',"user_type='coding_provider'",'','') ;
|
|
|
|
# my $teams_sql_where = join (" OR ", map { "region_id='$_' OR (region_id='0' AND matched_region_id ='$_')" } keys %seen_region) ;
|
|
# $teams_sql_where .= qq~ OR ~ if $cnt_client && $teams_sql_where ;
|
|
# my $teams_sql_where .= join (" OR ", map { "aisa_client_id='$_'" } keys %seen_client) ;
|
|
|
|
&db_switch_conn('sss') ;
|
|
&db_min_ro('teams','id,name',"",'','') ;
|
|
&db_switch_conn('aisa') ;
|
|
|
|
foreach (keys %{$db{users}}) {
|
|
$opts{coding_provider_id} .= qq~<option value="$_">$db{users}{$_}{name} [$db{users}{$_}{username}]</option>~ ;
|
|
}
|
|
|
|
# # our %coding_provider = (1 => 'SportVot',2 => 'iSport') ;
|
|
|
|
# foreach (keys %coding_provider) {
|
|
|
|
foreach (keys %fixtures_status) {
|
|
$opts{status_id} .= qq~<option value="$_">$fixtures_status{$_}</option>~ ;
|
|
}
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
use common ;
|
|
use report ;
|
|
use xlsxcreator ;
|
|
use today ;
|
|
|
|
1; |