sub calibration_load_list_vars { my ($where,$for_payments) = @_ ; our %quote_status = () ; our %calibrator_users = () ; # &db_min_ro('users','id,name,user_type',"",'','') ; # &db_min_ro('users','id,name,user_type,username',"(user_type = 'support' OR user_type = 'manager' OR user_type = 'casual_calibrator') AND name NOT LIKE 'Rory%'",'','') ; &db_min_ro('users','id,name,user_type,username',"`name` NOT LIKE 'Rory%'",'','') ; if (!$for_payments) { $opts{calibration_users} .= qq~~ ; $opts{head_operator} .= qq~~ ; foreach my $_uid (sort {$db{users}{$a}{name} cmp $db{users}{$b}{name}} keys %{$db{users}}) { next if $useropts{it}{$db{users}{$_uid}{username}} ; if ($db{users}{$_uid}{user_type} eq 'support' || $db{users}{$_uid}{user_type} eq 'manager' || $db{users}{$_uid}{user_type} eq 'casual_calibrator') { $calibrator_users{$_uid} = $db{users}{$_uid}{name} ; $opts{calibration_users} .= qq~~ ; } if ($db{users}{$_uid}{user_type} eq 'casual_c') { $opts{head_operator} .= qq~~ ; } } } &db_min_ro('event_systems','*',"system_type = 'mobile'",'','') ; my @event_quote_ids = () ; # &db_min_ro($table,"id,ref,organisation_ids,quote_accepted,event_system_id_multiple,region_id,sport_type_ids,operator_ids,date_from,date_to,if(date_from < '$now_year-$now_mm-$now_dd 00:00:00',0,1) AS 'after_start_date',event_system_calibration_ids,event_system_calibration_status","$where AND `quote_accepted` = '1'",'','') ; &db_min_ro($table,"id,ref,organisation_ids,quote_accepted,event_system_id_multiple,region_id,sport_type_ids,operator_ids,date_from,date_to,event_system_calibration_ids,event_system_calibration_status,event_system_head_operator_ids,times_from","$where AND `quote_accepted` = '1'",'','') ; my $min_id = 0 ; my $max_id = 0 ; our %event_system_calibration_ids = () ; our %event_system_calibration_status = () ; our %event_system_head_operator_id = () ; foreach my $id (keys %{$db{$table}}) { # &common_debug(">>>>>>>>> 1. [$id] $db{$table}{$id}{ref}") ; next unless $id ; my $cnt = 0 ; my @ed_from = &common_split_sql_time($db{$table}{$id}{date_from}) ; my @ed_to = &common_split_sql_time($db{$table}{$id}{date_to}) ; &common_date_array("$ed_from[0]$ed_from[1]$ed_from[2]","$ed_to[0]$ed_to[1]$ed_to[2]") ; # $sort_calibration_by_time_ref{"$ed_from[0]$ed_from[1]$ed_from[2]$ed_from[3]$ed_from[4]-$db{$table}{$id}{ref}"} = $id ; $sort_calibration_by_time_ref{"$ed_from[0]$ed_from[1]$ed_from[2]$ed_from[3]$ed_from[4]-$id"} = $id ; # my @event_sys_calibration_status = split(";",$db{$table}{$id}{event_system_calibration_status}) ; my @event_sys_calibration_status = split(/\;/,$db{$table}{$id}{event_system_calibration_status}) ; my @event_system_ids = split(/\;/,$db{$table}{$id}{event_system_id_multiple}) ; my @calibration_ids = split(/\;/,$db{$table}{$id}{event_system_calibration_ids}) ; my @head_operator_ids = split(/\;/,$db{$table}{$id}{event_system_head_operator_ids}) ; my $evntday=0; my $evntsys=0; foreach my $_cid (@calibration_ids) { $system_id = $event_system_ids[$evntsys] ; $evntsys++; next unless $system_id ; next unless $db{event_systems}{$system_id}{system_type} eq 'mobile' ; my (@calibrator_ids_per_event_day) = split(/\-/,$_cid); $evntday=0; # set the event day back to zero for each set of calibrators foreach my $_cid_pd (@calibrator_ids_per_event_day) { $evntday++; next unless $_cid_pd ;; $event_system_calibration_ids{$id}{$system_id}{$evntday} = $_cid_pd ; # &common_debug("1. >>> $event_system_calibration_ids{$id}{$system_id}{$evntday} [$id] [$system_id] [$evntday]") ; } # $evntsys++; } $evntsys=0; foreach my $_cstatus (@event_sys_calibration_status) { $system_id = $event_system_ids[$evntsys] ; $evntsys++; next unless $system_id ; next unless $db{event_systems}{$system_id}{system_type} eq 'mobile' ; my (@calibrator_status_per_event_day) = split(/\-/,$_cstatus); $evntday=0; # set the event day back to zero for each set of calibrators foreach my $_cstatus_pd (@calibrator_status_per_event_day) { $evntday++; next unless $_cstatus_pd ; $event_system_calibration_status{$id}{$system_id}{$evntday} = $_cstatus_pd ; # &common_debug("1. >>> $event_system_calibration_status{$id}{$system_id}{$evntday} [$id] [$system_id] [$evntday]") ; } # $evntsys++; } $evntsys=0; foreach my $_cstatus (@head_operator_ids) { $system_id = $event_system_ids[$evntsys] ; $evntsys++; next unless $system_id ; next unless $db{event_systems}{$system_id}{system_type} eq 'mobile' ; my (@head_operator_id_event_day) = split(/\-/,$_cstatus); $evntday=0; # set the event day back to zero for each set of calibrators foreach my $_cstatus_pd (@head_operator_id_event_day) { $evntday++; next unless $_cstatus_pd ; $event_system_head_operator_id{$id}{$system_id}{$evntday} = $_cstatus_pd ; # &common_debug("1. >>> $event_system_calibration_status{$id}{$system_id}{$evntday} [$id] [$system_id] [$evntday]") ; } # $evntsys++; } $evntsys=0; if ($for_payments) { my @calibrator_amounts_paid = split(/\;/,$db{$table}{$id}{calibrator_amounts_paid}) ; my @calibrator_dates_paid = split(/\;/,$db{$table}{$id}{calibrator_dates_paid}) ; foreach my $_cstatus (@calibrator_amounts_paid) { $system_id = $event_system_ids[$evntsys] ; $evntsys++; next unless $system_id ; next unless $db{event_systems}{$system_id}{system_type} eq 'mobile' ; my (@amounts_paid_event_day) = split(/\-/,$_cstatus); $evntday=0; # set the event day back to zero for each set of calibrators foreach my $_cstatus_pd (@amounts_paid_event_day) { $evntday++; next unless $_cstatus_pd ; $calibrator_amounts_paid_hash{$id}{$system_id}{$evntday} = $_cstatus_pd ; # &common_debug("1. >>> $event_system_calibration_status{$id}{$system_id}{$evntday} [$id] [$system_id] [$evntday]") ; } # $evntsys++; } $evntsys=0; foreach my $_cstatus (@calibrator_dates_paid) { $system_id = $event_system_ids[$evntsys] ; $evntsys++; next unless $system_id ; next unless $db{event_systems}{$system_id}{system_type} eq 'mobile' ; my (@dates_paid_event_day) = split(/\:/,$_cstatus); $evntday=0; # set the event day back to zero for each set of calibrators foreach my $_cstatus_pd (@dates_paid_event_day) { $evntday++; next unless $_cstatus_pd ; $calibrator_dates_paid_hash{$id}{$system_id}{$evntday} = $_cstatus_pd ; # &common_debug("1. >>> $event_system_calibration_status{$id}{$system_id}{$evntday} [$id] [$system_id] [$evntday]") ; } # $evntsys++; } } } # &db_min_ro('event_systems','*',"system_type = 'mobile'",'','') ; &calibration_check_for_overlapping_dates('event_systems',"event_system_id_multiple") ; foreach my $id (sort keys %{$db{$table}}) { $min_id = $id if not $min_id or $min_id > $id ; $max_id = $id if $max_id < $id ; } my $id_sql = qq~(`id` <= '$max_id' AND `id` >= '$min_id')~ ; # $id_sql = qq~ AND $id_sql~ if $where_2 or $where_3 ; # &db_min_ro('event_quotes_min','*',"$where_2$where_3$id_sql",'','') ; &db_min_ro('event_quotes_min','*',"$id_sql",'','') ; &db_min_ro('event_cost_items','id,name',"excl_from_expenses < 1",'','') ; &db_min_ro('calibration_status','id,status','','','') unless $calibration_status ; foreach (sort {$db{calibration_status}{$a}{status} cmp $db{calibration_status}{$b}{status}} keys %{$db{calibration_status}}) { $opts{calibration_status} .= qq~~ ; } &db_min_ro('sport_types','*','','','') ; &db_min_ro('regions','*','','','') ; &db_min_ro('organisations','id,name','','','') ; } #------------------------------------------------------------------------------------------ sub calibration_build_table_and_or_excel { my ($report,$for_payments) = @_ ; our @sql_col_display = ("count","event","calibration_date","day","start_date","start_time","venue","region","system","sport","operator","head_operator","calibrator","status","update") ; @sql_col_display = ("count","event","calibration_date","day","start_date","start_time","venue","region","system","sport","operator","head_operator","calibrator","status","date_payable","amount_payable","paid") if $for_payments ; &report_xlsx_export_header("$xlsxreportname",$xlsxdir,'',$xlsx_title_heading) ; $xlsxrow-- ; my $cali_cnt = 0 ; our $found_after_date = 0 ; my $found_editable = 0 ; # foreach my $id (sort {$db{$table}{$a}{date_from} cmp $db{$table}{$b}{date_from}} keys %{$db{$table}}) { foreach my $date_ref (sort keys %sort_calibration_by_time_ref) { my $id = $sort_calibration_by_time_ref{$date_ref} ; 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} = ";none;" ; } # my @system_name_ids = split(";",$db{$table}{$id}{event_system_id_multiple}) ; my @system_name_ids = split(/\;/,$db{$table}{$id}{event_system_id_multiple}) ; my @club_ids = split(/\;/,$db{$table}{$id}{club_ids}) ; my @op_ids = split(/\,/,$db{$table}{$id}{operator_ids}) ; my @start_times = split(/\;/,$db{$table}{$id}{times_from}) ; my $cnt_rows = 0 ; for (1 .. 50) { $cnt_rows = $_ if $system_name_ids[$_ - 1] or $club_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_sys_id (split(";",$db{$table}{$id}{event_system_id_multiple})) { # foreach my $event_sys_id (sort { $a <=> $b } @system_name_ids) { foreach my $event_sys_id (@system_name_ids) { $system_count++ ; next unless $event_sys_id ; next unless $db{event_systems}{$event_sys_id}{system_type} eq 'mobile' ; # &common_debug(">>>>>>>>> 2. $system_count [$id] $db{$table}{$id}{ref} [$db{event_systems}{$event_sys_id}{system_type}]") ; # $event_cnt++ ; # foreach my $cal_date (sort {$day_of_week{$a} cmp $day_of_week{$b}} keys %day_of_week) { foreach my $cal_date (sort keys %day_of_week) { my $srch_date_from_comp = $i{date_from} ; $srch_date_from_comp =~ s/\-//g ; my $srch_date_to_comp = $i{date_to} ; $srch_date_to_comp =~ s/\-//g ; my $date_from_comp = substr($db{$table}{$id}{date_from},0,10) ; $date_from_comp =~ s/\-//g ; my $date_to_comp = substr($db{$table}{$id}{date_to},0,10) ; $date_to_comp =~ s/\-//g ; my $cal_date_comp = $cal_date ; # $cal_date_comp =~ s/\-//g ; $cal_date = substr($cal_date,0,4) . '-' . substr($cal_date,4,2) . '-' . substr($cal_date,6,2) ; my $date_from = substr($db{$table}{$id}{date_from},0,10) ; # &common_debug("[$cnt{$event_sys_id}{$id}] : $event_sys_id [$id] $cal_date") ; # &common_debug("1. DATE >>> $cal_date_comp < $date_from_comp") if !$report ; next if $cal_date_comp < $date_from_comp ; # &common_debug("2. DATE >>> $cal_date_comp > $date_to_comp") if !$report ; next if $cal_date_comp > $date_to_comp ; $cnt{$event_sys_id}{$id}++ ; ## WHY HERE??????????????? next if $for_payments && ($db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$cnt{$event_sys_id}{$id}}}{user_type} ne 'casual_calibrator' || $db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$cnt{$event_sys_id}{$id}}}{status} ne 'Done' || ($i{paid_status} eq 'paid' && !$calibrator_amounts_paid_hash{$id}{$system_id}{$evntday}) || ($i{paid_status} eq 'outstanding' && $calibrator_amounts_paid_hash{$id}{$system_id}{$evntday})) ; # &common_debug("3. DATE >>> $cal_date_comp > $srch_date_to_comp") if !$report ; next if $cal_date_comp > $srch_date_to_comp ; # &common_debug("4. DATE >>> $cal_date_comp < $srch_date_from_comp") if !$report ; next if $cal_date_comp < $srch_date_from_comp ; # &common_debug(">>>>>>>>> 3. $system_count [$id] $db{$table}{$id}{ref} [$db{event_systems}{$event_sys_id}{system_type}]") ; # &common_debug("[$cnt{$event_sys_id}{$id}] : $event_sys_id [$id] $cal_date [$cal_date_comp > $srch_date_to_comp]") ; $cali_cnt++; $xlsxcol = 0 ; $print_tbody .= qq~~ if $report ; foreach (@sql_col_display) { # &common_debug("1. XLSX >>> $_") if !$report ; next unless $_ ; # blank for the buttons column my $formatting = $format84 ; my $val = $db{$table}{$id}{$_} ; my $val_min = $val ; 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} ; if ($_ eq 'count') { # $val = $event_cnt ; $val = $cali_cnt ; } elsif ($_ eq 'event') { $val = "$db{$table}{$id}{ref} ($id)" ; } elsif ($_ eq 'calibration_date') { # $val = "$cal_date [$day_of_week{$cal_date}]" ; $val = "$cal_date" ; } elsif ($_ eq 'day') { $val = "$sys_day_cnt" ; } elsif ($_ eq 'start_date') { $val = $date_from ; } 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} ; } elsif ($_ eq 'system') { $val = '' ; $val = qq~$db{event_systems}{$event_sys_id}{name}~ ; $val .= qq~ ($db{event_systems}{$event_sys_id}{description})~ if $db{event_systems}{$event_sys_id}{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}{$table_op_ids[$system_count - 1]}{name} if $table_op_ids[$system_count - 1] ; $val = $db{users}{$op_ids[$system_count - 1]}{name} if $op_ids[$system_count - 1] ; # $formatting = $format92 if $event_cnt == 2 ; $formatting = $format92 if $cali_cnt == 2 ; } elsif ($_ eq 'start_time') { if ($sys_day_cnt == 1 or ($sys_day_cnt > 1 and not $start_times[$sys_day_cnt-2])) { $val = substr($db{$table}{$id}{date_from},11,5) ; } else { $val = substr($start_times[$sys_day_cnt-2],0,5) ; } } elsif ($_ eq 'head_operator') { if ($report && !$for_payments) { # if ($db{$table}{$id}{after_start_date} and $event_sys_id ne "-1") { # &common_debug("=== $cal_date_comp >= $now_ccyymmdd && $event_sys_id ne -1") ; my $field = "head_operator_$id\_$event_sys_id\_$sys_day_cnt" ; if ($cal_date_comp >= $now_ccyymmdd && $event_sys_id ne "-1") { $found_after_date = 1 ; $preferred_title{$field} = "Head Operator" ; $opts{$field} = $opts{head_operator} ; $allow_deselect{$field} = 1 ; $val = &common_min_form_select_col($field,'') ; # &common_debug("2. >>> $event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt} [$id] [$event_sys_id] [$sys_day_cnt] [$field]") ; if ($event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt}) { $trigger_jquery_raw .= qq~ \$("#selectHead_operator_$id\_$event_sys_id\_$sys_day_cnt").val("$event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt}") ; \$("#selectHead_operator_$id\_$event_sys_id\_$sys_day_cnt").trigger("chosen:updated") ; \$("#itv-table tr:eq($cali_cnt) td:nth-last-child(4)").css("background-color","#424949") ; ~ ; } $trigger_jquery_raw .= qq~\$("#selectHead_operator_$id\_$event_sys_id\_$sys_day_cnt\_chosen").css("width","100%") ;~ ; # $val_min = $db{users}{$db{event_systems}{$event_sys_id}{calibrator_id}}{name} ; $val_min = $db{users}{$event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; } else { $val = $db{users}{$event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val = "None" if $event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt} eq 'none' ; # # $val = "$db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} [$sys_day_cnt]" ; # $readonly{$field} = 'READONLY' ; # $val = qq~
~ . &common_min_form_input_col($field,$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}) . qq~
~ ; # $val .= $db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val_min = $val ; } # $val = "None" unless $val ; # $val_min = "None" unless $val_min ; } else { # $val = $db{users}{$db{event_systems}{$id}{calibrator_id}}{name} ; $val = $db{users}{$event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val = "None" if $event_system_head_operator_id{$id}{$event_sys_id}{$sys_day_cnt} eq 'none' ; # $val = "None" unless $val ; $val_min = $val ; } $formatting = $format91 ; } elsif ($_ eq 'calibrator') { if ($report && !$for_payments) { # if ($db{$table}{$id}{after_start_date} and $event_sys_id ne "-1") { # &common_debug("=== $cal_date_comp >= $now_ccyymmdd && $event_sys_id ne -1") ; my $field = "calibrator_id_$id\_$event_sys_id\_$sys_day_cnt" ; if ($cal_date_comp >= $now_ccyymmdd && $event_sys_id ne "none") { $found_after_date = 1 ; $preferred_title{$field} = "Calibrator" ; $opts{$field} = $opts{calibration_users} ; $allow_deselect{$field} = 1 ; $val = &common_min_form_select_col($field,'') ; # &common_debug("2. >>> $event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt} [$id] [$event_sys_id] [$sys_day_cnt] [$field]") ; if ($event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}) { $trigger_jquery_raw .= qq~ \$("#selectCalibrator_id_$id\_$event_sys_id\_$sys_day_cnt").val("$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}") ; \$("#selectCalibrator_id_$id\_$event_sys_id\_$sys_day_cnt").trigger("chosen:updated") ; \$("#itv-table tr:eq($cali_cnt) td:nth-last-child(3)").css("background-color","#424949") ; ~ ; } $trigger_jquery_raw .= qq~\$("#selectCalibrator_id_$id\_$event_sys_id\_$sys_day_cnt\_chosen").css("width","100%") ;~ ; # $val_min = $db{users}{$db{event_systems}{$event_sys_id}{calibrator_id}}{name} ; $val_min = $db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; } else { $val = $db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val = "None" if $event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt} eq 'none' ; # # $val = "$db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} [$sys_day_cnt]" ; # $readonly{$field} = 'READONLY' ; # $val = qq~
~ . &common_min_form_input_col($field,$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}) . qq~
~ ; # $val .= $db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val_min = $val ; } # $val = "None" unless $val ; # $val_min = "None" unless $val_min ; } else { # $val = $db{users}{$db{event_systems}{$id}{calibrator_id}}{name} ; $val = $db{users}{$event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt}}{name} ; $val = "None" if $event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt} eq 'none' ; # $val = "None" unless $val ; $val_min = $val ; } $formatting = $format91 ; } elsif ($_ eq 'status') { if ($report && !$for_payments) { # if ($db{$table}{$id}{after_start_date} and $event_sys_id ne "-1") { my $field = "calibration_status_$id\_$event_sys_id\_$sys_day_cnt" ; if ($cal_date_comp >= $now_ccyymmdd && $event_sys_id ne "none") { $opts{$field} = $opts{calibration_status} ; $preferred_title{$field} = "Calibration Status" ; $allow_deselect{$field} = 1; $val = &common_min_form_select_col($field,'') ; # &common_debug("STATUS >>> $event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} [$id] [$event_sys_id] [$sys_day_cnt] [$field]") ; if ($event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}) { $trigger_jquery_raw .= qq~\$("#selectCalibration_status_$id\_$event_sys_id\_$sys_day_cnt").val("$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}") ;~ ; if ($event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} eq '1') { #calibrating $trigger_jquery_raw .= qq~\$("#itv-table tr:eq($cali_cnt) td:nth-last-child(2)").css("background-color","#FFA500");~ ; } elsif ($event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} eq '2') { #cancelled $trigger_jquery_raw .= qq~\$("#itv-table tr:eq($cali_cnt) td:nth-last-child(2)").css("background-color","#AD0502");~ ; } elsif ($event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} eq '3') { #done $trigger_jquery_raw .= qq~\$("#itv-table tr:eq($cali_cnt) td:nth-last-child(2)").css("background-color","#2ECC71");~ ; #D5EDBB } elsif ($event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} eq '4') { #done $trigger_jquery_raw .= qq~\$("#itv-table tr:eq($cali_cnt) td:nth-last-child(2)").css("background-color","#424949");~ ; #D5D8DC } } else { $trigger_jquery_raw .= qq~\$("#selectCalibration_status_$id\_$event_sys_id\_$sys_day_cnt").val("4") ;~ ; } $trigger_jquery_raw .= qq~ \$("#selectCalibration_status_$id\_$event_sys_id\_$sys_day_cnt").trigger("chosen:updated") ; \$("#selectCalibration_status_$id\_$event_sys_id\_$sys_day_cnt\_chosen").css("width","100%"); ~ ; $val_min = $db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} ; } else { # $val = $db{calibration_status}{$db{event_systems}{$event_sys_id}{calibration_status}}{status} ; $val = $db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} ; $val = "None" if !$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} ; # $readonly{$field} = 'READONLY' ; # $val = qq~
~ . &common_min_form_input_col($field,$db{event_systems}{$event_sys_id}{calibration_status}) . qq~
~ ; # $val .= $db{calibration_status}{$db{event_systems}{$event_sys_id}{calibration_status}}{status} ; $val_min = $val ; } # $val = "None" unless $val ; # $val_min = "None" unless $val_min ; } else { # $val = $db{calibration_status}{$db{event_systems}{$event_sys_id}{calibration_status}}{status} ; $val = $db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} ; $val = "None" if !$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt} ; # $val = "None" unless $val ; $val_min = $val ; } # if ($db{calibration_status}{$db{event_systems}{$event_sys_id}{calibration_status}}{status} eq "Calibrating") { if ($db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} eq "Calibrating") { $formatting = $format89 ; } elsif ($db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} eq "Cancelled") { $formatting = $format90 ; } elsif ($db{calibration_status}{$event_system_calibration_status{$id}{$event_sys_id}{$sys_day_cnt}}{status} eq "Done") { $formatting = $format88 ; } else { $formatting = $format91 ; } } elsif ($_ eq 'update') { if ($report && $cal_date_comp >= $now_ccyymmdd && $event_sys_id ne "none") { $found_editable = 1 ; my $field = "update_$id\_$event_sys_id\_$sys_day_cnt" ; $val = &common_min_form_checkbox_col($field,'') ; # $val .= qq~~ ; # $trigger_jquery_raw .= qq~ \$("#selectCalibration_status_$id\_$event_sys_id\_$sys_day_cnt,#selectCalibrator_id_$id\_$event_sys_id\_$sys_day_cnt,#selectHead_operator_$id\_$event_sys_id\_$sys_day_cnt").change(function () { \$("#checkboxUpdate_$id\_$event_sys_id\_$sys_day_cnt").prop("checked",true) ; // \$("#update_history_$id\_$event_sys_id\_$sys_day_cnt").text("1") ; }) ; ~ ; } else { $val = '' ; } $formatting = $format91 ; } elsif ($_ eq 'date_payable') { my $field = "date_payable_$id\_$event_sys_id\_$sys_day_cnt" ; if ($calibrator_dates_paid_hash{$id}{$event_sys_id}{$sys_day_cnt}) { $val = $calibrator_amounts_paid_hash{$id}{$event_sys_id}{$sys_day_cnt} ; $val_min = $val ; $val = &common_min_form_input_col($field,"$calibrator_dates_paid_hash{$id}{$event_sys_id}{$sys_day_cnt}") ; } else { $val = &common_min_form_input_col($field,"$cal_date") ; $val_min = $cal_date ; } } elsif ($_ eq 'amount_payable') { my $field = "amount_payable_$id\_$event_sys_id\_$sys_day_cnt" ; if ($calibrator_amounts_paid_hash{$id}{$event_sys_id}{$sys_day_cnt}) { $val = "Paid" ; $val_min = "None" ; } else { $val = &common_min_form_input_col($field,'500.00') ; $trigger_jquery_raw .= qq~ \$("input[name='$field']").change( function () { let input = \$(this).val() ; input = parseFloat(input) ; if (!input) { input = 0 ; } \$(this).val(input.toFixed(2)) ; }) ; ~ ; $val_min = "500.00" ; } } elsif ($_ eq 'paid') { if ($calibrator_amounts_paid_hash{$id}{$event_sys_id}{$sys_day_cnt}) { $val = '' ; $val_min = "Paid" ; } else { $paid_fields .= qq~$id\_$event_sys_id\_$sys_day_cnt:$cali_cnt,~ ; my $field = "paid_$id\_$event_sys_id\_$sys_day_cnt" ; $val = &common_min_form_checkbox_col($field,'') ; } } if ($_ ne 'status' and $_ ne 'calibrator' and $_ ne 'update' and $_ ne 'date_payable' and $_ ne 'amount_payable') { $val_min = $val ; $val_min =~ s/\
/\;/g ; } $print_tbody .= qq~$val~ if $report ; # &common_debug("XLSX >>> $event_system_calibration_ids{$id}{$event_sys_id}{$sys_day_cnt} [$id] [$event_sys_id] [$sys_day_cnt] [$field]") ; &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val_min,$formatting) ; $xlsxcol++ ; } $print_tbody .= qq~~ if $report ; $xlsxrow++ ; } # next if $i{calibration_status} ne 'all' and $i{calibration_status} and $i{calibration_status} ne $db{event_systems}{$event_sys_id}{calibration_status} ; # next if $i{calibrator_id} ne 'all' and $i{calibrator_id} and $i{calibrator_id} ne $db{event_systems}{$event_sys_id}{calibrator_id} ; } } # \$("#itv-table tr th:nth-last-child(1)").css("width","0%") ; # \$("#itv-table tr th:nth-last-child(1)").css("display","none") ; if (!$found_editable && !$for_payments) { $trigger_jquery_raw .= qq~ \$("#itv-table").find("th:last").remove() ; \$("#itv-table tr").each(function() { \$(this).find("td:last").remove() ; }) ; ~ ; } $worksheet{$ws}->set_column(0,0,10); $worksheet{$ws}->set_column(1,1,30); $worksheet{$ws}->set_column(2,2,15); $worksheet{$ws}->set_column(3,3,5); $worksheet{$ws}->set_column(4,5,13); $worksheet{$ws}->set_column(6,6,30); $worksheet{$ws}->set_column(7,7,8); $worksheet{$ws}->set_column(8,10,30); $worksheet{$ws}->set_column(11,12,15); &report_xlsx_export_footer('L',15,$xlsxdir) ; } #------------------------------------------------------------------------------- sub calibration_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{$_}{none} = $date_from_input ; $system_end_date{$_}{none} = $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 ; } } } #------------------------------------------------------------------------------- 1 ;