sub fixed_systems_update { foreach (keys %i) { local @abc = split("_",$_) ; if (substr($_,0,14) eq 'online_status_') { $seen_event_id{$abc[-2]} = 1 ; } } local @event_ids = () ; foreach (keys %seen_event_id) { push @event_ids , "`id` = '$_'" ; } local $e_q_sql = join (" OR ",@event_ids) ; if ($sss_side) { $e_q_sql =~ s/\id/\sss_quote_nr/g ; $e_q_sql .= qq~ AND ~ if $e_q_sql ; $e_q_sql .= qq~sss_quote_nr <> '0'~ ; } &db_switch_conn('sss') ; &db_min_ro($table,'id,aisa_quote_nr,event_system_id_multiple,fixed_system_online_status,fixed_system_network_test,fixed_system_system_test,fixed_system_test_event,fixed_system_sound_test,fixed_system_overall_status,fixed_system_additional_comments',"$srch_where_sql AND `quote_accepted` = '1'",'','') ; #### $srch_wh my %sss_fields = () ; my $cnt = 0 ; foreach my $id (sort keys %{$db{$table}}) { my $upd_field = ($sss_side) ? "update_$id" : "update_$db{$table}{$id}{aisa_quote_nr}" ; my $found_upd = 0 ; foreach (keys %i) { $found_upd = 1 if $i{$_} && $_ =~ /$upd_field/ ; last if $found_upd ; } next unless $found_upd ; $sss_fields{$id}{event_system_id_multiple} = $db{$table}{$id}{event_system_id_multiple} ; $sss_fields{$id}{fixed_system_online_status} = $db{$table}{$id}{fixed_system_online_status} ; $sss_fields{$id}{fixed_system_network_test} = $db{$table}{$id}{fixed_system_network_test} ; $sss_fields{$id}{fixed_system_system_test} = $db{$table}{$id}{fixed_system_system_test} ; $sss_fields{$id}{fixed_system_test_event} = $db{$table}{$id}{fixed_system_test_event} ; $sss_fields{$id}{fixed_system_sound_test} = $db{$table}{$id}{fixed_system_sound_test} ; $sss_fields{$id}{fixed_system_overall_status} = $db{$table}{$id}{fixed_system_overall_status} ; $sss_fields{$id}{fixed_system_additional_comments} = $db{$table}{$id}{fixed_system_additional_comments} ; if ($db{$table}{$id}{aisa_quote_nr}) { $sss_event_id_AISA{$id} = $db{$table}{$id}{aisa_quote_nr} ; $AISA_event_id_sss{$db{$table}{$id}{aisa_quote_nr}} = $id ; } else { $cnt++ ; $sss_event_id_AISA{$id} = "none_$cnt" ; $AISA_event_id_sss{"none_$cnt"} = $id ; } } &db_switch_conn('aisa') ; %db = () ; &db_min_ro($table,'id,event_system_id_multiple,fixed_system_online_status,fixed_system_network_test,fixed_system_system_test,fixed_system_test_event,fixed_system_sound_test,fixed_system_overall_status,fixed_system_additional_comments,sss_quote_nr',"$e_q_sql",'','') ; foreach (keys %sss_fields) { $db{$table}{$sss_event_id_AISA{$_}}{sss_quote_nr} = $_ ; $db{$table}{$sss_event_id_AISA{$_}}{event_system_id_multiple} = ($db{$table}{$sss_event_id_AISA{$_}}{event_system_id_multiple} ) ? $db{$table}{$sss_event_id_AISA{$_}}{event_system_id_multiple} : $sss_fields{$_}{event_system_id_multiple} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_online_status} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_online_status} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_online_status} : $sss_fields{$_}{fixed_system_online_status} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_network_test} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_network_test} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_network_test} : $sss_fields{$_}{fixed_system_network_test} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_system_test} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_system_test} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_system_test} : $sss_fields{$_}{fixed_system_system_test} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_test_event} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_test_event} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_test_event} : $sss_fields{$_}{fixed_system_test_event} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_sound_test} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_sound_test} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_sound_test} : $sss_fields{$_}{fixed_system_sound_test} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_overall_status} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_overall_status} ) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_overall_status} : $sss_fields{$_}{fixed_system_overall_status} ; $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_additional_comments} = ($db{$table}{$sss_event_id_AISA{$_}}{fixed_system_additional_comments}) ? $db{$table}{$sss_event_id_AISA{$_}}{fixed_system_additional_comments} : $sss_fields{$_}{fixed_system_additional_comments} ; } &db_min_ro('event_systems','id,name',"system_type='fixed'",'','') ; my %update_event = () ; my %saved_values = () ; foreach my $event_id (keys %{$db{$table}}) { $sss_event_id_AISA{$db{$table}{$event_id}{sss_quote_nr}} = $event_id ; $AISA_event_id_sss{$event_id} = $db{$table}{$event_id}{sss_quote_nr} ; my @fixed_system_online_status = split(/\;/,$db{$table}{$event_id}{fixed_system_online_status}) ; my @fixed_system_network_test = split(/\;/,$db{$table}{$event_id}{fixed_system_network_test}) ; my @fixed_system_system_test = split(/\;/,$db{$table}{$event_id}{fixed_system_system_test}) ; my @fixed_system_test_event = split(/\;/,$db{$table}{$event_id}{fixed_system_test_event}) ; my @fixed_system_sound_test = split(/\;/,$db{$table}{$event_id}{fixed_system_sound_test}) ; my @fixed_system_overall_status = split(/\;/,$db{$table}{$event_id}{fixed_system_overall_status}) ; my @fixed_system_additional_comments = split(/\;/,$db{$table}{$event_id}{fixed_system_additional_comments}) ; my $system_cnt = 0 ; foreach my $system_id (split(/\;/,$db{$table}{$event_id}{event_system_id_multiple})) { my $system_id_2 = $system_id ; my $system_id_3 = $system_id ; $system_id_2 =~ s/f-/f/g ; $system_id_3 =~ s/f-//g ; if ($system_id_3 && $db{event_systems}{$system_id_3}{name}) { my $update_field_AISA = "update_$event_id\_$system_id_2" ; my $update_field_SSS = "update_$AISA_event_id_sss{$event_id}\_$system_id_2" ; if ($sss_side && $i{$update_field_SSS}) { $update_event{AISA_on_SSS}{$event_id} = 1 ; $update_event{SSS_on_SSS}{$AISA_event_id_sss{$event_id}} = 1 ; } elsif (!$sss_side && $i{$update_field_AISA}) { $update_event{AISA_on_AISA}{$event_id} = 1 ; $update_event{SSS_on_AISA}{$AISA_event_id_sss{$event_id}} = 1 ; } $saved_values{$event_id}{fixed_system_online_status}{$system_id_2} = $fixed_system_online_status[$system_cnt] ; $saved_values{$event_id}{fixed_system_network_test}{$system_id_2} = $fixed_system_network_test[$system_cnt] ; $saved_values{$event_id}{fixed_system_system_test}{$system_id_2} = $fixed_system_system_test[$system_cnt] ; $saved_values{$event_id}{fixed_system_test_event}{$system_id_2} = $fixed_system_test_event[$system_cnt] ; $saved_values{$event_id}{fixed_system_sound_test}{$system_id_2} = $fixed_system_sound_test[$system_cnt] ; $saved_values{$event_id}{fixed_system_overall_status}{$system_id_2} = $fixed_system_overall_status[$system_cnt] ; $saved_values{$event_id}{fixed_system_additional_comments}{$system_id_2} = $fixed_system_additional_comments[$system_cnt] ; } $system_cnt++ ; } } my %ii = () ; my %iii = %i ; foreach (keys %i) { local @a = split("_",$_) ; my $upd_field = "update_$a[-2]\_$a[-1]" ; next unless $i{$upd_field} ; my $event_id = ($sss_side) ? $sss_event_id_AISA{$a[-2]} : $a[-2] ; if (substr($_,0,14) eq 'online_status_') { $ii{$event_id}{fixed_system_online_status}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,13) eq 'network_test_') { $ii{$event_id}{fixed_system_network_test}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,12) eq 'system_test_') { $ii{$event_id}{fixed_system_system_test}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,11) eq 'test_event_') { $ii{$event_id}{fixed_system_test_event}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,11) eq 'sound_test_') { $ii{$event_id}{fixed_system_sound_test}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,15) eq 'overall_status_') { $ii{$event_id}{fixed_system_overall_status}{$a[-1]} = $i{$_} ; } elsif (substr($_,0,20) eq 'additional_comments_') { $ii{$event_id}{fixed_system_additional_comments}{$a[-1]} = $i{$_} ; } } foreach my $event_id (sort keys %ii) { next if $event_id =~ /none/ ; next if !$update_event{AISA_on_SSS}{$event_id} && !$update_event{AISA_on_AISA}{$event_id} ; %i = () ; $upd_event{$event_id} = 0 ; foreach my $col (keys %{$ii{$event_id}}) { foreach my $sys_id (split(/\;/,$db{$table}{$event_id}{event_system_id_multiple})) { my $sys_id_2 = $sys_id ; $sys_id_2 =~ s/f-/f/g ; my $upd_field = ($sss_side) ? "update_$AISA_event_id_sss{$event_id}\_$sys_id_2" : "update_$event_id\_$sys_id_2" ; $i{$col} .= ($ii{$event_id}{$col}{$sys_id_2} && $iii{$upd_field}) ? qq~$ii{$event_id}{$col}{$sys_id_2};~ : (!$iii{$upd_field}) ? qq~$saved_values{$event_id}{$col}{$sys_id_2};~ : qq~;~ ; # next unless $ii{$event_id}{$col}{$sys_id} ; next if !$ii{$event_id}{$col}{$sys_id_2} && !$db{$table}{$event_id}{$col} ; $upd_event{$event_id} = 1 ; } $ignore{$col} = ((!$i{$col} && !$db{$table}{$event_id}{$col}) || $i{$col} eq $db{$table}{$event_id}{$col}) ? 1 : 0 ; } # my $col_updates = qq~~ ; # foreach my $col (keys %{$ii{$event_id}}) { # $ignore{$col} = 1 if $i{$col} eq $db{$table}{$event_id}{$col} ; # $col_updates .= qq~`$col`='$i{$col}',~ if $i{$col} ne $db{$table}{$event_id}{$col} ; # } # chop $col_updates if $col_updates ; next unless $upd_event{$event_id} ; &db_min_upd($table,"`id`='$event_id'") ; } &db_switch_conn('sss') ; foreach my $event_id (sort keys %ii) { # next if $event_id !~ /none/ ; print "\n 1 event_id : $event_id" ; $event_id = $AISA_event_id_sss{$event_id} ; print "\n 2 event_id : $event_id , $update_event{SSS_on_SSS}{$event_id} , $update_event{SSS_on_AISA}{$event_id}" ; next if !$sss_side && $event_id =~ /none/ ; next if !$update_event{SSS_on_SSS}{$event_id} && !$update_event{SSS_on_AISA}{$event_id} ; # next unless $update_event{$event_id} ; %i = () ; $upd_event{$event_id} = 0 ; foreach my $col (keys %{$ii{$sss_event_id_AISA{$event_id}}}) { foreach my $sys_id (split(/\;/,$db{$table}{$sss_event_id_AISA{$event_id}}{event_system_id_multiple})) { my $sys_id_2 = $sys_id ; $sys_id_2 =~ s/f-/f/g ; my $upd_field = "update_$event_id\_$sys_id_2" ; $i{$col} .= ($ii{$sss_event_id_AISA{$event_id}}{$col}{$sys_id_2} && $iii{$upd_field}) ? qq~$ii{$sss_event_id_AISA{$event_id}}{$col}{$sys_id_2};~ : (!$iii{$upd_field}) ? qq~$saved_values{$sss_event_id_AISA{$event_id}}{$col}{$sys_id_2};~ : qq~;~ ; # next unless $ii{$event_id}{$col}{$sys_id} ; next if !$ii{$sss_event_id_AISA{$event_id}}{$col}{$sys_id_2} && !$db{$table}{$sss_event_id_AISA{$event_id}}{$col} ; $upd_event{$event_id} = 1 ; } $ignore{$col} = ((!$i{$col} && !$db{$table}{$sss_event_id_AISA{$event_id}}{$col}) || $i{$col} eq $db{$table}{$sss_event_id_AISA{$event_id}}{$col}) ? 1 : 0 ; } # my $col_updates = qq~~ ; # foreach my $col (keys %{$ii{$event_id}}) { # $ignore{$col} = 1 if $i{$col} eq $db{$table}{$event_id}{$col} ; # $col_updates .= qq~`$col`='$i{$col}',~ if $i{$col} ne $db{$table}{$event_id}{$col} ; # } # chop $col_updates if $col_updates ; next unless $upd_event{$event_id} ; &db_min_upd($table,"`id`='$event_id'") ; } exit ; &db_switch_conn('aisa') ; %i = %iii ; # exit ; } #------------------------------------------------------------------------------- sub fixed_systems_report_ifields { if ($i{customer_id}) { push @report_sql,"`quote_to`='$i{customer_id}'" ; &db_min_ro('customers','id,name',"`id`='$i{customer_id}'",'','') ; push @report_results,"`CLIENT` = '$db{customers}{$i{customer_id}}{name}'" ; } else { if ($is_installation_partner || $glob_custids{$userid}) { @report_sql_or = () ; foreach $_cust_id (keys %{$glob_custids{$userid}}) { push @report_sql_or, "quote_to = '$_cust_id'" } my $sql_or = join(' OR ',@report_sql_or) ; push @report_sql, "($sql_or)" if $sql_or ; } } if ($i{region_id} and $i{region_id} ne 'all') { push @report_sql,"`region_id`='$i{region_id}'" ; &db_min_ro('regions','id,name,code',"`id`='$i{region_id}'",'','') ; push @report_results,"`REGION` = '$db{regions}{$i{region_id}}{name} [$db{regions}{$i{region_id}}{code}]'" ; } else { if ($is_schools_manager || $is_operator || $glob_regids{$userid}) { @report_sql_or = () ; foreach $_reg_id (keys %{$glob_regids{$userid}}) { push @report_sql_or, "region_id = '$_reg_id'" } my $sql_or = join(' OR ',@report_sql_or) ; push @report_sql, "($sql_or)" if $sql_or ; } } if ($i{date_from} and $i{date_to}) { # check dates my $date_from_check = $i{date_from} ; $date_from_check =~ s/\-//g ; my $date_to_check = $i{date_to} ; $date_to_check =~ s/\-//g ; if ($date_from_check > $date_to_check) { $error = qq~'$i{date_from}' > '$i{date_to}'~ ; &report_screen ; } # push @report_sql, "((`date_from` >= '$i{date_from} 00:00:00' AND `date_from` <= '$i{date_to} 23:59:59') OR (`date_to` <= '$i{date_to} 23:59:59' AND `date_to` >= '$i{date_from} 00:00:00'))" ; # push @report_sql, "(('$i{date_from} 23:59:59' >= `date_from` AND '$i{date_from} 00:00:00' <= `date_to`) OR ('$i{date_to} 23:59:59' >= `date_from` AND '$i{date_to} 00:00:00' <= `date_to`))" ; # push @report_sql, "((`date_from` >= '$i{date_from} 00:00:00' AND `date_from` <= '$i{date_to} 23:59:59') OR (`date_to` >= '$i{date_from} 00:00:00' AND `date_to` <= '$i{date_to} 23:59:59'))" ; my @srch_ed_from = &common_split_sql_time($i{date_from}) ; my @srch_ed_to = &common_split_sql_time($i{date_to}) ; &common_date_array("$srch_ed_from[0]$srch_ed_from[1]$srch_ed_from[2]","$srch_ed_to[0]$srch_ed_to[1]$srch_ed_to[2]") ; @report_sql_or = () ; foreach my $_srch_date (@common_date_array) { my $srch_ccyy_mm_dd = substr($_srch_date,0,4) . '-' . substr($_srch_date,4,2) . '-' . substr($_srch_date,6,2) ; push @report_sql_or, "('$srch_ccyy_mm_dd 23:59:59' >= date_from AND '$srch_ccyy_mm_dd 00:00:00' <= date_to)" } my $sql_or = join(' OR ',@report_sql_or) ; push @report_sql, "($sql_or)" if $sql_or ; push @report_results, "(BETWEEN '$i{date_from}' AND '$i{date_to}')" ; } elsif (not $i{date_from}) { $error = qq~PLEASE ENTER A START DATE!~ ; &report_screen; } elsif (not $i{date_to}) { $error = qq~PLEASE ENTER AN END DATE!~ ; &report_screen; } if ($i{overall_status} and $i{overall_status} ne 'all') { &db_min_ro('fixed_system_status','id,status',"`id`='$i{overall_status}'",'','') ; push @report_results,"`STATUS` = '$db{fixed_system_status}{$i{overall_status}}{status}'" ; push @report_sql, "(`fixed_system_overall_status` LIKE '$i{overall_status};%' OR `fixed_system_overall_status` LIKE '%;$i{overall_status};%' OR `fixed_system_overall_status` LIKE '%;$i{overall_status}')" ; } if ($i{system_id} and $i{system_id} ne '-1') { &db_min_ro('event_systems',"id,name,description","`id`='$i{system_id}'",'','') ; push @report_sql, "(event_system_id_multiple LIKE '%;$i{system_id};%' OR event_system_id_multiple LIKE '$i{system_id};%' OR event_system_id_multiple LIKE '%;$i{system_id} OR 'event_system_id_multiple LIKE '%;f-$i{system_id};%' OR event_system_id_multiple LIKE 'f-$i{system_id};%' OR event_system_id_multiple LIKE '%;f-$i{system_id}' OR event_system_id_multiple = 'f-$i{system_id}' OR event_system_id_multiple = '$i{system_id}')" ; push @report_results, "event_systems = `$db{event_systems}{$i{system_id}}{name} [$db{event_systems}{$i{system_id}}{description}]`" if $db{event_systems}{$i{system_id}}{description} ; push @report_results, "event_systems = `$db{event_systems}{$i{system_id}}{name}`" unless $db{event_systems}{$i{system_id}}{description} ; } $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 fixed_systems_list_screen { $print_box_content_rows .= &common_min_forms_start($lcpage) ; # $fcol = 2 ; # $print_box_content_rows .= qq~
~ ; # $print_box_content_rows .= &common_min_form_input_col('customer_id',"$i{customer_id}") ; # $print_box_content_rows .= &common_min_form_input_col('region_id',"$i{region_id}") ; # $print_box_content_rows .= &common_min_form_input_col('date_from',"$i{date_from}") ; # $print_box_content_rows .= &common_min_form_input_col('date_to',"$i{date_to}") ; # $print_box_content_rows .= &common_min_form_input_col('overall_status',"$i{overall_status}") ; # $print_box_content_rows .= qq~
~ ; $fcol = 12 ; my $report = 1 ; our $xlsxdir = "fixed_systems_report" ; our $xlsxreportname = "Fixed_Systems_Report" ; my $date = &common_write_date_interval($i{date_from},$i{date_to}) ; our $xlsx_title_heading = "Fixed System Report $date" ; # &db_switch_conn('aisa') ; &common_min_select_opts('overall_status','fixed_system_status','status','',0,'','','','',"",'name') ; &common_min_select_opts('sound_test','fixed_system_sound_test','name','',0,'','','','',"",'name') ; $opts{online_status} = qq~~ ; $opts{network_test} = qq~~ ; $opts{system_test} = qq~~ ; $opts{test_event} = qq~~ ; &db_min_ro('event_systems','*',"`system_type` = 'fixed'",'','') ; &db_min_ro('regions','*','','','') ; &db_min_ro('organisations','*','','','') ; # &db_switch_conn('sss') ; # &db_min_ro($table,'aisa_quote_nr,id',"`quote_accepted` = '1' AND `aisa_quote_nr` <> '0'",'','') ; #### $srch_where_sql AND `id` = 5136 &fixedsystem_build_table_and_or_excel(1) ; $fnsortorder = 'asc' ; &common_min_extra_crumb("$lcpage","Search Screen") ; # if $glod_user_level > 2 ; if ($glod_user_level > 2 || $is_installation_partner || $is_schools_manager) { $trigger_jquery_raw .= qq~\$("#savebutt").click(function() { \$("#$lcpage-form").submit(); });~ ; } else { $trigger_jquery_raw .= qq~\$("#savebutt").css("display","none");~ ; } } #------------------------------------------------------------------------------- sub fixedsystem_build_table_and_or_excel { my ($report) = @_ ; $useropts{table_id} = "$useropts{titlc}-table" unless $useropts{table_id} ; our @sql_col_display = ("cnt","event","start_date","start_time","venue","region","system_name","online_status","network_test","system_test","test_event","sound_test","overall_status","additional_comments") ; &report_xlsx_export_header("$xlsxreportname",$xlsxdir,'',$xlsx_title_heading) ; push @sql_col_display,"update" ; 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 $event_cnt = 0 ; our $found_after_date = 0 ; # $format84->set_align('center'); # $format88->set_align('center'); # $format89->set_align('center'); # $format90->set_align('center'); # $format91->set_align('center'); my %defualt_color = () ; $defualt_color{-1} = "#F90D0D" ; $defualt_color{1} = "#51B529" ; $defualt_color{"Offline"} = "#F90D0D" ; $defualt_color{"Online"} = "#51B529" ; my %defualt_color2 = () ; $defualt_color2{1} = "#51B529" ; $defualt_color2{2} = "#F6E305" ; $defualt_color2{3} = "#F90D0D" ; my $z_index = 0 ; foreach my $id (sort {$db{$table}{$a}{date_from} cmp $db{$table}{$b}{date_from} || $a cmp $b} keys %{$db{$table}}) { next unless $id ; unless (&common_check_if_string_contains_an_integer($db{$table}{$id}{event_system_id_multiple})) { $db{$table}{$id}{event_system_id_multiple} = ";-1;" ; } my $now_date = int("$now_year$now_mm$now_dd") ; my $end_date = substr($db{$table}{$id}{date_to},0,10) ; $end_date =~ s/\-//g ; $end_date = int($end_date) ; my $is_in_future = ($now_date < $end_date) ? 1 : 0 ; my @system_name_ids = split(/\;/,$db{$table}{$id}{event_system_id_multiple}) ; my @fixed_system_online_status = split(/\;/,$db{$table}{$id}{fixed_system_online_status}) ; my @fixed_system_network_test = split(/\;/,$db{$table}{$id}{fixed_system_network_test}) ; my @fixed_system_system_test = split(/\;/,$db{$table}{$id}{fixed_system_system_test}) ; my @fixed_system_test_event = split(/\;/,$db{$table}{$id}{fixed_system_test_event}) ; my @fixed_system_sound_test = split(/\;/,$db{$table}{$id}{fixed_system_sound_test}) ; my @fixed_system_overall_status = split(/\;/,$db{$table}{$id}{fixed_system_overall_status}) ; my @fixed_system_additional_comments = split(/\;/,$db{$table}{$id}{fixed_system_additional_comments}) ; my %default_vals = () ; my $cnt_sys_ids = 0 ; foreach (@system_name_ids) { $default_vals{online_status}{$cnt_sys_ids} = $fixed_system_online_status[$cnt_sys_ids] ; $default_vals{network_test}{$cnt_sys_ids} = $fixed_system_network_test[$cnt_sys_ids] ; $default_vals{system_test}{$cnt_sys_ids} = $fixed_system_system_test[$cnt_sys_ids] ; $default_vals{test_event}{$cnt_sys_ids} = $fixed_system_test_event[$cnt_sys_ids] ; $default_vals{sound_test}{$cnt_sys_ids} = $fixed_system_sound_test[$cnt_sys_ids] ; $default_vals{overall_status}{$cnt_sys_ids} = $fixed_system_overall_status[$cnt_sys_ids] ; $default_vals{additional_comments}{$cnt_sys_ids} = $fixed_system_additional_comments[$cnt_sys_ids] ; $cnt_sys_ids++ ; } $cnt_sys_ids = -1 ; # my @table_op_ids = () ; # for (1 .. $cnt_rows) { # push @table_op_ids,$op_ids[$_ - 1] if $op_ids[$_ - 1] ; # push @table_op_ids,0 unless $op_ids[$_ - 1] ; # } my $system_count = 0 ; # foreach my $event_id (split(";",$db{$table}{$id}{event_system_id_multiple})) { foreach my $event_id (@system_name_ids) { $cnt_sys_ids++ ; my $event_id_2 = $event_id ; my $event_id_3 = $event_id ; $event_id_2 =~ s/f-/f/g ; $event_id_3 =~ s/f-//g ; next unless $event_id_3 ; next unless $db{event_systems}{$event_id_3}{system_type} eq 'fixed' ; next if $i{overall_status} ne 'all' and $i{overall_status} and $i{overall_status} ne $fixed_system_overall_status[$cnt_sys_ids] ; $event_cnt++ ; $system_count++ ; $xlsxcol = 0 ; $print_tbody .= qq~~ if $report ; our %field = () ; $field{online_status} = qq~online_status_$id\_$event_id_2~ ; $field{network_test} = qq~network_test_$id\_$event_id_2~ ; $field{system_test} = qq~system_test_$id\_$event_id_2~ ; $field{test_event} = qq~test_event_$id\_$event_id_2~ ; $field{sound_test} = qq~sound_test_$id\_$event_id_2~ ; $field{overall_status} = qq~overall_status_$id\_$event_id_2~ ; $field{additional_comments} = qq~additional_comments_$id\_$event_id_2~ ; $field{update} = qq~update_$id\_$event_id_2~ ; # $opts{$field{status_id}} = $opts{status_id} ; # $opts{$field{sport}} = $opts{sport} ; # $opts{$field{event_operations_manager}} = $opts{event_operations_manager} ; our %ucfirstfield = () ; foreach (keys %field) { $ucfirstfield{$field{$_}} = ucfirst $field{$_} ; if ($_ eq 'update') { $ucfirstfield{$field{$_}} = qq~checkbox~ . $ucfirstfield{$field{$_}} ; } elsif ($_ eq 'additional_comments') { $ucfirstfield{$field{$_}} = qq~textarea~ . $ucfirstfield{$field{$_}} ; } else { $ucfirstfield{$field{$_}} = qq~select~ . $ucfirstfield{$field{$_}} ; } } our $default_javascript = '' ; foreach (@sql_col_display) { next unless $_ ; # blank for the buttons column my $formatting = $format84 ; our $val = $db{$table}{$id}{$_} ; our $val_min = $val ; my $align = '' ; my $nowrap = '' ; my $style = '' ; my $default_val = $default_vals{$_}{$cnt_sys_ids} ; my $only_display_val = '' ; my $default_val_is_saved = 1 ; my $background_color = '' ; if ($_ eq 'online_status' || $_ eq 'network_test' || $_ eq 'system_test' || $_ eq 'test_event' || $_ eq 'sound_test' || $_ eq 'overall_status') { if ($is_in_future && $report && ($glod_user_level > 2 || $is_installation_partner || $is_schools_manager)) { $only_display_val = 0 ; $opts{$field{$_}} = $opts{$_} ; $useropts{'common'}{'css'} .= qq~.$_ { min-width:170px; } ~ ; $val_min = "Online" if $default_val eq '1' ; $val_min = "Offline" if $default_val eq '-1' ; $val_min = "None" unless $val_min ; } else { $only_display_val = 1 ; $default_val = "Online" if $default_val eq '1' ; $default_val = "Offline" if $default_val eq '-1' ; $default_val = "None" unless $default_val ; } $background_color = $defualt_color{$default_val} if $default_val ; $formatting = $format94 if $default_val eq '1' || $default_val eq 'Online' ; $formatting = $format96 if $default_val eq '-1' || $default_val eq 'Offline' ; } if ($_ eq 'cnt') { my $sort_val = sprintf("%09d",$event_cnt) ; $val = qq~$sort_val~ . $event_cnt ; # $nowrap = 'nowrap' ; # $val = $db{$table}{$id}{date_from} ; # $val =~ s/[-: ]//g; # $val = qq~$val$id~ ; # $val = qq~$val~ . &common_min_get_event_quote_button($id,$table) ; # $val .= qq~~ if $sss_side ; } elsif ($_ eq 'event') { $val = "$db{$table}{$id}{ref} [$id]" ; } elsif ($_ eq 'start_date') { $nowrap = 'nowrap' ; $val = substr($db{$table}{$id}{date_from},0,10) ; $align = qq~ class="dt-center"~ ; } elsif ($_ eq 'venue') { my @oids = split(/\,/,$db{$table}{$id}{organisation_ids}) ; foreach $_oid (@oids) { $val .= $db{organisations}{$_oid}{name} . '
' ; } $val = substr($val,0,-4) if $val ; ; } elsif ($_ eq 'region') { $val = $db{regions}{$db{$table}{$id}{region_id}}{code} ; $align = qq~ class="dt-center"~ ; } elsif ($_ eq 'system_name') { $val = '' ; $val = qq~$db{event_systems}{$event_id_3}{name}~ ; $val .= qq~ ($db{event_systems}{$event_id_3}{description})~ if $db{event_systems}{$event_id_3}{description} ; } elsif ($_ eq 'sport') { $val = '' ; foreach my $sport_id (split(",",$db{$table}{$id}{sport_type_ids})) { $db{sport_types}{$sport_id}{name} = uc $db{sport_types}{$sport_id}{name} ; $val .= qq~$db{sport_types}{$sport_id}{name}
~ ; } $val = substr($val,0,-4) if $val ; } elsif ($_ eq 'operator') { $val = '' ; $val = $db{users}{$op_ids[$system_count - 1]}{name} if $op_ids[$system_count - 1] ; } elsif ($_ eq 'start_time') { $val = substr($db{$table}{$id}{date_from},11,5) ; $align = qq~ class="dt-center"~ ; } elsif ($_ eq 'online_status') { $preferred_title{$field{$_}} = "Online Status" ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'network_test') { $preferred_title{$field{$_}} = "Test Network" ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'system_test') { $preferred_title{$field{$_}} = "System Test" ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'test_event') { $preferred_title{$field{$_}} = "Test Event" ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'sound_test') { if (!$only_display_val) { $val = "None" unless $val ; $val_min = $db{fixed_system_sound_test}{$default_val}{name} if $default_val ; $val_min = "None" unless $val_min ; } else { $val = $db{fixed_system_sound_test}{$default_val}{name} if $default_val ; $val = "None" unless $val ; $val_min = $val ; } $formatting = $format94 if $default_val eq '1' ; $formatting = $format95 if $default_val eq '2' ; $formatting = $format96 if $default_val eq '3' ; $preferred_title{$field{$_}} = "Test Sound" ; $background_color = $defualt_color2{$fixed_system_sound_test[$cnt_sys_ids]} ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'overall_status') { if (!$only_display_val) { $preferred_title{$field{$_}} = "Overall Status" ; $val_min = $db{fixed_system_status}{$default_val}{status} if $default_val ; $val_min = "None" unless $val_min ; } else { $val = $db{fixed_system_status}{$default_val}{status} if $default_val ; $val = "None" unless $val ; $val_min = $val ; } $formatting = $format94 if $fixed_system_overall_status[$cnt_sys_ids] eq '1' ; $formatting = $format95 if $fixed_system_overall_status[$cnt_sys_ids] eq '2' ; $formatting = $format96 if $fixed_system_overall_status[$cnt_sys_ids] eq '3' ; $preferred_placeholder{$field} = "Select Overall Status" ; $background_color = $defualt_color2{$fixed_system_overall_status[$cnt_sys_ids]} ; $z_index++ ; $style = qq~style="z-index:$z_index;"~ ; $val = &common_min_table_select($field{$_},$default_val,$only_display_val,$event_cnt,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'additional_comments') { if ($is_in_future && $report && ($glod_user_level > 2 || $is_installation_partner || $is_schools_manager)) { $only_display_val = 0 ; $align = qq~ class="dt-center $_ controls"~ ; $preferred_title{$field{$_}} = "Additional Comments" ; $useropts{'common'}{'css'} .= qq~.$_ { min-width:170px; } ~ ; $val_min = $default_val ; $val_min = "None" unless $val_min ; } else { $only_display_val = 1 ; $val = $default_val ; $val = "None" unless $val ; $val_min = $val ; } $val = &common_min_table_textarea($field{$_},$default_val,$only_display_val,$table_row,$last_child{$_},$background_color,$default_val_is_saved) ; } elsif ($_ eq 'update') { $align = qq~ class="dt-center"~ ; $val = &common_min_table_checkbox($field{update}) ; chop $default_javascript if $default_javascript ; if ($default_javascript) { push @default_javascript_by_id, qq~"$id\_$event_id_2":{$default_javascript}~ ; push @all_update_field_ids,"#$ucfirstfield{$field{online_status}},#$ucfirstfield{$field{network_test}},#$ucfirstfield{$field{system_test}},#$ucfirstfield{$field{test_event}},#$ucfirstfield{$field{sound_test}},#$ucfirstfield{$field{overall_status}},#$ucfirstfield{$field{additional_comments}}" ; } } if ($_ ne 'online_status' && $_ ne 'network_test' && $_ ne 'system_test' && $_ ne 'test_event' && $_ ne 'sound_test' && $_ ne 'overall_status' && $_ ne 'additional_comments') { $val_min = $val ; $val_min =~ s/\
/\;/g ; } $print_tbody .= qq~$val~ if $report ; &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val_min,$formatting) ; $xlsxcol++ ; } $print_tbody .= qq~~ if $report ; $xlsxrow++ ; } } $worksheet{$ws}->set_column(0,0,10); $worksheet{$ws}->set_column(1,1,30); $worksheet{$ws}->set_column(2,3,15); $worksheet{$ws}->set_column(4,4,45); $worksheet{$ws}->set_column(5,5,15); $worksheet{$ws}->set_column(6,6,45); $worksheet{$ws}->set_column(7,12,15); $worksheet{$ws}->set_column(13,13,45); &report_xlsx_export_footer('N',15,$xlsxdir) ; &common_min_table_update_checkbox_col(2) ; # our @sql_col_display = ("cnt","event","start_date","start_time","venue","region","system_name","online_status","network_test","system_test","test_event","sound_test","overall_status","additional_comments","update") ; &common_min_table_select_jquery("#$useropts{table_id} td:nth-last-child($last_child{overall_status}),#$useropts{table_id} td:nth-last-child($last_child{sound_test}),#$useropts{table_id} td:nth-last-child($last_child{test_event}),#$useropts{table_id} td:nth-last-child($last_child{system_test}),#$useropts{table_id} td:nth-last-child($last_child{network_test}),#$useropts{table_id} td:nth-last-child($last_child{online_status})") ; &common_min_table_select_prevent_dropdown_overlap_jquery_1("$useropts{table_id}") ; # &common_min_table_select_default_values_jquery ; # my $dropdown_chosen_ids_str = join(',',@dropdown_chosen_ids) ; $trigger_jquery_raw .= qq~ \$('th').click(function() { var filteredrows = \$("#$useropts{table_id}").dataTable()._('tr', {"filter": "applied"}); var table = \$('#$useropts{table_id}').DataTable(); let z_index = 10000 ; for (let i = 0; i < 5; i++) { \$(filteredrows[i]).find('td').each(function(index, td) { \$(td).css('z-index',z_index) ; z_index-- ; }); } }) ; ~ ; } #------------------------------------------------------------------------------- sub fixedsystem_check_for_overlapping_dates { my ($check_table,$checked_column,$date_from_input,$date_to_input,$sys_ids_input,$get_periods) = @_ ; my %seen_system_id = () ; my %checked_system_id = () ; my %system_start_date = () ; my %system_end_date = () ; my $sys_ids = "" ; if ($get_periods) { $sys_ids = $sys_ids_input ; } foreach my $id (sort keys %{$db{$table}}) { unless ($get_periods) { $sys_ids = $db{$table}{$id}{$checked_column} ; } foreach (split(";",$sys_ids)) { $system_start_date{$_}{$id} = $db{$table}{$id}{date_from} ; $system_end_date{$_}{$id} = $db{$table}{$id}{date_to} ; } } if ($date_from_input and $date_to_input and $sys_ids_input) { foreach (split(";",$sys_ids_input)) { $system_start_date{$_}{-1} = $date_from_input ; $system_end_date{$_}{-1} = $date_to_input ; } } foreach my $id (sort keys %{$db{$table}}) { unless ($get_periods) { $sys_ids = $db{$table}{$id}{$checked_column} ; } foreach my $sys_id (split(";",$sys_ids)) { next unless $sys_id ; if ($seen_system_id{$sys_id} and not $checked_system_id{$sys_id}) { $checked_system_id{$sys_id} = 1 ; foreach my $id2 (keys %{$system_start_date{$sys_id}}) { next if $id2 eq $id ; my $t1 = &common_check_if_time_is_greater($system_start_date{$sys_id}{$id2},$db{$table}{$id}{date_to}) ; ## 21<12 my $t2 = &common_check_if_time_is_greater($system_end_date{$sys_id}{$id2},$db{$table}{$id}{date_to}) ; ## 22<12 my $t3 = &common_check_if_time_is_greater($system_start_date{$sys_id}{$id2},$db{$table}{$id}{date_from}) ; ## 21<11 my $t4 = &common_check_if_time_is_greater($system_end_date{$sys_id}{$id2},$db{$table}{$id}{date_from}) ; ## 22<11 if (($t1 and not $t2) or ($t3 and not $t4) or (not $t3 and $t2) or ($t3 and not $t2)) { my $system_name = qq~$db{$check_table}{$sys_id}{name}~ ; $system_name .= qq~ ($db{$check_table}{$sys_id}{description})~ if $db{$check_table}{$sys_id}{description} ; if ($get_periods) { $overlap_dates{$sys_id}{$id2} = "$db{$table}{$id2}{date_from} - $db{$table}{$id2}{date_to}" ; } else { $trigger_jquery_raw .= qq~ noty({text:'System $system_name and cannot be used in both event $db{$table}{$id}{ref} and $db{$table}{$id2}{ref} as the times ovelap!!',layout:"center",type:"error",timeout:30000}) ; ~ ; } } } } $seen_system_id{$sys_id} = 1 ; } } } #------------------------------------------------------------------------------- sub fixed_systems_page_opts { our $glyphicon = 'list' ; our $lcpage = 'fixed-systems-report' ; &common_page_name ; our $table = 'event_quotes' ; $page_title = 'Fixed Systems Report' ; } #------------------------------------------------------------------------------- sub fixed_systems_report_screen { our $lcol = 3 ; our $fcol = 5 ; $print_box_content_rows .= &common_min_forms_start('report') ; my ($sql_next_day) = &common_add_delta_days(1) ; my ($next_year,$next_month,$next_day) = split(/\-/,$sql_next_day) ; $preferred_title{customer_id} = "Client" ; # $selected{customer_id}{5} = 'SELECTED' if $glod_user_level < 4 ; # 5 = SuperSport Schools (Pty) Ltd if ($is_installation_partner || $glob_custids{$userid}) { foreach $_cust_id (keys %{$glob_custids{$userid}}) { $filter_val{customers}{$_cust_id} = 1 ; } $filter_select_opts{customers} = 1 ; } &common_min_select_opts('customer_id','customers','name',5,'','','','','',"id,name",'name') ; if ($is_schools_manager || $is_operator || $glob_regids{$userid}) { foreach $_reg_id (keys %{$glob_regids{$userid}}) { $filter_val{regions}{$_reg_id} = 1 ; } $filter_select_opts{regions} = 1 ; } $opts{region_id} .= qq~~ ; &common_min_select_opts('region_id','regions','name','','','code','','','',"id,code,name",'name') ; $selected{overall_status}{all} = 'SELECTED' ; $opts{overall_status} .= qq~~ ; $preferred_title{overall_status} = "Status" ; &common_min_select_opts('overall_status','fixed_system_status','status','',0,'','','','',"",'name') ; $print_box_content_rows .= &common_min_form_select('customer_id','') ; $print_box_content_rows .= &common_min_form_select('region_id','') ; &common_min_select_opts('system_id','event_systems','name','','','description','','','','','name') ; $print_box_content_rows .= &common_min_form_select('system_id','') ; $print_box_content_rows .= &common_min_form_datepicker('date_from',"$next_year-$next_month-$next_day") ; #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('overall_status','') ; $print_box_content_rows .= &common_min_forms_end('','','report') ; &common_min_search_screen ; } #------------------------------------------------------------------------------- sub fixed_systems_screen3 { $custom_column_styles{online_status} = qq~style="width:9%;min-width:120px;"~ ; $custom_column_styles{network_test} = $custom_column_styles{online_status} ; $custom_column_styles{system_test} = $custom_column_styles{online_status} ; $custom_column_styles{test_event} = $custom_column_styles{online_status} ; $custom_column_styles{sound_test} = $custom_column_styles{online_status} ; $custom_column_styles{overall_status} = $custom_column_styles{online_status} ; $custom_column_styles{additional_comments} = $custom_column_styles{online_status} ; &thead; if ($isaved) { $alert = &common_min_alert('success',"$ucpage $isaved!",'ok') ; } else { &common_min_alert_type ; } # my $page = "$lcpage\s" ; my $page = "event-quotes" ; if ($s{no}) { $page = $lcpage ; } &common_min_table('id',$page,'list') ; our $savjqy = 1 ; $extra_form_fields .= qq~ ~; $print_box_content_rows .= &common_min_forms_end('','','save') ; $useropts{'common'}{'css'} .= qq~tbody tr td { font-size: 10px; } ~ ; require _blank ; exit ; } #------------------------------------------------------------------------------- 1 ;