4975 lines
195 KiB
Perl
4975 lines
195 KiB
Perl
|
|
#!/usr/bin/perl
|
||
|
|
|
||
|
|
use lib "/home/libs/modules" ;
|
||
|
|
use lib "/home/libs/html" ;
|
||
|
|
|
||
|
|
use CGI qw( :standard );
|
||
|
|
use CGI::Carp qw(fatalsToBrowser);
|
||
|
|
|
||
|
|
require cfg ;
|
||
|
|
|
||
|
|
print header; # CGI.pm method
|
||
|
|
|
||
|
|
# unless ($username eq 'handre'or $username eq 'rory') { print "<<<<<<<<<<<< MAINTENANCE IN PROGRESS >>>>>>>>>" ; exit ; }
|
||
|
|
|
||
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
use Fcntl qw(:flock);
|
||
|
|
use File::Copy;
|
||
|
|
use File::Basename;
|
||
|
|
use Date::Calc qw(:all);
|
||
|
|
use Excel::Writer::XLSX;
|
||
|
|
use LWP::Simple qw($ua get);
|
||
|
|
use JSON ;
|
||
|
|
|
||
|
|
&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 $redirtype = 'search' ;
|
||
|
|
|
||
|
|
# our $testing = 1 ;
|
||
|
|
# our $debug = 1 ;
|
||
|
|
# &common_debug("glod_user_level = $glod_user_level [$usertype]") ;
|
||
|
|
|
||
|
|
# unless ($username eq 'rory') { print ">>>> DEVELOPMENT IN PROGRESS <<<<" ; exit ; }
|
||
|
|
|
||
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
if ($is_operator && $glod_user_level == 2) { $glod_user_level = 3 ; } # upgrade operators level 2&3 to 3&4
|
||
|
|
|
||
|
|
our $nr_of_system_names_and_clubs = 15 ; our @all_select_ids = () ; our $minify_jquery = 1 ;
|
||
|
|
|
||
|
|
&db_open_ro;
|
||
|
|
$db_ignore_open_close=1;
|
||
|
|
|
||
|
|
&page_opts ;
|
||
|
|
|
||
|
|
if ($iaction eq 'filter' || $iaction eq 'search' || $iaction eq 'report'){
|
||
|
|
our $srchscr = 1 ;
|
||
|
|
our $savjqy = 0 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
#------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
our $table = 'event_quotes';
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # use File::Copy;
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # use File::Path 'make_path';
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $src_dir = "$htmlpath/uploads/uploads/7408";
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $dst_dir = "$htmlpath/uploads/uploads/test_copy";
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # return unless -d $src_dir ;
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # mkdir $dst_dir unless -d $dst_dir ;
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # opendir(my $dh, $src_dir) or die "Can't open $src_dir: $!";
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $file_counter = 0 ;
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my @files = readdir($dh);
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # foreach my $file (@files) {
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # next if $file =~ /^\.\.?$/ ;
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $src_file = "$src_dir/$file";
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # my $dst_file = "$dst_dir/$file";
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # if(-f $src_file) {
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # copy("$src_file", " $dst_file") or die "File cannot be copied." ;
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # }
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # }
|
||
|
|
|
||
|
|
# while (my $file = readdir($dh)) {
|
||
|
|
# next if $file =~ /^\.\.?$/; # Skip '.' and '..'
|
||
|
|
# last if !$file || $file_counter >= 3 ;
|
||
|
|
# my $src_file = "$src_dir/$file";
|
||
|
|
# my $dst_file = "$dst_dir/$file";
|
||
|
|
# # print "\n 21 copy : $src_file, $dst_file" ;
|
||
|
|
# # system("cp", $src_file, $dst_file) == 0 or die "Failed to copy $src_file to $dst_file: $!";
|
||
|
|
# # print "Successfully copied $src_file to $dst_file\n";
|
||
|
|
# # if (copy($src_file, $dst_file)) {
|
||
|
|
# # print "Successfully copied $src_file to $dst_file\n";
|
||
|
|
# # } else {
|
||
|
|
# # print "\nFailed to copy $src_file to $dst_file: $!";
|
||
|
|
# # }
|
||
|
|
# $file_counter++ ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # closedir($dh);
|
||
|
|
|
||
|
|
# while (1) {
|
||
|
|
# print "\n Hello World" ;
|
||
|
|
# last ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# use File::Copy;
|
||
|
|
# use File::Path 'make_path';
|
||
|
|
|
||
|
|
# my $src_dir = "$htmlpath/uploads/uploads/7408";
|
||
|
|
# my $dst_dir = "$htmlpath/uploads/uploads/test_copy";
|
||
|
|
|
||
|
|
# mkdir $dst_dir unless -d $dst_dir ;
|
||
|
|
|
||
|
|
# opendir(my $dh, $src_dir) or die "Can't open $src_dir: $!";
|
||
|
|
|
||
|
|
# my $file_count = 0 ;
|
||
|
|
|
||
|
|
# while (my $file = readdir($dh)) {
|
||
|
|
# next if $file =~ /^\.\.?$/; # Skip '.' and '..'
|
||
|
|
# $file_count++;
|
||
|
|
# last if $file_count == 3 ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# print "\nfile $file_count" ;
|
||
|
|
# while (my $file = readdir($dh)) {
|
||
|
|
# my $src_file = "$src_dir/$file";
|
||
|
|
# my $dst_file = "$dst_dir/$file";
|
||
|
|
# # copy($src_dir, $dst_dir) or warn "Failed to copy $src_file to $dst_file: $!";
|
||
|
|
# last ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# closedir($dh);
|
||
|
|
|
||
|
|
# for (7645 .. 20000) {
|
||
|
|
# my $src_dir = "$htmlpath/uploads/uploads/$_";
|
||
|
|
# if (-d $src_dir) {
|
||
|
|
# rmdir $src_dir ;
|
||
|
|
# }
|
||
|
|
# }
|
||
|
|
|
||
|
|
if ($iaction eq 'add') {
|
||
|
|
&add_screen;
|
||
|
|
&common_min_screen1;
|
||
|
|
} elsif ($iaction eq 'edit') {
|
||
|
|
&common_min_load_params ;
|
||
|
|
&edit_screen ;
|
||
|
|
&common_min_screen1 ;
|
||
|
|
} elsif ($iaction eq 'save') {
|
||
|
|
&common_min_load_params ;
|
||
|
|
&insert ;
|
||
|
|
# &log_changes ;
|
||
|
|
&edit_or_list ;
|
||
|
|
} elsif ($iaction eq 'update') {
|
||
|
|
&common_min_load_params ;
|
||
|
|
&update ;
|
||
|
|
&log_changes ;
|
||
|
|
&edit_or_list ;
|
||
|
|
} elsif ($iaction eq 'copy') {
|
||
|
|
&common_min_load_params ;
|
||
|
|
© ;
|
||
|
|
&edit_screen ;
|
||
|
|
&common_min_screen1;
|
||
|
|
} elsif ($iaction eq 'delete') {
|
||
|
|
&common_min_load_params ;
|
||
|
|
&delete ;
|
||
|
|
&common_min_screen2;
|
||
|
|
}
|
||
|
|
|
||
|
|
&common_min_action;
|
||
|
|
$db_ignore_open_close=0 ;
|
||
|
|
&db_close_conn ;
|
||
|
|
exit;
|
||
|
|
|
||
|
|
#------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub edit_or_list {
|
||
|
|
|
||
|
|
exit if $testing && substr($username,0,4) eq 'rory' ;
|
||
|
|
|
||
|
|
# if ($i{saveandexit} eq 'yes') {
|
||
|
|
# &list_screen ;
|
||
|
|
# &common_min_screen3;
|
||
|
|
# }
|
||
|
|
# else
|
||
|
|
# {
|
||
|
|
&edit_screen ;
|
||
|
|
&common_min_screen1;
|
||
|
|
# }
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub insert {
|
||
|
|
|
||
|
|
# &db_min_ro('users',"id,1 AS 'schools_manager'","`user_type`='schools_manager' AND `id`='$userid'",'','') ;
|
||
|
|
|
||
|
|
# $i{quote_created} = 1 if $is_schools_manager ;
|
||
|
|
# $i{quote_created} = 1 if $glod_user_level < 4 ;
|
||
|
|
$i{quote_created} = 1 if $glod_user_level < 3 ;
|
||
|
|
$i{quote_pending} = 1 unless $i{quote_accepted} || $i{quote_cancelled} || $i{quote_completed} || $i{quote_rejected} ;
|
||
|
|
|
||
|
|
&set_default_i_vals;
|
||
|
|
|
||
|
|
my $quote_cancelled = $i{quote_cancelled} ; my $quote_accepted = $i{quote_accepted} ; my $quote_rejected = $i{quote_rejected} ;
|
||
|
|
|
||
|
|
# $i{operator_ids} = '' ;
|
||
|
|
&build_event_details_fields($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
&process_multi_select($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
# &process_times_from ;
|
||
|
|
&add_db_fields ;
|
||
|
|
|
||
|
|
$i{last_update} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ;
|
||
|
|
$i{datetime} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ;
|
||
|
|
$i{user_id} = $userid ;
|
||
|
|
|
||
|
|
# &creat_db_cols;
|
||
|
|
|
||
|
|
$i{id} = &db_min_get_max($table,'id') ;
|
||
|
|
|
||
|
|
my $attachmentdir = $htmlpath . "/uploads/uploads/$i{id}" ;
|
||
|
|
mkdir $attachmentdir if not -d $attachmentdir and ($i{iattachupload_1} or $i{iattachupload_2} or $i{iattachupload_3}) ;
|
||
|
|
&common_upload_files("uploads/$i{id}") ;
|
||
|
|
&process_upload_ifields;
|
||
|
|
|
||
|
|
&build_working_fields($i{id},$quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
|
||
|
|
$i{quote_nr} = $i{id} ;
|
||
|
|
my $quote_nr = $i{quote_nr} ;
|
||
|
|
|
||
|
|
$ignore{selected_event_length} = 1 ;
|
||
|
|
# $i{event_length} = $i{selected_event_length} ;
|
||
|
|
|
||
|
|
$i{custom_set} = 0 unless $i{custom_set} ;
|
||
|
|
|
||
|
|
foreach (keys %i) {
|
||
|
|
next if $ignore{$_} ;
|
||
|
|
&common_debug(" $_ : $i{$_}") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
&db_min_insert($table) ;
|
||
|
|
|
||
|
|
&build_event_quotes_min_fields($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
$i{quote_nr} = $quote_nr ;
|
||
|
|
|
||
|
|
# our $line = qq~$now_year$now_year$now_mm$now_dd$now_hour$now_min$now_sec|$now_year-$now_mm-$now_dd $now_hour:$now_min:$now_sec|event_quote_id='$i{id}'|user_id=$userid|action='Add'|~ ;
|
||
|
|
# foreach (keys %i) {
|
||
|
|
# next if $hidden{$_} == 1 || $ignore{$_} ;
|
||
|
|
|
||
|
|
# $line .= qq~$_='$i{$_}',~ ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
&db_min_insert('event_quotes_min') ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub update {
|
||
|
|
|
||
|
|
unless ($i{id}) {
|
||
|
|
$error = qq(NO ID) ;
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our $quote_accepted = $i{quote_accepted} ;
|
||
|
|
our $status = &common_status_txt($i{quote_completed},$i{quote_accepted},$i{quote_pending},$i{quote_cancelled},$i{quote_rejected}) ;
|
||
|
|
|
||
|
|
&set_default_i_vals ;
|
||
|
|
|
||
|
|
&db_min_ro($table,"id,quote_accepted,grand_total,operator_ids,quote_cancelled,quote_rejected","`id`='$i{id}'",'','') ;
|
||
|
|
|
||
|
|
my $quote_cancelled = $db{$table}{$i{id}}{quote_cancelled} ;
|
||
|
|
my $quote_accepted = $db{$table}{$i{id}}{quote_accepted} ;
|
||
|
|
my $quote_rejected = $db{$table}{$i{id}}{quote_rejected} ;
|
||
|
|
|
||
|
|
&build_event_details_fields($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
&process_multi_select($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
&edit_db_fields ;
|
||
|
|
|
||
|
|
# &creat_db_cols ;
|
||
|
|
|
||
|
|
$i{last_update} = "$now_ccyy_mm_dd $now_hour:$now_min:$now_sec" ;
|
||
|
|
|
||
|
|
my $attachmentdir = $htmlpath . "/uploads/uploads/$i{id}" ;
|
||
|
|
mkdir $attachmentdir if not -d $attachmentdir and ($i{iattachupload_1} or $i{iattachupload_2} or $i{iattachupload_3}) ;
|
||
|
|
|
||
|
|
&common_upload_files("uploads/$i{id}") ;
|
||
|
|
&process_upload_ifields ;
|
||
|
|
# &process_times_from ;
|
||
|
|
|
||
|
|
our $hidden_expenses_amounts_exist = 0 ;
|
||
|
|
|
||
|
|
&build_working_fields($i{id},$quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
|
||
|
|
$i{quote_nr} = $i{id} ;
|
||
|
|
my $quote_nr = $i{quote_nr} ;
|
||
|
|
|
||
|
|
&db_min_ro($table,"*","`id`='$i{id}'",'','') ;
|
||
|
|
|
||
|
|
our $line = qq~$now_year$now_year$now_mm$now_dd$now_hour$now_min$now_sec|$now_year-$now_mm-$now_dd $now_hour:$now_min:$now_sec|event_quote_id='$i{id}'|user_id=$userid|changed_from|~ ;
|
||
|
|
|
||
|
|
my %col_to_be_updated = () ; my %ignore_for_now = () ;
|
||
|
|
|
||
|
|
foreach (keys %i) {
|
||
|
|
$col_to_be_updated{$_} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $col (keys %{$db{$table}{$i{id}}}) {
|
||
|
|
next if $ignore{$col} or $hidden{$col} == 1 or substr($col,0,3) eq 'new' or not $col_to_be_updated{$col} ;
|
||
|
|
if (($i{$col} or $db{$table}{$i{id}}{$col}) and $db{$table}{$i{id}}{$col} ne $i{$col}) {
|
||
|
|
# $line .= qq~$col='$i{$col}',~ ;
|
||
|
|
$line .= qq~$col='$db{$table}{$i{id}}{$col}',~ ;
|
||
|
|
} elsif ((not $i{$col} and not $db{$table}{$i{id}}{$col}) or (($i{$col} or $db{$table}{$i{id}}{$col}) and $db{$table}{$i{id}}{$col} eq $i{$col})) {
|
||
|
|
$ignore{$col} = 1 ; $ignore_for_now{$col} = 1 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$ignore{selected_event_length} = 1 ;
|
||
|
|
# $i{event_length} = $i{selected_event_length} ;
|
||
|
|
|
||
|
|
$i{custom_set} = 0 unless $i{custom_set} ;
|
||
|
|
|
||
|
|
&db_min_upd($table,"id='$i{id}'") ;
|
||
|
|
|
||
|
|
&build_event_quotes_min_fields($quote_accepted,$quote_rejected,$quote_cancelled) ;
|
||
|
|
$i{quote_nr} = $quote_nr ;
|
||
|
|
|
||
|
|
&db_min_ro('event_quotes_min','*',"id='$i{id}'",'','') ;
|
||
|
|
|
||
|
|
foreach (keys %i) {
|
||
|
|
$col_to_be_updated{$_} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $col (keys %{$db{event_quotes_min}{$i{id}}}) {
|
||
|
|
next if $ignore{$col} or $hidden{$col} == 1 or substr($col,0,3) eq 'new' or not $col_to_be_updated{$col} ;
|
||
|
|
if (($i{$col} or $db{event_quotes_min}{$i{id}}{$col}) and $db{event_quotes_min}{$i{id}}{$col} ne $i{$col}) {
|
||
|
|
# $line .= qq~$col='$i{$col}',~ ;
|
||
|
|
$line .= qq~$col='$db{event_quotes_min}{$i{id}}{$col}',~ ;
|
||
|
|
} elsif ((not $i{$col} and not $db{event_quotes_min}{$i{id}}{$col}) or (($i{$col} or $db{event_quotes_min}{$i{id}}{$col}) and $db{event_quotes_min}{$i{id}}{$col} eq $i{$col})) {
|
||
|
|
$ignore{$col} = 1 ; $ignore_for_now{$col} = 1 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
&db_min_upd('event_quotes_min',"id='$i{id}'") ;
|
||
|
|
|
||
|
|
foreach (keys %ignore_for_now) {
|
||
|
|
$ignore{$_} = '' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub log_changes {
|
||
|
|
|
||
|
|
chop $line if $line ;
|
||
|
|
|
||
|
|
&common_log_changes("events/changes.dat",$line) if $line ;
|
||
|
|
|
||
|
|
if ($db{$table}{$i{id}}{quote_accepted} && $line) { # Can you change it that she only gets emails where an Accepted Event been edited by school manager and when they upload docs afterwards, She just need notification if there been changes to event she or anyone else already accepted it
|
||
|
|
# if (!$quote_accepted || $is_schools_manager || $glod_user_level < 4) {
|
||
|
|
if (!$quote_accepted || $is_schools_manager || $glod_user_level < 3) {
|
||
|
|
&send_email_to_manager($i{id},$status,$line) ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub process_times_from {
|
||
|
|
|
||
|
|
# for (1 .. 6) {
|
||
|
|
# $ignore{"time_from_$_"} = 1 ;
|
||
|
|
# $ignore{"time_to_$_"} = 1 ;
|
||
|
|
# $i{times_from} .= qq~$i{"time_from_$_"};~ if $_ > 1 ;
|
||
|
|
# $i{times_to} .= qq~$i{"time_to_$_"};~ if $_ < 6 ;
|
||
|
|
# }
|
||
|
|
# chop $i{times_from} if $i{times_from} ;
|
||
|
|
# chop $i{times_to} if $i{times_to} ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub send_email_to_manager {
|
||
|
|
|
||
|
|
my ($event_id,$status,$msg) = @_ ;
|
||
|
|
|
||
|
|
return if $username eq 'marizen' ; # don't send to marizen if she did the change.
|
||
|
|
|
||
|
|
my $usernametemp = (substr($username,0,4) eq 'rory') ? 'rory' : $username ;
|
||
|
|
|
||
|
|
my $attachpath = "$pdfpath/event_details" ; $attachfile = "Event_Details-$event_id.pdf" ;
|
||
|
|
|
||
|
|
my $subj = 'Event [' . $event_id . ']' ;
|
||
|
|
$subj .= " $status" if $status ;
|
||
|
|
$subj .= " by $username" if $username ;
|
||
|
|
$subj .= " : $i{ref}" if $i{ref} ;
|
||
|
|
|
||
|
|
my $event_details_pdf = get("$useropts{domain}$useropts{'scripts'}/pdf/event_details_pdf.pl?$event_id&&") ;
|
||
|
|
my $to = ($useropts{it}{$usernametemp}) ? "$usernametemp\@kre8it.co.za" : $email_events{1} ;
|
||
|
|
$got_mail_add{$to} = 1 ;
|
||
|
|
my $cc = ($is_schools_manager) ? "$useremail" : (!$got_mail_add{$useremail}) ? "$useremail" : '' ;
|
||
|
|
# my $bcc = ($useropts{it}{$usernametemp}) ? '' : 'rory@kre8it.co.za' ;
|
||
|
|
my $bcc = '' ;
|
||
|
|
&common_send_smtp_mail('',$to,$cc,$bcc,"$subj","<a href=$useropts{domain}$useropts{scripts}/pdf/event_details_pdf.pl?$event_id&&>Click here to view event details</a><br><br>$msg",'','html','',$attachpath,$attachfile,'',0,0) ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_event_details_fields {
|
||
|
|
|
||
|
|
my ($quote_accepted,$quote_rejected,$quote_cancelled) = @_ ;
|
||
|
|
|
||
|
|
# $i{operator_ids} .= qq~;\~;~ ;
|
||
|
|
my $cnt_last_row = 0 ;
|
||
|
|
for (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
$cnt_last_row = $_ if $i{"system_name_$_"} or $i{"club_name_$_"} ;
|
||
|
|
|
||
|
|
my $system_name = "system_name_$_" ;
|
||
|
|
my $club_name = "club_name_$_" ;
|
||
|
|
my $op_name = "operator_id_calibration_$_" ;
|
||
|
|
$ignore{$system_name} = 1 ;
|
||
|
|
$ignore{$club_name} = 1 ;
|
||
|
|
$ignore{$op_name} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
return if ($quote_accepted || $quote_rejected || $quote_cancelled) && $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
unless ($cnt_last_row) {
|
||
|
|
$i{club_ids} = qq~~ ;
|
||
|
|
$i{event_system_id_multiple} = qq~~ ;
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
# return if $is_schools_manager ;
|
||
|
|
# return if $glod_user_level < 4 ;
|
||
|
|
# return if $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
$i{operator_ids} = '' ;
|
||
|
|
|
||
|
|
for (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
|
||
|
|
my $system_name = "system_name_$_" ;
|
||
|
|
my $club_name = "club_name_$_" ;
|
||
|
|
my $op_name = "operator_id_calibration_$_" ;
|
||
|
|
|
||
|
|
$i{club_ids} .= qq~$i{$club_name};~ ;
|
||
|
|
$i{event_system_id_multiple} .= qq~$i{$system_name};~ ;
|
||
|
|
$i{operator_ids} .= qq~$i{$op_name},~ if $_ <= $cnt_last_row ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$ignore{club_name} = 1 ;
|
||
|
|
chop $i{club_ids} if $i{club_ids} ; chop $i{event_system_id_multiple} if $i{event_system_id_multiple} ;
|
||
|
|
# chop $i{operator_ids} if $i{operator_ids} ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub process_daily_details_from_the_events_datails_tab {
|
||
|
|
|
||
|
|
my ($id) = @_ ;
|
||
|
|
|
||
|
|
my $final_day = 0 ;
|
||
|
|
for (1 .. 20) {
|
||
|
|
$final_day = $_ if $i{"day_$_"} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
for my $event_row (1 .. 15) {
|
||
|
|
$ignore{"clicked_button_$event_row"} = 1 ;
|
||
|
|
for my $event_day (1 .. 20) {
|
||
|
|
$ignore{"custom_operator_$event_row\_$event_day"} = 1 ;
|
||
|
|
if ($i{"clicked_button_$event_row"}) {
|
||
|
|
$i{"custom_operator_$event_row\_$event_day"} = "" unless $i{"day_$event_day"} ;
|
||
|
|
$i{daily_operator_ids} .= qq~$i{"custom_operator_$event_row\_$event_day"};~ ;
|
||
|
|
}
|
||
|
|
if ($event_row == 1) {
|
||
|
|
$ignore{"time_from_$event_day"} = 1 ;
|
||
|
|
$ignore{"time_to_$event_day"} = 1 ;
|
||
|
|
$ignore{"day_$event_day"} = 1 ;
|
||
|
|
$ignore{"event_length_$event_day"} = 1 ;
|
||
|
|
$ignore{"selected_$event_day\_event_length"} = 1;
|
||
|
|
|
||
|
|
$i{times_from} .= qq~$i{"time_from_$event_day"};~ if $event_day > 1 && $i{"day_$event_day"} ;
|
||
|
|
$i{times_from} .= qq~;~ if $event_day > 1 && !$i{"day_$event_day"} ;
|
||
|
|
$i{times_to} .= qq~$i{"time_to_$event_day"};~ if $event_day < $final_day && $i{"day_$event_day"};
|
||
|
|
$i{times_to} .= qq~;~ if $event_day < $final_day && !$i{"day_$event_day"};
|
||
|
|
$i{days_active} .= qq~$i{"day_$event_day"};~ ;
|
||
|
|
$i{event_length} .= ($i{"day_$event_day"}) ? qq~$i{"event_length_$event_day"};~ : qq~;~ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
chop $i{daily_operator_ids} if $i{daily_operator_ids} && $i{"clicked_button_$event_row"} ;
|
||
|
|
$i{daily_operator_ids} .= qq~|~ ;
|
||
|
|
}
|
||
|
|
chop $i{daily_operator_ids} if $i{daily_operator_ids} ;
|
||
|
|
chop $i{times_from} if $i{times_from} ;
|
||
|
|
chop $i{times_to} if $i{times_to} ;
|
||
|
|
chop $i{days_active} if $i{days_active} ;
|
||
|
|
chop $i{event_length} if $i{event_length} ;
|
||
|
|
|
||
|
|
# $ignore{daily_operator_ids} = 1 if $i{daily_operator_ids} eq $db{$table}{$id}{daily_operator_ids} ;
|
||
|
|
# $ignore{times_from} = 1 if $i{times_from} eq $db{$table}{$id}{times_from} ;
|
||
|
|
# $ignore{times_to} = 1 if $i{times_to} eq $db{$table}{$id}{times_to} ;
|
||
|
|
# $ignore{days_active} = 1 if $i{days_active} eq $db{$table}{$id}{days_active} ;
|
||
|
|
# $ignore{event_length} = 1 if $i{event_length} eq $db{$table}{$id}{event_length} ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_working_fields {
|
||
|
|
|
||
|
|
my ($id,$quote_accepted,$quote_rejected,$quote_cancelled) = @_ ;
|
||
|
|
|
||
|
|
if (($quote_accepted || $quote_rejected || $quote_cancelled) && $glod_user_level < 3) {
|
||
|
|
|
||
|
|
### ADD IGNORE WITH EVENT SYSTEM NAME TABLE
|
||
|
|
for my $col (1 .. 20) {
|
||
|
|
$ignore{"time_from_$col"} = 1 ;
|
||
|
|
$ignore{"time_to_$col"} = 1 ;
|
||
|
|
$ignore{"day_$col"} = 1 ;
|
||
|
|
for (1 .. 15) {
|
||
|
|
$ignore{"custom_operator_$_\_$col"} = 1 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$ignore{total_amount_workings_event} = 1 ;
|
||
|
|
$ignore{total_vat_amount_workings_event} = 1 ;
|
||
|
|
$ignore{total_grand_amount_workings_event} = 1 ;
|
||
|
|
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# if ($glod_user_level < 3) {
|
||
|
|
# $ignore{daily_operator_ids} = 1 ;
|
||
|
|
# $ignore{event_length} = 1 ;
|
||
|
|
# $ignore{times_from} = 1 ;
|
||
|
|
# $ignore{times_to} = 1 ;
|
||
|
|
# $ignore{event_length} = 1 ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
&process_daily_details_from_the_events_datails_tab($id) ;
|
||
|
|
|
||
|
|
my $diplayed_exp_tab = 0 ; my $hidden_exp_tab = 0 ;
|
||
|
|
if ($glod_user_level > 3) {
|
||
|
|
# if ($glod_user_level > 2) {
|
||
|
|
$diplayed_exp_tab = 1 ;
|
||
|
|
} elsif ($glod_user_level < 4) {
|
||
|
|
# } elsif ($glod_user_level < 3) {
|
||
|
|
$hidden_exp_tab = 1 ;
|
||
|
|
# $ignore{sub_total} = 1 ;
|
||
|
|
# $ignore{vat_total} = 1 ;
|
||
|
|
# $ignore{grand_total} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# return if !$diplayed_exp_tab && !$hidden_exp_tab ;
|
||
|
|
|
||
|
|
$i{sub_total} = $i{sub_total_costing_event} ;
|
||
|
|
$i{vat_total} = $i{vat_total_costing_event} ;
|
||
|
|
$i{grand_total} = $i{grand_total_costing_event} ;
|
||
|
|
# $i{profit_loss} =~ s/\,//g ;
|
||
|
|
# $i{sub_total} =~ s/\,//g ;
|
||
|
|
# $i{vat_total} =~ s/\,//g ;
|
||
|
|
# $i{grand_total} =~ s/\,//g ;
|
||
|
|
|
||
|
|
$ignore{sub_total_workings_event} = 1 ;
|
||
|
|
$ignore{vat_total_workings_event} = 1 ;
|
||
|
|
$ignore{grand_total_workings_event} = 1 ;
|
||
|
|
$ignore{sub_total_costing_event} = 1 ;
|
||
|
|
$ignore{vat_total_costing_event} = 1 ;
|
||
|
|
$ignore{grand_total_costing_event} = 1 ;
|
||
|
|
$ignore{sub_total} = 1 if $i{sub_total} eq $db{$table}{$id}{sub_total} ;
|
||
|
|
$ignore{vat_total} = 1 if $i{vat_total} eq $db{$table}{$id}{vat_total} ;
|
||
|
|
$ignore{grand_total} = 1 if $i{grand_total} eq $db{$table}{$id}{grand_total} ;
|
||
|
|
|
||
|
|
for (1 .. 50) {
|
||
|
|
|
||
|
|
$y{1}{$_} = "excl_costing_event_$_" ;
|
||
|
|
$y{2}{$_} = "description_costing_event_$_" ;
|
||
|
|
$y{3}{$_} = "qty_full_day_costing_event_$_" ;
|
||
|
|
$y{4}{$_} = "amount_usd_costing_event_$_" ;
|
||
|
|
$y{5}{$_} = "amount_ttl_costing_event_$_" ;
|
||
|
|
$y{6}{$_} = "vat_costing_event_$_" ;
|
||
|
|
$y{7}{$_} = "excl_workings_event_$_" ;
|
||
|
|
$y{8}{$_} = "description_workings_event_$_" ;
|
||
|
|
$y{9}{$_} = "operator_workings_event_$_" ;
|
||
|
|
$y{10}{$_} = "remarks_workings_event_$_" ;
|
||
|
|
$y{11}{$_} = "supplier_workings_event_$_" ;
|
||
|
|
$y{12}{$_} = "ref_nr_workings_event_$_" ;
|
||
|
|
$y{13}{$_} = "qty_workings_event_$_" ;
|
||
|
|
$y{14}{$_} = "amount_usd_workings_event_$_" ;
|
||
|
|
$y{15}{$_} = "amount_ttl_workings_event_$_" ;
|
||
|
|
$y{16}{$_} = "vat_workings_event_$_" ;
|
||
|
|
$y{17}{$_} = "qty_half_day_costing_event_$_" ;
|
||
|
|
# $y{18}{$_} = "qty_full_day_costing_event_$_" ;
|
||
|
|
# $y{17}{$_} = "curr_amnt_costing_event_$_" ;
|
||
|
|
|
||
|
|
$hidden_expenses_amounts_exist = ($hidden_expenses_amounts_exist || ($glod_user_level < 4 && ($y{8}{$_} || $y{9}{$_} || $y{13}{$_} || $i{$y{14}{$_}} || $i{$y{15}{$_}}))) ? 1 : 0 ;
|
||
|
|
|
||
|
|
foreach my $a (keys %y) {
|
||
|
|
foreach my $b (keys %{$y{$a}}) {
|
||
|
|
$ignore{$y{$a}{$b}} = 1 ;
|
||
|
|
$x{$a}{$b} = $i{$y{$a}{$b}} ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# return if $i{custom_set} ;
|
||
|
|
|
||
|
|
if ($i{custom_set}) {
|
||
|
|
$i{total_amount_workings_event} = $i{sub_total_workings_event} ;
|
||
|
|
$i{total_vat_amount_workings_event} = $i{vat_total_workings_event} ;
|
||
|
|
$i{total_grand_amount_workings_event} = $i{grand_total_workings_event} ;
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$i{total_amount_workings_event} = 0 ;
|
||
|
|
$i{total_vat_amount_workings_event} = 0 ;
|
||
|
|
$i{total_grand_amount_workings_event} = 0 ;
|
||
|
|
|
||
|
|
my %operator_day_count = () ; my %operator_row = () ;
|
||
|
|
my $operator_count = 0 ;
|
||
|
|
my %ii = () ;
|
||
|
|
|
||
|
|
# $i{operator_ids} = $db{$table}{$id}{operator_ids} if $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
my @operator_ids = split(/\,/,$i{operator_ids}) ;
|
||
|
|
|
||
|
|
&db_min_ro('event_systems','id,system_type','','','') ;
|
||
|
|
|
||
|
|
for my $system_name_row_nr (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
|
||
|
|
my $field4 = "system_name_$system_name_row_nr" ;
|
||
|
|
|
||
|
|
# next if !$i{$field4} || $i{$field4} < 0 ;
|
||
|
|
|
||
|
|
$i{$field4} = -1 if !$i{$field4} && $i{"clicked_button_$system_name_row_nr"} ;
|
||
|
|
|
||
|
|
next unless $i{$field4} ;
|
||
|
|
|
||
|
|
for my $days (1 .. 20) {
|
||
|
|
|
||
|
|
my $day_field = "day_$days" ;
|
||
|
|
next unless $i{$day_field} ;
|
||
|
|
|
||
|
|
my $field1 = "custom_operator_$system_name_row_nr\_$days" ;
|
||
|
|
my $field2 = "operator_id_calibration_$system_name_row_nr" ;
|
||
|
|
my $field3 = "event_length_$days" ;
|
||
|
|
|
||
|
|
if ($i{$field1}) {
|
||
|
|
if ($i{$field4} eq '-1') {
|
||
|
|
$operator_day_count{blank_system}{$i{$field1}}++ ;
|
||
|
|
} elsif ($i{$field3} eq '1' && $db{event_systems}{$i{$field4}}{system_type} ne 'fixed') { #full day
|
||
|
|
$operator_day_count{afull_day_mobile}{$i{$field1}}++ ;
|
||
|
|
} elsif (($i{$field3} eq '1' && $db{event_systems}{$i{$field4}}{system_type} eq 'fixed') or ($i{$field3} eq '2' && $db{event_systems}{$i{$field4}}{system_type} ne 'fixed')) { #full day
|
||
|
|
$operator_day_count{bfull_day_fixed_half_day_mobile}{$i{$field1}}++ ;
|
||
|
|
} elsif ($i{$field3} eq '2' && $db{event_systems}{$i{$field4}}{system_type} eq 'fixed') {
|
||
|
|
$operator_day_count{chalf_day_fixed}{$i{$field1}}++ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
if ($i{operator_ids}) {
|
||
|
|
my $cnt = 0 ;
|
||
|
|
foreach my $op_id (@operator_ids) {
|
||
|
|
$cnt++ ;
|
||
|
|
next unless $op_id ;
|
||
|
|
my $field5 = "system_name_$cnt" ;
|
||
|
|
|
||
|
|
$i{$field5} = -1 if !$i{$field5} && $i{"operator_id_calibration_$cnt"} ;
|
||
|
|
|
||
|
|
# if ($i{$field5} && $i{$field5} > 0) {
|
||
|
|
|
||
|
|
for my $days (1 .. 20) {
|
||
|
|
my $day_field = "day_$days" ;
|
||
|
|
next unless $i{$day_field} ;
|
||
|
|
my $field6 = "event_length_$days" ;
|
||
|
|
if ($i{$field5} eq '-1') {
|
||
|
|
$operator_day_count{blank_system}{$op_id}++ ;
|
||
|
|
} elsif ($i{$field6} eq '1' && $db{event_systems}{$i{$field5}}{system_type} && $db{event_systems}{$i{$field5}}{system_type} ne 'fixed') { #full day
|
||
|
|
$operator_day_count{afull_day_mobile}{$op_id}++ ;
|
||
|
|
} elsif (($i{$field6} eq '1' && $db{event_systems}{$i{$field5}}{system_type} eq 'fixed') or ($i{$field6} eq '2' && $db{event_systems}{$i{$field5}}{system_type} && $db{event_systems}{$i{$field5}}{system_type} ne 'fixed')) { #full day
|
||
|
|
$operator_day_count{bfull_day_fixed_half_day_mobile}{$op_id}++ ;
|
||
|
|
} elsif ($i{$field6} eq '2' && $db{event_systems}{$i{$field5}}{system_type} eq 'fixed') {
|
||
|
|
$operator_day_count{chalf_day_fixed}{$op_id}++ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
next if $i{$field5} eq '-1' || $db{event_systems}{$i{$field5}}{system_type} ;
|
||
|
|
|
||
|
|
# } else {
|
||
|
|
for my $days (1 .. 20) {
|
||
|
|
my $day_field = "day_$days" ;
|
||
|
|
next unless $i{$day_field} ;
|
||
|
|
my $field6 = "event_length_$days" ;
|
||
|
|
if ($i{$field6} eq '1' && $i{type} ne '3') { #full day
|
||
|
|
$operator_day_count{afull_day_mobile}{$op_id}++ ;
|
||
|
|
} elsif (($i{$field6} eq '1' && $i{type} eq '3') or ($i{$field6} eq '2' && $i{type} ne '3')) { #full day
|
||
|
|
$operator_day_count{bfull_day_fixed_half_day_mobile}{$op_id}++ ;
|
||
|
|
} elsif ($i{$field6} eq '2' && $i{type} eq '3') {
|
||
|
|
$operator_day_count{chalf_day_fixed}{$op_id}++ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
my %iii = %i ;
|
||
|
|
our %i2 = () ;
|
||
|
|
|
||
|
|
for (1 .. 50) {
|
||
|
|
if ($i{"description_workings_event_$_"} eq '14' && $i{"operator_workings_event_$_"}) {
|
||
|
|
my $op = $i{"operator_workings_event_$_"} ;
|
||
|
|
my $day_len = ($i{"amount_usd_workings_event_$_"} eq '1000.00') ? "afull_day_mobile" : ($i{"amount_usd_workings_event_$_"} eq '750.00') ? "bfull_day_fixed_half_day_mobile" : ($i{"amount_usd_workings_event_$_"} eq '500.00') ? "chalf_day_fixed" : "" ;
|
||
|
|
if ($day_len) {
|
||
|
|
$saved_values{$day_len}{$op}{saved_values} = 1 ;
|
||
|
|
$saved_values{$day_len}{$op}{supplier_workings_event} = $i{"supplier_workings_event_$_"} ;
|
||
|
|
$saved_values{$day_len}{$op}{ref_nr_workings_event} = $i{"ref_nr_workings_event_$_"} ;
|
||
|
|
$saved_values{$day_len}{$op}{remarks_workings_event} = $i{"remarks_workings_event_$_"} ;
|
||
|
|
$saved_values{$day_len}{$op}{vat_workings_event} = $i{"vat_workings_event_$_"} ;
|
||
|
|
$saved_values{$day_len}{$op}{excl_workings_event} = $i{"excl_workings_event_$_"} ;
|
||
|
|
# $saved_values{$day_len}{$op}{amount_usd_workings_event} = $i{"amount_usd_workings_event_$_"} if $day_len eq "other" ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$i{"description_workings_event_$_"} = "" ;
|
||
|
|
$i{"operator_workings_event_$_"} = "" ;
|
||
|
|
$i{"qty_workings_event_$_"} = "" ;
|
||
|
|
$i{"amount_usd_workings_event_$_"} = "" ;
|
||
|
|
$i{"amount_ttl_workings_event_$_"} = "" ;
|
||
|
|
$i{"excl_workings_event_$_"} = "1";
|
||
|
|
$i{"vat_workings_event_$_"} = "" ;
|
||
|
|
$i{"supplier_workings_event_$_"} = "" ;
|
||
|
|
$i{"ref_nr_workings_event_$_"} = "" ;
|
||
|
|
$i{"remarks_workings_event_$_"} = "" ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
my $row_cnt = 0 ;
|
||
|
|
|
||
|
|
foreach my $len (sort keys %operator_day_count) {
|
||
|
|
|
||
|
|
foreach $op_id (sort keys %{$operator_day_count{$len}}) {
|
||
|
|
|
||
|
|
$row_cnt++ ;
|
||
|
|
$i2{description_workings_event} .= '14;' ;
|
||
|
|
$i2{operator_workings_event} .= "$op_id;" ;
|
||
|
|
$i2{qty_workings_event} .= "$operator_day_count{$len}{$op_id};" ;
|
||
|
|
|
||
|
|
# my $custom_saved_amnt = $saved_values{"other"}{$op_id}{amount_usd_workings_event} ;
|
||
|
|
|
||
|
|
$i2{amount_usd_workings_event} .= ($len eq 'blank_system') ? '0.00' : ($len eq "afull_day_mobile") ? '1000.00' : ($len eq "bfull_day_fixed_half_day_mobile") ? '750.00' : '500.00' ;
|
||
|
|
$i2{amount_usd_workings_event} .= qq~;~ ;
|
||
|
|
my $amnt = ($len eq 'blank_system') ? 0 : ($len eq "afull_day_mobile") ? 1000 * $operator_day_count{$len}{$op_id} : ($len eq "bfull_day_fixed_half_day_mobile") ? 750 * $operator_day_count{$len}{$op_id} : 500 * $operator_day_count{$len}{$op_id} ;
|
||
|
|
$amnt = sprintf ("%0.2f",$amnt) ;
|
||
|
|
|
||
|
|
$i2{amount_workings_event} .= "$amnt;" ;
|
||
|
|
$i{total_amount_workings_event} += $amnt if !$saved_values{$len}{$op_id}{excl_workings_event} ;
|
||
|
|
if ($saved_values{$len}{$op_id}{saved_values}) {
|
||
|
|
foreach (keys %{$saved_values{$len}{$op_id}}) {
|
||
|
|
$i2{$_} .= qq~$saved_values{$len}{$op_id}{$_};~ if $_ ne "saved_values" ;
|
||
|
|
$i{total_vat_amount_workings_event} += $amnt*0.15 if !$saved_values{$len}{$op_id}{excl_workings_event} && $saved_values{$len}{$op_id}{vat_workings_event} && $_ eq "vat_workings_event" ;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
$i2{supplier_workings_event} .= ";" ;
|
||
|
|
$i2{ref_nr_workings_event} .= ";" ;
|
||
|
|
$i2{remarks_workings_event} .= ";" ;
|
||
|
|
$i2{vat_workings_event} .= "1;" ;
|
||
|
|
$i2{excl_workings_event} .= "0;" ;
|
||
|
|
$i{total_vat_amount_workings_event} += $amnt*0.15 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
for (1 .. 50) {
|
||
|
|
if ($iii{"description_workings_event_$_"} && $iii{"description_workings_event_$_"} ne '14') {
|
||
|
|
$row_cnt++ ;
|
||
|
|
$i2{"excl_workings_event"} .= qq~$iii{"excl_workings_event_$_"};~ ;
|
||
|
|
$i2{"description_workings_event"} .= qq~$iii{"description_workings_event_$_"};~ ;
|
||
|
|
$i2{"operator_workings_event"} .= qq~$iii{"operator_workings_event_$_"};~ ;
|
||
|
|
$i2{"remarks_workings_event"} .= qq~$iii{"remarks_workings_event_$_"};~ ;
|
||
|
|
$i2{"supplier_workings_event"} .= qq~$iii{"supplier_workings_event_$_"};~ ;
|
||
|
|
$i2{"ref_nr_workings_event"} .= qq~$iii{"ref_nr_workings_event_$_"};~ ;
|
||
|
|
$i2{"qty_workings_event"} .= qq~$iii{"qty_workings_event_$_"};~ ;
|
||
|
|
$i2{"amount_usd_workings_event"} .= qq~$iii{"amount_usd_workings_event_$_"};~ ;
|
||
|
|
$i2{"amount_workings_event"} .= qq~$iii{"amount_ttl_workings_event_$_"};~ ;
|
||
|
|
$i2{"vat_workings_event"} .= qq~$iii{"vat_workings_event_$_"};~ ;
|
||
|
|
$iii{"amount_ttl_workings_event_$_"} =~ s/\,//g ;
|
||
|
|
$i{total_amount_workings_event} += $iii{"amount_ttl_workings_event_$_"} if !$iii{"excl_workings_event_$_"} ;
|
||
|
|
$i{total_vat_amount_workings_event} += $iii{"amount_ttl_workings_event_$_"} * 0.15 if !$iii{"excl_workings_event_$_"} && $iii{"vat_workings_event_$_"} ;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
unless ($row_cnt) {
|
||
|
|
$i2{excl_workings_event} = qq~~ ;
|
||
|
|
$i2{description_workings_event} = qq~~ ;
|
||
|
|
$i2{operator_workings_event} = qq~~ ;
|
||
|
|
$i2{remarks_workings_event} = qq~~ ;
|
||
|
|
$i2{supplier_workings_event} = qq~~ ;
|
||
|
|
$i2{ref_nr_workings_event} = qq~~ ;
|
||
|
|
$i2{qty_workings_event} = qq~~ ;
|
||
|
|
$i2{amount_usd_workings_event} = qq~~ ;
|
||
|
|
$i2{amount_workings_event} = qq~~ ;
|
||
|
|
$i2{vat_workings_event} = qq~~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$i{total_grand_amount_workings_event} = $i{total_vat_amount_workings_event} + $i{total_amount_workings_event} ;
|
||
|
|
|
||
|
|
$i{profit_loss} = $db{$table}{$id}{grand_total} - $i{total_grand_amount_workings_event} ;
|
||
|
|
|
||
|
|
$i{total_amount_workings_event} = sprintf("%0.2f",$i{total_amount_workings_event}) ;
|
||
|
|
$i{total_vat_amount_workings_event} = sprintf("%0.2f",$i{total_vat_amount_workings_event}) ;
|
||
|
|
$i{total_grand_amount_workings_event} = sprintf("%0.2f",$i{total_grand_amount_workings_event}) ;
|
||
|
|
$i{profit_loss} = sprintf("%0.2f",$i{profit_loss}) ;
|
||
|
|
|
||
|
|
foreach (keys %i2) {
|
||
|
|
# chop $i2{$_} if $i2{$_} ;
|
||
|
|
# $i{$_} = $i2{$_} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_event_quotes_min_fields {
|
||
|
|
|
||
|
|
my ($quote_accepted,$quote_rejected,$quote_cancelled) = @_ ;
|
||
|
|
|
||
|
|
my $category_details = qq~$i{category_1_details}|;|$i{category_2_details}~ if $i{category_1_details} || $i{category_2_details} ;
|
||
|
|
$i{category_details} = $category_details ;
|
||
|
|
|
||
|
|
$ignore{last_update} = 1 ;
|
||
|
|
$ignore{poc_contact_nr} = 1 ;
|
||
|
|
$ignore{format_of_title} = 1 ;
|
||
|
|
$ignore{additional_notes} = 1 ;
|
||
|
|
$ignore{poc_name} = 1 ;
|
||
|
|
$ignore{upload_1} = 1 ;
|
||
|
|
$ignore{upload_2} = 1 ;
|
||
|
|
$ignore{upload_3} = 1 ;
|
||
|
|
$ignore{email} = 1 ;
|
||
|
|
$ignore{address} = 1 ;
|
||
|
|
$ignore{country_id} = 1 ;
|
||
|
|
$ignore{quote_date} = 1 ;
|
||
|
|
$ignore{contact_name} = 1 ;
|
||
|
|
$ignore{notes} = 1 ;
|
||
|
|
$ignore{tel} = 1 ;
|
||
|
|
$ignore{category_id_1} = 1 ;
|
||
|
|
$ignore{category_id_2} = 1 ;
|
||
|
|
$ignore{custom_set} = 1 ;
|
||
|
|
$ignore{quote_accepted} = 1 ;
|
||
|
|
$ignore{quote_cancelled} = 1 ;
|
||
|
|
$ignore{quote_rejected} = 1 ;
|
||
|
|
$ignore{quote_completed} = 1 ;
|
||
|
|
|
||
|
|
return if ($quote_accepted || $quote_rejected || $quote_cancelled) && $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
$iid = $i{id} ;
|
||
|
|
my $custom_set = $i{custom_set} ;
|
||
|
|
%i = %i2 ;
|
||
|
|
$i{custom_set} = $custom_set ;
|
||
|
|
if ($glod_user_level > 3) {
|
||
|
|
|
||
|
|
for (1 .. 50) {
|
||
|
|
next unless $x{2}{$_} ;
|
||
|
|
$i{excl_costing_event} .= "$x{1}{$_};" ;
|
||
|
|
$i{item_costing_event} .= "$x{2}{$_};";
|
||
|
|
$i{qty_costing_event} .= "$x{3}{$_};";
|
||
|
|
$i{usd_amnt_costing_event} .= "$x{4}{$_};";
|
||
|
|
$i{item_ttl_costing_event} .= "$x{5}{$_};";
|
||
|
|
$i{vat_costing_event} .= "$x{6}{$_};";
|
||
|
|
$i{qty_half_day_costing_event} .= "$x{17}{$_};";
|
||
|
|
|
||
|
|
# $i{curr_amnt_costing_event} .= "$x{17}{$_};";
|
||
|
|
}
|
||
|
|
if ($i{custom_set}) {
|
||
|
|
for (1 .. 50) {
|
||
|
|
next unless $x{8}{$_} ;
|
||
|
|
$i{excl_workings_event} .= "$x{7}{$_};";
|
||
|
|
$i{description_workings_event} .= "$x{8}{$_};";
|
||
|
|
$i{operator_workings_event} .= "$x{9}{$_};";
|
||
|
|
$i{remarks_workings_event} .= "$x{10}{$_};";
|
||
|
|
$i{supplier_workings_event} .= "$x{11}{$_};";
|
||
|
|
$i{ref_nr_workings_event} .= "$x{12}{$_};";
|
||
|
|
$i{qty_workings_event} .= "$x{13}{$_};";
|
||
|
|
$i{amount_usd_workings_event} .= "$x{14}{$_};";
|
||
|
|
$i{amount_workings_event} .= "$x{15}{$_};";
|
||
|
|
$i{vat_workings_event} .= "$x{16}{$_};";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} elsif ($glod_user_level < 4 && $hidden_expenses_amounts_exist) {
|
||
|
|
|
||
|
|
for (1 .. 50) {
|
||
|
|
# $i{description_workings_event} .= "$x{8}{$_};";
|
||
|
|
# $i{operator_workings_event} .= "$x{9}{$_};";
|
||
|
|
# $i{qty_workings_event} .= "$x{13}{$_};";
|
||
|
|
# $i{amount_usd_workings_event} .= "$x{14}{$_};";
|
||
|
|
# $i{amount_workings_event} .= "$x{15}{$_};";
|
||
|
|
# $i{vat_workings_event} .= "$x{16}{$_};";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach (keys %i) { chop $i{$_} ; }
|
||
|
|
|
||
|
|
$i{category_details} = $category_details ;
|
||
|
|
$i{id} = $iid ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub process_multi_select {
|
||
|
|
|
||
|
|
my ($quote_accepted,$quote_rejected,$quote_cancelled) = @_ ;
|
||
|
|
|
||
|
|
# $ignore{event_system_id} = 1 ;
|
||
|
|
|
||
|
|
# if ($usertype ne 'schools_manager') {
|
||
|
|
# if ($glod_user_level > 3) {
|
||
|
|
|
||
|
|
# return if ($quote_accepted || $quote_rejected || $quote_cancelled) && $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
if (($quote_accepted || $quote_rejected || $quote_cancelled) && $glod_user_level < 3) {
|
||
|
|
$ignore{operatorids} = 1 ;
|
||
|
|
$ignore{typedetailsid} = 1 ;
|
||
|
|
$ignore{organisationids} = 1 ;
|
||
|
|
$ignore{sporttypeids} = 1 ;
|
||
|
|
$ignore{operator_ids} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
local @operatorids = split(/\,/,$i{operatorids}) ;
|
||
|
|
$i{nr_of_casuals} = scalar @operatorids || '0' ; $i{nr_of_casuals_2} = '0' ;
|
||
|
|
my $operatorids = join(",",@operatorids) ;
|
||
|
|
$operatorids =~ s/\s//g; # remove white space
|
||
|
|
$ignore{operatorids} = 1 ;
|
||
|
|
|
||
|
|
$i{operator_ids} .= $operatorids ;
|
||
|
|
$i{operator_ids} = 0 unless $i{operator_ids} ;
|
||
|
|
chop $i{operator_ids} if substr($i{operator_ids},-1,1) eq ',' ;
|
||
|
|
|
||
|
|
if ($glod_user_level > 2) {
|
||
|
|
|
||
|
|
local @typedetailsid = split(/\,/,$i{typedetailsid}) ;
|
||
|
|
my $typedetailsid = join(",",@typedetailsid) ;
|
||
|
|
$typedetailsid =~ s/\s//g; # remove white space
|
||
|
|
$ignore{typedetailsid} = 1 ;
|
||
|
|
$i{type_details_id} = $typedetailsid ;
|
||
|
|
$i{type_details_id} = 0 unless $i{type_details_id} ;
|
||
|
|
|
||
|
|
# @event_system_ids = split(/\,/,$i{event_system_ids}) ;
|
||
|
|
# my @db_event_system_ids = () ; foreach (@event_system_ids) { push @db_event_system_ids, $_ ; }
|
||
|
|
# my $db_event_system_ids = join(';',@db_event_system_ids) ;
|
||
|
|
# $ignore{event_system_ids} = 1 ;
|
||
|
|
# $i{event_system_id_multiple} = $db_event_system_ids ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$ignore{city_ids} = 1 ;
|
||
|
|
$i{city_id} = $i{city_ids} ;
|
||
|
|
|
||
|
|
local @organisationids = split(/\,/,$i{organisationids}) ;
|
||
|
|
my $organisationids = join(",",@organisationids) ;
|
||
|
|
$organisationids =~ s/\s//g; # remove white space
|
||
|
|
$ignore{organisationids} = 1 ;
|
||
|
|
$i{organisation_ids} = $organisationids ;
|
||
|
|
$i{organisation_ids} = 0 unless $i{organisation_ids} ;
|
||
|
|
|
||
|
|
local @sporttypeids = split(/\,/,$i{sporttypeids}) ;
|
||
|
|
my $sporttypeids = join(",",@sporttypeids) ;
|
||
|
|
$sporttypeids =~ s/\s//g; # remove white space
|
||
|
|
$ignore{sporttypeids} = 1 ;
|
||
|
|
$i{sport_type_ids} = $sporttypeids ;
|
||
|
|
$i{sport_type_ids} = 0 unless $i{sport_type_ids} ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub copy {
|
||
|
|
|
||
|
|
unless ($i{id}) {
|
||
|
|
$error = qq~NO ID~ ;
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $id = $i{id} ;
|
||
|
|
|
||
|
|
&db_min_copy($table,$i{id}) ;
|
||
|
|
|
||
|
|
&db_min_copy('event_quotes_min',$id) ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
# sub copy {
|
||
|
|
|
||
|
|
# unless ($i{id}) {
|
||
|
|
# $error = qq~NO ID~ ;
|
||
|
|
# return ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# my $id = $i{id} ;
|
||
|
|
|
||
|
|
# &db_min_copy($table,$i{id}) ;
|
||
|
|
|
||
|
|
# my $id2 = $i{id} ;
|
||
|
|
|
||
|
|
# $i{id} = $id ;
|
||
|
|
|
||
|
|
# &db_min_copy('event_quotes_min',$i{id}) ;
|
||
|
|
|
||
|
|
# $i{id} = $id ;
|
||
|
|
|
||
|
|
# # use File::Copy;
|
||
|
|
# # # use File::Path 'make_path';
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# # my $src_dir = "$htmlpath/uploads/uploads/$id";
|
||
|
|
# # my $dst_dir = "$htmlpath/uploads/uploads/$id2";
|
||
|
|
|
||
|
|
# # return unless -d $src_dir ;
|
||
|
|
|
||
|
|
# # mkdir $dst_dir unless -d $dst_dir ;
|
||
|
|
|
||
|
|
# # opendir(my $dh, $src_dir) or die "Can't open $src_dir: $!";
|
||
|
|
# # my $file_counter = 0 ;
|
||
|
|
# # while (my $file = readdir($dh)) {
|
||
|
|
# # next if $file =~ /^\.\.?$/; # Skip '.' and '..'
|
||
|
|
# # last if !$file || $file_counter >= 3 ;
|
||
|
|
# # my $src_file = "$src_dir/$file";
|
||
|
|
# # my $dst_file = "$dst_dir/$file";
|
||
|
|
# # copy($src_dir, $dst_dir) or warn "Failed to copy $src_file to $dst_file: $!";
|
||
|
|
# # $file_counter++ ;
|
||
|
|
# # }
|
||
|
|
|
||
|
|
# # closedir($dh);
|
||
|
|
|
||
|
|
# } #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
|
||
|
|
sub delete {
|
||
|
|
|
||
|
|
unless ($i{id}) { $error = uc "NO ID" ; return ; }
|
||
|
|
|
||
|
|
&db_min_delete('event_quotes',"`id`='$i{id}'") ;
|
||
|
|
&db_min_delete('event_quotes_min',"`id`='$i{id}'") ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub process_upload_ifields {
|
||
|
|
|
||
|
|
foreach (keys %uploads_file) { $i{$_} = $uploads_file{$_} ; $ignore{$_} = '' ; }
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub set_default_i_vals {
|
||
|
|
|
||
|
|
my $srch_where_sql = "`id`='$i{id}'" ;
|
||
|
|
|
||
|
|
$iaction eq 'save' ? &db_min_ro($table,'*','','id DESC',1) : &db_min_ro($table,'*',$srch_where_sql,'','') ;
|
||
|
|
|
||
|
|
foreach (sort { $col_name{$a} cmp $col_name{$b} } keys %col_name) {
|
||
|
|
$col = $col_name{$_} ;
|
||
|
|
|
||
|
|
# &common_min_debug("1. [$col] [$i{$col}]");
|
||
|
|
|
||
|
|
if (substr($col,0,4) eq 'vat_' or substr($col,0,5) eq 'excl_' or substr($col,0,4) eq 'qty_') {
|
||
|
|
$i{$col} = 0 unless $i{$col} ;
|
||
|
|
} # only create the column if it doesn't exist
|
||
|
|
|
||
|
|
if (substr($col,0,5) eq 'date_') {
|
||
|
|
$i{$col} = 'NULL' unless $i{$col} ;
|
||
|
|
} # only create the column if it doesn't exist
|
||
|
|
|
||
|
|
if (substr($col,0,11) eq 'amount_ttl_' or substr($col,0,9) eq 'usd_amnt_' or substr($col,0,10) eq 'curr_amnt_' or substr($col,0,9) eq 'item_ttl_' or substr($col,-6,6) eq '_total') {
|
||
|
|
$i{$col} = '0.00' unless $i{$col} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ((substr($col,6,9) eq '_costing_' and substr($col,0,5) eq 'item_' and $i{$col}) or ($col eq 'quote_to' and $i{$col})) {
|
||
|
|
my @valarr = split(/\:/,$i{$col}) ;
|
||
|
|
$i{$col} = $valarr[0] ; # set the value to only be the id
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$i{quote_completed} = 0 unless $i{quote_completed} ;
|
||
|
|
$i{quote_accepted} = 0 unless $i{quote_accepted} ;
|
||
|
|
$i{quote_pending} = 0 unless $i{quote_pending} ;
|
||
|
|
$i{quote_cancelled} = 0 unless $i{quote_cancelled} ;
|
||
|
|
$i{quote_rejected} = 0 unless $i{quote_rejected} ;
|
||
|
|
$i{annual_invoice} = 0 unless $i{annual_invoice} ;
|
||
|
|
$i{nr_of_casuals_2} = 0 unless $i{nr_of_casuals_2} ;
|
||
|
|
$ignore{invoice_date} = 1 unless length($i{invoice_date}) == 10 ;
|
||
|
|
|
||
|
|
if ($i{quote_completed}) {
|
||
|
|
$i{quote_accepted} = 1 ;
|
||
|
|
$i{quote_cancelled} = 0 ;
|
||
|
|
$i{quote_pending} = 0 ;
|
||
|
|
$i{quote_rejected} = 0 ;
|
||
|
|
} elsif ($i{quote_accepted}) {
|
||
|
|
$i{quote_cancelled} = 0 ;
|
||
|
|
$i{quote_completed} = 0 ;
|
||
|
|
$i{quote_pending} = 0 ;
|
||
|
|
$i{quote_rejected} = 0 ;
|
||
|
|
} elsif ($i{quote_rejected}) {
|
||
|
|
$i{quote_cancelled} = 0 ;
|
||
|
|
$i{quote_completed} = 0 ;
|
||
|
|
$i{quote_pending} = 0 ;
|
||
|
|
$i{quote_accepted} = 0 ;
|
||
|
|
} elsif ($i{quote_pending}) {
|
||
|
|
$i{quote_cancelled} = 0 ;
|
||
|
|
$i{quote_rejected} = 0 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$i{ligr} = ($i{ligr}) ? 'Yes' : 'No' ;
|
||
|
|
|
||
|
|
$i{city_id} = 0 unless $i{city_id} ;
|
||
|
|
$i{region_id} = 0 unless $i{region_id} ;
|
||
|
|
$i{category_id_1} = 0 unless $i{category_id_1} ;
|
||
|
|
$i{category_id_2} = 0 unless $i{category_id_2} ;
|
||
|
|
$i{po_nr} = 0 unless $i{po_nr} ;
|
||
|
|
|
||
|
|
# $i{grand_total} = '0.00' unless $i{grand_total} ;
|
||
|
|
$i{format_of_title} = uc $i{format_of_title} ;
|
||
|
|
$i{ref} = uc $i{ref} ;
|
||
|
|
$i{category_1_details} = uc $i{category_1_details} ;
|
||
|
|
$i{category_2_details} = uc $i{category_2_details} ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub list_screen {
|
||
|
|
|
||
|
|
&db_min_ro('event_type_details','id,name','','','') ;
|
||
|
|
&db_min_ro('event_quotes_categories','id,category','','','') ;
|
||
|
|
&db_min_ro('event_systems','id,name,description,system_type','','','') ;
|
||
|
|
&db_min_ro('clubs','id,name','','','') ;
|
||
|
|
&db_min_ro('cities','id,city,province','','','') ;
|
||
|
|
|
||
|
|
&db_min_ro('users','id,username,name,email','','','') ;
|
||
|
|
foreach my $_id (keys %{$db{users}}) {
|
||
|
|
$username{$_id} = $db{users}{$_id}{username} ;
|
||
|
|
$name{$_id} = $db{users}{$_id}{name} ;
|
||
|
|
$email{$_id} = $db{users}{$_id}{email} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
&db_min_ro('sport_types','*','','','') ;
|
||
|
|
foreach my $_id (keys %{$db{sport_types}}) { $sort_type{$_id} = $db{sport_types}{$_id}{name} ; }
|
||
|
|
|
||
|
|
&db_min_ro('organisations','id,name','','','') ;
|
||
|
|
foreach my $_id (keys %{$db{organisations}}) { $organisation{$_id} = $db{organisations}{$_id}{name} ; }
|
||
|
|
|
||
|
|
if ($iaction eq 'completed' or $i{options} eq 'completed') { push @report_sql, "q.quote_completed='1'" ; }
|
||
|
|
if ($iaction eq 'accepted' or $i{options} eq 'accepted') { push @report_sql, "q.quote_accepted='1'" ; }
|
||
|
|
if ($iaction eq 'rejected' or $i{options} eq 'rejected') { push @report_sql, "q.quote_rejected='1'" ; }
|
||
|
|
if ($iaction eq 'closed' or $i{options} eq 'closed') { push @report_sql, "(q.quote_cancelled='1' OR (q.quote_expiry<'$now_year-$now_mm-$now_dd' AND q.quote_accepted<>'1'))" ; }
|
||
|
|
if ($iaction eq 'pending' or $i{options} eq 'pending') { push @report_sql, "q.quote_pending='1'" ; }
|
||
|
|
if ($iaction eq 'list' or $i{options} eq 'list') { push @report_sql, "q.quote_cancelled<>'1'" ; }
|
||
|
|
|
||
|
|
my $t1 = 'event_quotes';
|
||
|
|
my $t2 = 'countries' ;
|
||
|
|
my $t3 = 'cities' ;
|
||
|
|
my $t4 = 'customers' ;
|
||
|
|
my $t5 = 'event_types' ;
|
||
|
|
my $t6 = 'regions' ;
|
||
|
|
my $t7 = 'event_quotes_min' ;
|
||
|
|
our $tables = "$t1,$t2,$t3,$t4,$t5,$t6,$t7" ;
|
||
|
|
|
||
|
|
if ($is_schools_manager || $is_operator) {
|
||
|
|
@report_sql_or = () ;
|
||
|
|
foreach $_reg_id (keys %{$glob_regids{$userid}}) {
|
||
|
|
push @report_sql_or, "q.region_id = '$_reg_id'"
|
||
|
|
}
|
||
|
|
my $sql_or = join(' OR ',@report_sql_or) ;
|
||
|
|
push @report_sql, "($sql_or)" if $sql_or ;
|
||
|
|
push @report_sql, "(q.quote_created='1')" if $is_schools_manager ;
|
||
|
|
# push @report_sql, "(q.user_id='$userid')" if $is_schools_manager ;
|
||
|
|
push @report_sql, "(q.quote_accepted='1')" if $is_operator && !$i{options} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
push @report_sql, "(q.quote_completed <> '1')" if $iaction eq 'list' ;
|
||
|
|
|
||
|
|
my $srch_where_sql = join(' AND ', @report_sql) ; my $sql_where = ($srch_where_sql) ? "WHERE $srch_where_sql" : '' ;
|
||
|
|
|
||
|
|
&db_min_raw("SELECT q.id AS 'quote_id',
|
||
|
|
q.quote_nr,
|
||
|
|
q.sport_type_ids,
|
||
|
|
q.city_id,
|
||
|
|
q.region_id,
|
||
|
|
q.organisation_ids,
|
||
|
|
q.date_from,
|
||
|
|
q.date_to,
|
||
|
|
q.grand_total,
|
||
|
|
q.ref,
|
||
|
|
q.qty,
|
||
|
|
q.quote_expiry,
|
||
|
|
q.quote_to,
|
||
|
|
q.invoice_nr,
|
||
|
|
q.quote_date,
|
||
|
|
q.type,
|
||
|
|
q.currency,
|
||
|
|
q.country_id,
|
||
|
|
q.quote_cancelled,
|
||
|
|
q.quote_accepted,
|
||
|
|
q.quote_completed,
|
||
|
|
q.quote_pending,
|
||
|
|
q.quote_created,
|
||
|
|
q.quote_rejected,
|
||
|
|
q.activetab,
|
||
|
|
q.user_id,
|
||
|
|
q.category_1,
|
||
|
|
q.category_id_1,
|
||
|
|
q.category_2,
|
||
|
|
q.category_id_2,
|
||
|
|
q.additional_notes,
|
||
|
|
q.poc_name,
|
||
|
|
q.poc_contact_nr,
|
||
|
|
q.type_details_id,
|
||
|
|
q.club_ids,
|
||
|
|
q.event_system_id_multiple,
|
||
|
|
q.operator_ids,
|
||
|
|
q.format_of_title,
|
||
|
|
q.emailed_op_ids,
|
||
|
|
q.fixed_system_overall_status,
|
||
|
|
q.daily_operator_ids,
|
||
|
|
c.name AS 'country',
|
||
|
|
t.name AS 'customer',
|
||
|
|
y.city,
|
||
|
|
y.province,
|
||
|
|
r.code AS 'reg_code',
|
||
|
|
r.name AS 'region',
|
||
|
|
e.name AS 'event_type',
|
||
|
|
emin.category_details
|
||
|
|
FROM $t1 q LEFT JOIN $t2 c ON q.country_id = c.id
|
||
|
|
LEFT JOIN $t3 y ON q.city_id = y.id
|
||
|
|
LEFT JOIN $t4 t ON q.quote_to = t.id
|
||
|
|
LEFT JOIN $t5 e ON q.type = e.id
|
||
|
|
LEFT JOIN $t6 r ON q.region_id = r.id
|
||
|
|
LEFT JOIN $t7 emin ON q.id = emin.quote_nr
|
||
|
|
$sql_where;");
|
||
|
|
|
||
|
|
foreach $row (@$rows_array_ref) {
|
||
|
|
for (0 .. $col_cnt){
|
||
|
|
# &common_debug("[$_] $col_name{$_} -> @$row[$_]") ;
|
||
|
|
$db{$tables}{@$row[0]}{$col_name{$_}} = @$row[$_] ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
&tab_hash ; # load for PDF links
|
||
|
|
"e_list ; # load for PDF links
|
||
|
|
|
||
|
|
if ($iaction eq 'update' or $iaction eq 'save'){
|
||
|
|
&common_min_extra_crumb("list-$lcpage\s","List $ucfirstpage\s") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our $open_new_tab = qq~target="_blank"~ ; # opens booking page in a new tab
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub quote_list {
|
||
|
|
|
||
|
|
# our @sql_col_display = ("nr","date","customer","user","event","venue","location","sports_type","date_from","date_to","days","type") ;
|
||
|
|
# our @sql_col_display = ("nr","event_start","event_end","date_added","customer","user","event","venue","location","sports_type","days","type") ;
|
||
|
|
|
||
|
|
if ($usertype eq 'support') {
|
||
|
|
our @sql_col_display = ("nr","event_start","days","event","location","sport","system_name","club_names","operators") ;
|
||
|
|
our @col_display_excel = @sql_col_display ;
|
||
|
|
} else {
|
||
|
|
our @sql_col_display = ("nr","event_start","event_end","days","date_added","customer","user","event","venue","location","sport","type","operators") ;
|
||
|
|
if ($userid eq '24') {
|
||
|
|
# if ($glod_user_level > 3) {
|
||
|
|
push @sql_col_display, "amount" ;
|
||
|
|
push @sql_col_display, "invoice_nr" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our @col_display_excel = ("nr","event","event_start","event_end","days","type_of_system","system_details","system_name","sport_type","cities","region","venue","club_names","operators","client","poc_name","poc_contact_nr","category_1","category_1_details","category_2","category_2_details","format_of_title") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
push @sql_col_display, "" ;
|
||
|
|
|
||
|
|
&report_xlsx_export_header_events("Events",'events') ;
|
||
|
|
|
||
|
|
my @month_fullname = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") ; # if ($i{export_to_excel}) { &report_xls_export_header("Event Quotes",'event_quotes') ; }
|
||
|
|
my @day_of_week_text = ("", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") ;
|
||
|
|
|
||
|
|
foreach my $id (sort {$b <=> $a} keys %{$db{$tables}}) {
|
||
|
|
|
||
|
|
next unless $id ;
|
||
|
|
|
||
|
|
my $quote_expiry = $db{$tables}{$id}{quote_expiry} ; $quote_expiry =~ s/\-//iog ;
|
||
|
|
my $invoice_nr = $db{$tables}{$id}{invoice_nr} ;
|
||
|
|
my $quote_accepted = $db{$tables}{$id}{quote_accepted} ;
|
||
|
|
my $quote_pending = $db{$tables}{$id}{quote_pending} ;
|
||
|
|
my $quote_cancelled = $db{$tables}{$id}{quote_cancelled} ;
|
||
|
|
my $quote_completed = $db{$tables}{$id}{quote_completed} ;
|
||
|
|
my $quote_created = $db{$tables}{$id}{quote_created} ;
|
||
|
|
my $quote_rejected = $db{$tables}{$id}{quote_rejected} ;
|
||
|
|
my @cat_details = split('\|;\|',$db{$tables}{$id}{category_details}) ;
|
||
|
|
|
||
|
|
if ($quote_completed) {
|
||
|
|
$sortprefix = 'd' ;
|
||
|
|
} elsif ($quote_accepted) {
|
||
|
|
$sortprefix = 'c' ;
|
||
|
|
} elsif ($quote_rejected) {
|
||
|
|
$sortprefix = 'x' ;
|
||
|
|
} elsif ($quote_cancelled) {
|
||
|
|
$sortprefix = 'z' ;
|
||
|
|
} elsif ($quote_created) { # create by schools_manager
|
||
|
|
$sortprefix = 'a' ;
|
||
|
|
} elsif ($quote_pending) {
|
||
|
|
$sortprefix = 'b' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($usertype eq 'support') {
|
||
|
|
next unless $quote_accepted && !$quote_completed ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# if ($quote_expiry and $quote_expiry<"$now_year$now_mm$now_dd" and $iaction ne 'report' and $iaction ne 'accepted' and $iaction ne 'closed' and $iaction ne 'all') { next ; }
|
||
|
|
|
||
|
|
my $quote_date = $db{$tables}{$id}{quote_date} ; $quote_date =~ s/\-//iog ;
|
||
|
|
|
||
|
|
$yr = substr($quote_date, 0, 4) ;
|
||
|
|
$mm = substr($quote_date, 4, 2) ;
|
||
|
|
$dd = substr($quote_date, 6, 2) ;
|
||
|
|
|
||
|
|
my ($yr2,$mm2,$dd2) = Add_Delta_Days($yr,$mm,$dd,60); #
|
||
|
|
|
||
|
|
$mm2 = sprintf("%02s", $mm2) ;
|
||
|
|
$dd2 = sprintf("%02s", $dd2) ;
|
||
|
|
|
||
|
|
$quote_date = "$yr2$mm2$dd2" ;
|
||
|
|
|
||
|
|
if ($quote_date && $quote_date < "$now_year$now_mm$now_dd" && $quote_accepted!=1 &&
|
||
|
|
$iaction ne 'report' && $iaction ne 'accepted' && $iaction ne 'closed' && $iaction ne 'all' &&
|
||
|
|
$i{options} ne 'accepted' && $i{options} ne 'closed' && $i{options} ne 'all')
|
||
|
|
{ next ; }
|
||
|
|
|
||
|
|
$print_tbody .= qq~<tr>~ ;
|
||
|
|
|
||
|
|
$xlsxcol=0;
|
||
|
|
|
||
|
|
my $quote_nr = $db{$tables}{$id}{quote_nr} ;
|
||
|
|
|
||
|
|
foreach (@sql_col_display) {
|
||
|
|
unless ($_) { next ; } # blank for the buttons column
|
||
|
|
my $val = $db{$tables}{$id}{$_} ;
|
||
|
|
my $align = qq~ class="dt-center"~ ;
|
||
|
|
my $nowrap = '' ;
|
||
|
|
|
||
|
|
# if ($_ eq 'event_end') { $val = substr($db{$tables}{$id}{date_to},0,10) ; $align = qq~ class="dt-center" style="width:6.9%"~ ; }
|
||
|
|
# elsif ($_ eq 'event_start') { $val = substr($db{$tables}{$id}{date_from},0,10) ; $nowrap = 'nowrap' ; }
|
||
|
|
if ($_ eq 'event_end') { $val = substr($db{$tables}{$id}{date_to},0,16) ; $align = qq~ class="dt-center"~ ; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'event_start') { my ($dy,$dm,$dd,$th,$tm,$ts) = &common_min_split_sql_date_time($db{$tables}{$id}{date_from}) ; my $sccyymmddhrmnsc = $dy . $dm . $dd . $th . $tm . $ts ; $val = "<span style='display:none'>$sortprefix$sccyymmddhrmnsc</span>" . substr($db{$tables}{$id}{date_from},0,16) ; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'event') { $val = $db{$tables}{$id}{ref} ; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'customer') { $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'date_added') { $val = $db{$tables}{$id}{quote_date} ; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'curr') { $val = $db{$tables}{$id}{currency} ; }
|
||
|
|
elsif ($_ eq 'location') { $val = ($db{$tables}{$id}{city} & $db{$tables}{$id}{reg_code}) ? "$db{$tables}{$id}{city}, $db{$tables}{$id}{reg_code}" : ($db{$tables}{$id}{city}) ? $db{$tables}{$id}{city} : $db{$tables}{$id}{reg_code} ; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'country_id') { $val = $db{$tables}{$id}{country} ; }
|
||
|
|
elsif ($_ eq 'days') { $val = $db{$tables}{$id}{qty} ; }
|
||
|
|
elsif ($_ eq 'type') { my $txt = uc substr($db{$tables}{$id}{event_type},0,1); $val = qq~<a href="#" data-title="$db{$tables}{$id}{event_type}" data-toggle="tooltip" data-placement="left"><strong>$txt</strong></a>~; $nowrap = 'nowrap' ; }
|
||
|
|
elsif ($_ eq 'amount') { my $ttl = sprintf("%0.2f",($db{$tables}{$id}{grand_total})) ; $val = &common_commify($ttl) ; }
|
||
|
|
elsif ($_ eq 'system_name') {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $event_id (split(";",$db{$tables}{$id}{event_system_id_multiple})) {
|
||
|
|
$val .= qq~$db{event_systems}{$event_id}{name} [$db{event_systems}{$event_id}{description}], ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
} elsif ($_ eq 'club_names') {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $club_id (split(";",$db{$tables}{$id}{club_ids})) {
|
||
|
|
$val .= qq~$db{clubs}{$club_id}{name}, ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
} elsif ($_ eq 'operators') {
|
||
|
|
$val = '' ; $op_cnt = 0 ;
|
||
|
|
my %seen_op_id = () ;
|
||
|
|
my @op_ids = split(/,/,$db{$tables}{$id}{operator_ids}) ;
|
||
|
|
for my $op_id (@op_ids) {
|
||
|
|
next if $seen_op_id{$op_id} || !$op_id ;
|
||
|
|
$seen_op_id{$op_id} = 1 ; $op_cnt++;
|
||
|
|
$val .= qq~$name{$op_id}<br>~ ;
|
||
|
|
}
|
||
|
|
foreach my $op_ids (split(/\|/,$db{$tables}{$id}{daily_operator_ids})) {
|
||
|
|
foreach my $opid (split(/\;/,$op_ids)) {
|
||
|
|
next if $seen_op_id{$opid} || !$opid ;
|
||
|
|
$seen_op_id{$opid} = 1 ; $op_cnt++;
|
||
|
|
$val .= qq~$name{$opid}<br>~ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$val = substr($val,0,-4) if $val ;
|
||
|
|
# $val = qq~<a class="btn btn-primary btn-xs" href="#" data-title="$val" data-toggle="tooltip" data-placement="left"><i class="glyphicon glyphicon-user"></i></a>~ if $val ;
|
||
|
|
$glyph_icon = ($op_cnt > 1) ? qq~<i class="glyphicons glyphicons-group"></i>~ : qq~<i class="glyphicons glyphicons-user"></i>~ ;
|
||
|
|
$val = qq~<a href="#" data-title="$val" data-toggle="tooltip" data-placement="left">$glyph_icon</a>~ if $val ;
|
||
|
|
|
||
|
|
} elsif ($_ eq 'venue') {
|
||
|
|
my @oids = split(/\,/,$db{$tables}{$id}{organisation_ids}) ;
|
||
|
|
my @venues = map { $organisation{$_} } @oids;
|
||
|
|
$val = join(", ",@venues) ;
|
||
|
|
# foreach $_oid (@oids) {
|
||
|
|
# $val .= $organisation{$_oid} . ',' ;
|
||
|
|
# }
|
||
|
|
# chop $val ;
|
||
|
|
} elsif ($_ eq 'sport') {
|
||
|
|
my @sptyps = split(/\,/,$db{$tables}{$id}{sport_type_ids}) ;
|
||
|
|
my @sports = map { $sort_type{$_} } @sptyps;
|
||
|
|
$val = join(", ",@sports) ; # foreach $_sp (@sptyps) { $val .= $sort_type{$_sp} . ', ' ; }
|
||
|
|
# chop $val if $val ;
|
||
|
|
} elsif ($_ eq 'nr') {
|
||
|
|
|
||
|
|
$val = &common_min_get_event_quote_button($id,$tables) ;
|
||
|
|
|
||
|
|
|
||
|
|
# my $class = 'info' ; my $style = '' ;
|
||
|
|
# if ($quote_completed) {
|
||
|
|
# $class = 'success' ; # green
|
||
|
|
# $tt_txt = 'Completed' ;
|
||
|
|
# } elsif ($quote_accepted) {
|
||
|
|
# $class = 'info' ; # blue
|
||
|
|
# $tt_txt = 'Accepted' ;
|
||
|
|
# my @fixed_system_overall_statuses = split(/\;/,$db{$tables}{$id}{fixed_system_overall_status}) ;
|
||
|
|
# my @event_system_ids = split(/\;/,$db{$tables}{$id}{event_system_id_multiple}) ;
|
||
|
|
# my $event_sys_cnt = 0 ; my $event_sys_test_status = 0 ; my $got_some_fixed = 0 ; my $fixed_status_color = '164473' ; # Dark Blue
|
||
|
|
# foreach my $event_id (@event_system_ids) {
|
||
|
|
# if ($db{event_systems}{$event_id}{system_type} eq 'fixed') {
|
||
|
|
# $tt_txt = 'Accepted and tests show All Clear for the Fixed Systems' if $tt_txt eq 'Accepted' ;
|
||
|
|
# $got_some_fixed = 1 ;
|
||
|
|
# if ($fixed_system_overall_statuses[$event_sys_cnt] == 3) { # Not Clear
|
||
|
|
# $fixed_status_color = '5d09d3' ; # Dark Purple
|
||
|
|
# $tt_txt = 'Accepted but Not Clear on some Fixed Systems' ;
|
||
|
|
# } elsif ($fixed_system_overall_statuses[$event_sys_cnt] == 2) { # Sound Issue
|
||
|
|
# $fixed_status_color = '5d092c' ;
|
||
|
|
# $tt_txt = 'Accepted but Sound Issue found on some Fixed Systems' ;
|
||
|
|
# }
|
||
|
|
# }
|
||
|
|
# $event_sys_cnt++;
|
||
|
|
# }
|
||
|
|
# if ($got_some_fixed) { $style = "style='background-color:#$fixed_status_color;border-color:#$fixed_status_color'"; }
|
||
|
|
# } elsif ($quote_rejected) {
|
||
|
|
# $style = 'style="background-color:#ca0ad3;border-color:#ca0ad3"'; # purple
|
||
|
|
# $tt_txt = 'Rejected' ;
|
||
|
|
# } elsif ($quote_cancelled) {
|
||
|
|
# $class = 'danger' ; # red
|
||
|
|
# $tt_txt = 'Cancelled' ;
|
||
|
|
# } elsif ($quote_created) { # create by schools_manager
|
||
|
|
# $style = 'style="background-color:#f6e305;border-color:#f6e305"'; # yellow
|
||
|
|
# $tt_txt = 'Pending, created by School Manager' ;
|
||
|
|
# } elsif ($quote_pending) {
|
||
|
|
# $class = 'warning' ; # orange
|
||
|
|
# $tt_txt = 'Pending' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# my $tt = qq~data-toggle="tooltip" data-placement="right" data-title="$tt_txt"~;
|
||
|
|
|
||
|
|
# # &common_debug("$quote_nr quote_created [$quote_created] $style") if $quote_created ;
|
||
|
|
|
||
|
|
# # $val = ($is_schools_manager) ? qq~<a class="btn btn-$class btn-xs" href="javascript:void(0);" $style>$quote_nr</a>~ : qq~<a class="btn btn-$class btn-xs" href="javascript:editMinItem('$id');" $style>$quote_nr</a>~ ;
|
||
|
|
# # $val = ($glod_user_level < 4 || $quote_cancelled) ? qq~<a class="btn btn-$class btn-xs" href="javascript:void(0);" $style $tt>$quote_nr</a>~ : qq~<a class="btn btn-$class btn-xs" href="javascript:editMinItem('$id');" $style $tt>$quote_nr</a>~ ;
|
||
|
|
# $val = ($glod_user_level < 3 || $quote_cancelled) ? qq~<a class="btn btn-$class btn-xs" href="javascript:void(0);" $style $tt>$quote_nr</a>~ : qq~<a class="btn btn-$class btn-xs" href="javascript:editMinItem('$id');" $style $tt>$quote_nr</a>~ ;
|
||
|
|
}
|
||
|
|
elsif ($_ eq 'user') {
|
||
|
|
$val = '' ;
|
||
|
|
# $val = $db{users}{$db{$tables}{$id}{user_id}}{username} if $db{$tables}{$id}{user_id} ;
|
||
|
|
$val = $username{$db{$tables}{$id}{user_id}} ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_tbody .= qq~<td $nowrap $align>$val</td>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $start_date = substr($db{$tables}{$id}{date_from},0,10);
|
||
|
|
my $end_date = substr($db{$tables}{$id}{date_to},0,10);
|
||
|
|
# my @event_dates = () ;
|
||
|
|
|
||
|
|
my $year = substr($db{$tables}{$id}{date_from}, 0, 4) ;
|
||
|
|
my $month = substr($db{$tables}{$id}{date_from}, 5, 2) ;
|
||
|
|
my $day = substr($db{$tables}{$id}{date_from}, 8, 2) ;
|
||
|
|
|
||
|
|
my $year_end = substr($db{$tables}{$id}{date_to}, 0, 4 ) ;
|
||
|
|
my $month_end = substr($db{$tables}{$id}{date_to}, 5, 2 ) ;
|
||
|
|
my $day_end = substr($db{$tables}{$id}{date_to}, 8, 2 ) ;
|
||
|
|
|
||
|
|
# push @event_dates, $year . '-' . $month . '-' . $day ;
|
||
|
|
|
||
|
|
# my $Dd = Delta_Days($year,$month,$day, $year_end,$month_end,$day_end);
|
||
|
|
|
||
|
|
my $row_count = 0;
|
||
|
|
# for my $event_date (sort @event_dates) {
|
||
|
|
$xlsxcol = 0 ;
|
||
|
|
$row_count++ ;
|
||
|
|
|
||
|
|
if (($quote_created and not $quote_accepted and not $quote_completed) or ($quote_completed and not $quote_created and not $quote_accepted and not $quote_completed)) {
|
||
|
|
$xlsxrow-- ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my @event_sys = split(/;/,$db{$tables}{$id}{event_system_id_multiple}) ;
|
||
|
|
my $cnt_event_sys = 0 ;
|
||
|
|
foreach (split(/;/,$db{$tables}{$id}{event_system_id_multiple})) {
|
||
|
|
$cnt_event_sys++ ;
|
||
|
|
}
|
||
|
|
$cnt_event_sys = 1 unless $cnt_event_sys ;
|
||
|
|
|
||
|
|
foreach my $col_name (@col_display_excel) {
|
||
|
|
|
||
|
|
next if ($quote_created and not $quote_accepted and not $quote_completed) or ($quote_completed and not $quote_created and not $quote_accepted and not $quote_completed) ;
|
||
|
|
|
||
|
|
$val = $db{$tables}{$id}{$col_name} ;
|
||
|
|
|
||
|
|
# $xlsxrow-- if $col_name ne 'event_start' ;
|
||
|
|
|
||
|
|
if ($col_name eq 'event_end') { $val = substr($db{$tables}{$id}{date_to},0,16) ; }
|
||
|
|
elsif ($col_name eq 'event_start') { $val = substr($db{$tables}{$id}{date_from},0,16) ; }
|
||
|
|
elsif ($col_name eq 'nr') {
|
||
|
|
$val = $id ;
|
||
|
|
if ($quote_completed) {
|
||
|
|
for (1 .. $cnt_event_sys) { &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format80) ; $xlsxrow++; } # green
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
} elsif ($quote_accepted) {
|
||
|
|
for (1 .. $cnt_event_sys) { &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format77) ; $xlsxrow++; } # blue
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
} elsif ($quote_created) { # create by schools_manager
|
||
|
|
# next ;
|
||
|
|
# &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format78) ; # yellow
|
||
|
|
} elsif ($quote_pending) {
|
||
|
|
# next ;
|
||
|
|
# &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format79) ; # orange
|
||
|
|
} elsif ($quote_cancelled) {
|
||
|
|
for (1 .. $cnt_event_sys) { &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format81) ; $xlsxrow++; } # red
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
}
|
||
|
|
$xlsxcol++ ;
|
||
|
|
next ;
|
||
|
|
} elsif ($col_name eq 'event') {
|
||
|
|
$val = $db{$tables}{$id}{ref} ;
|
||
|
|
for (1 .. $cnt_event_sys) { &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol,$val,$format82) ; $xlsxrow++; }
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
$xlsxcol++;
|
||
|
|
next ;
|
||
|
|
} elsif ($col_name eq 'date') {
|
||
|
|
$val = substr($event_date, 5, 2 ) ;
|
||
|
|
$val = substr($event_date, 8, 2 ) . ' ' . $month_fullname[$val - 1] . ' ' . substr($event_date, 0, 4 ) ;
|
||
|
|
} elsif ($col_name eq 'days') {
|
||
|
|
$val = $db{$tables}{$id}{qty} ;
|
||
|
|
} elsif ($col_name eq 'type_of_system') {
|
||
|
|
$val = $db{$tables}{$id}{event_type} ;
|
||
|
|
} elsif ($col_name eq 'system_details') {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $type_id (split(",",$db{$tables}{$id}{type_details_id})) {
|
||
|
|
$val .= qq~$db{event_type_details}{$type_id}{name}, ~;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
} elsif ($col_name eq 'system_name') {
|
||
|
|
|
||
|
|
for (0 .. $cnt_event_sys-1) {
|
||
|
|
$val = qq~$db{event_systems}{$event_sys[$_]}{name}~ unless $db{event_systems}{$event_sys[$_]}{description} ;
|
||
|
|
$val = qq~$db{event_systems}{$event_sys[$_]}{name} [$db{event_systems}{$event_sys[$_]}{description}]~ if $db{event_systems}{$event_sys[$_]}{description} ;
|
||
|
|
if ($event_date ne $end_date){
|
||
|
|
&report_write_events($val, 0) ;
|
||
|
|
} else {
|
||
|
|
&report_write_events($val, 1) ;
|
||
|
|
}
|
||
|
|
$xlsxrow++;
|
||
|
|
}
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
|
||
|
|
} elsif ($col_name eq 'sport_type') {
|
||
|
|
my @sptyps2 = split(/\,/,$db{$tables}{$id}{sport_type_ids}) ;
|
||
|
|
$val = '' ;
|
||
|
|
foreach $_sp (@sptyps2) {
|
||
|
|
$val .= qq~$sort_type{$_sp} & ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
# } elsif ($_ eq 'cities' && $row_count == 1) {
|
||
|
|
} elsif ($col_name eq 'cities') {
|
||
|
|
$val = qq~$db{$tables}{$id}{city}~ ;
|
||
|
|
if ($db{$tables}{$id}{city_id} =~ /,/) {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $c_id (split(",",$db{$tables}{$id}{city_id})) {
|
||
|
|
$val .= qq~$db{cities}{$c_id}{city}, ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
}
|
||
|
|
} elsif ($col_name eq 'region') {
|
||
|
|
$val = qq~$db{$tables}{$id}{region}~ ;
|
||
|
|
} elsif ($col_name eq 'venue') {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $venue_id (split(",",$db{$tables}{$id}{organisation_ids})) {
|
||
|
|
$val .= qq~$organisation{$venue_id} & ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ; chop $val if $val ;
|
||
|
|
} elsif ($col_name eq 'club_names') {
|
||
|
|
$val = '' ;
|
||
|
|
foreach my $club_id (split(";",$db{$tables}{$id}{club_ids})) {
|
||
|
|
$val .= qq~$db{clubs}{$club_id}{name}, ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
}
|
||
|
|
|
||
|
|
elsif ($col_name eq 'operators') {
|
||
|
|
$val = '' ;
|
||
|
|
# my @op_split3 = split(/;~;/,$db{$table}{$id}{operator_ids}) ;
|
||
|
|
# foreach my $op_id (split(/\,/,$op_split3[0])) {
|
||
|
|
foreach my $op_id (split(/\,/,$db{$tables}{$id}{operator_ids})) {
|
||
|
|
$val .= qq~$name{$op_id} [$email{$op_id}], ~ ;
|
||
|
|
}
|
||
|
|
chop $val if $val ; chop $val if $val ;
|
||
|
|
}
|
||
|
|
elsif ($col_name eq 'client') {
|
||
|
|
$val = $db{$tables}{$id}{customer} ;
|
||
|
|
} elsif ($col_name eq 'category_1') {
|
||
|
|
$val = $db{event_quotes_categories}{$db{$tables}{$id}{category_id_1}}{category} ;
|
||
|
|
} elsif ($col_name eq 'category_1_details') {
|
||
|
|
$val = $cat_details[0] ;
|
||
|
|
} elsif ($col_name eq 'category_2') {
|
||
|
|
$val = $db{event_quotes_categories}{$db{$tables}{$id}{category_id_2}}{category} ;
|
||
|
|
} elsif ($col_name eq 'category_2_details') {
|
||
|
|
$val = $cat_details[1] ;
|
||
|
|
} elsif ($row_count != 1) {
|
||
|
|
# $val = '' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($col_name ne 'system_name') {
|
||
|
|
|
||
|
|
for (1 .. $cnt_event_sys) {
|
||
|
|
if ($event_date ne $end_date){
|
||
|
|
&report_write_events($val, 0) ;
|
||
|
|
} else {
|
||
|
|
&report_write_events($val, 1) ;
|
||
|
|
}
|
||
|
|
$xlsxrow++;
|
||
|
|
}
|
||
|
|
$xlsxrow = $xlsxrow - $cnt_event_sys ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# }
|
||
|
|
# ------------------------------------------------------------------------- HTML AFTER
|
||
|
|
$xlsxcol++;
|
||
|
|
}
|
||
|
|
|
||
|
|
$xlsxrow = $cnt_event_sys + $xlsxrow ;
|
||
|
|
|
||
|
|
my $quote_nr = $quote_nr ; $quote_nr =~ s/'//iog; unless ($quote_nr) { $quote_nr = $id ; }
|
||
|
|
|
||
|
|
# if ($useropts{boss}{$username} or $useropts{super}{$username}) { }
|
||
|
|
|
||
|
|
# my $view_butt = qq~<a class="btn btn-info btn-xs" href="javascript:viewMinItem('$id');"><i class="glyphicon glyphicon-edit icon-white"></i></a>~ ;
|
||
|
|
my $edit_butt = qq~<a class="btn btn-info btn-xs" href="javascript:editMinItem('$id');"><i class="glyphicon glyphicon-edit icon-white"></i></a>~ ;
|
||
|
|
# my $delete_butt = ($glod_user_level < 4 || $quote_accepted || $quote_completed || $quote_rejected || $quote_pending) ? '' : qq~<a class="btn btn-danger btn-xs" href="javascript:deleteMinItem('$quote_nr','$id')"><i class="glyphicon glyphicon-trash icon-white"></i></a>~ ;
|
||
|
|
my $delete_butt = ($glod_user_level < 3 || $quote_accepted || $quote_completed || $quote_rejected || $quote_pending) ? '' : qq~<a class="btn btn-danger btn-xs" href="javascript:deleteMinItem('$quote_nr','$id')"><i class="glyphicon glyphicon-trash icon-white"></i></a>~ ;
|
||
|
|
|
||
|
|
my $copy_butt = qq~<a class="btn btn-success btn-xs" href="javascript:copyMinItem('$id');" title="Copy" data-toggle="tooltip" data-placement="top"><i class="glyphicon glyphicon-retweet icon-white"></i></a>~ ;
|
||
|
|
|
||
|
|
# my $copy_butt = qq~<a class="btn btn-success btn-xs" href="javascript:copyMinItem('$id');" title="Copy" data-toggle="tooltip" data-placement="top"><i class="glyphicon glyphicon-retweet icon-white"></i></a>~;
|
||
|
|
# my $pdf_butt = qq~<a class="btn btn-primary btn-xs" href="javascript:dlgMdl('$useropts{scripts}/pdf/event_quote_pdf.pl?$id&$tabcnt{$db{$tables}{$id}{activetab}}&$tabsec{$db{$tables}{$id}{activetab}}','EVENT QUOTE $quote_nr','','waybill-dialog');"><i class="glyphicon glyphicon-print"></i></a>~;
|
||
|
|
my $pdf_butt .= qq~<a class="btn btn-primary btn-xs" href="javascript:dlgMdl('$useropts{scripts}/pdf/event_details_pdf.pl?$id&&','EVENT DETAILS $quote_nr','','waybill-dialog');" data-title="Event Details PDF" data-toggle="tooltip" data-placement="left"><i class="glyphicon glyphicon-print"></i></a>~;
|
||
|
|
|
||
|
|
$email_butt = qq~<a id="email_$id" class="btn btn-default btn-xs" href="javascript:dlgMdl('$useropts{scripts}/dialog/event_email.pl?$id','EVENT EMAIL $quote_nr','','waybill-dialog');" style="background-color:rgb(70,69,69);border-color:rgb(70,69,69);"><i class="glyphicon glyphicon-envelope"></i></a>~;
|
||
|
|
|
||
|
|
my %emailed_op_ids = () ; my $all_op_ids = 1 ; my $cnt_op_ids = 0 ;
|
||
|
|
foreach my $op_id (split(/\;/,$db{$tables}{$id}{emailed_op_ids})) {
|
||
|
|
$emailed_op_ids{$op_id} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach my $op_id2 (split(/\,/,$db{$tables}{$id}{operator_ids})) {
|
||
|
|
$all_op_ids = 0 if $op_id2 and not $emailed_op_ids{$op_id2} ;
|
||
|
|
$cnt_op_ids++ if $op_id2 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($all_op_ids and $cnt_op_ids) {
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("#email_$id").css({
|
||
|
|
"background-color": "lightgrey",
|
||
|
|
"border-color": "lightgrey"
|
||
|
|
});
|
||
|
|
~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($glod_user_level < 3) {
|
||
|
|
$delete_butt = '' ;
|
||
|
|
if ($quote_completed || $quote_cancelled || $quote_rejected) {
|
||
|
|
$edit_butt = '' ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# $edit_butt = '' if $usertype eq 'support' ;
|
||
|
|
# $edit_butt = '' if $quote_cancelled && !$useropts{it}{$username};
|
||
|
|
|
||
|
|
$edit_butt = qq~$edit_butt ~ if $edit_butt ;
|
||
|
|
$copy_butt = qq~$copy_butt ~ if $copy_butt ;
|
||
|
|
$delete_butt = qq~$delete_butt ~ if $delete_butt ;
|
||
|
|
$pdf_butt = qq~$pdf_butt ~ if $pdf_butt ;
|
||
|
|
$email_butt = qq~$email_butt ~ if $email_butt ;
|
||
|
|
|
||
|
|
if ($quote_created and not $quote_completed and not $quote_accepted) {
|
||
|
|
$pdf_butt = qq~~ ; $email_butt = qq~~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# $email_butt = qq~<a class="btn btn-default btn-xs" href="#"><i class="glyphicon glyphicon-envelope icon-white"></i></a> ~ unless $email_butt ;
|
||
|
|
# $pdf_butt = qq~<a class="btn btn-default btn-xs" href="#"><i class="glyphicon glyphicon-print icon-white"></i></a> ~ unless $pdf_butt ;
|
||
|
|
|
||
|
|
$print_tbody .= qq~<td nowrap class="dt-center"> $edit_butt$copy_butt$delete_butt$pdf_butt$email_butt</td></tr>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$worksheet{$ws}->set_column(0,0,10) ;
|
||
|
|
$worksheet{$ws}->set_column(1,1,50) ;
|
||
|
|
$worksheet{$ws}->set_column(2,3,20) ;
|
||
|
|
$worksheet{$ws}->set_column(4,4,10) ;
|
||
|
|
$worksheet{$ws}->set_column(5,10,30) ;
|
||
|
|
$worksheet{$ws}->set_column(11,11,75) ;
|
||
|
|
$worksheet{$ws}->set_column(12,21,30) ;
|
||
|
|
|
||
|
|
&report_xlsx_export_footer('L',15,'events') ;
|
||
|
|
|
||
|
|
if ($usertype eq 'support') {
|
||
|
|
$fnsortcol = 1 ; # start date
|
||
|
|
$fnsortorder = 'asc' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# &common_min_extra_crumb("search-$lcpage\s","Search Screen") if $glod_user_level > 3 ;
|
||
|
|
&common_min_extra_crumb("filter-$lcpage\s","Search Screen") if $glod_user_level > 3 ;
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub thead {
|
||
|
|
|
||
|
|
&common_min_thead ;
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub add_db_fields {
|
||
|
|
|
||
|
|
&hidden_fields ;
|
||
|
|
$hidden{id} = 2 ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub edit_db_fields {
|
||
|
|
|
||
|
|
&hidden_fields ;
|
||
|
|
$hidden{id} = 1 ;
|
||
|
|
# $readonly{ref} = 'READONLY' ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub view_db_fields {
|
||
|
|
|
||
|
|
&hidden_fields ;
|
||
|
|
$hidden{id} = 1 ;
|
||
|
|
$label{ref} = 1 ;
|
||
|
|
$label{qty} = 1 ;
|
||
|
|
$label{date_from} = 1 ;
|
||
|
|
$label{date_to} = 1 ;
|
||
|
|
$label{sport_type_ids} = 1 ;
|
||
|
|
$label{region_id} = 1 ;
|
||
|
|
$label{city_id} = 1 ;
|
||
|
|
$label{organisation_ids} = 1 ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub hidden_fields {
|
||
|
|
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
if ($glod_user_level < 3) {
|
||
|
|
|
||
|
|
$ignore{type_of_system} = 1 ;
|
||
|
|
$ignore{system_details} = 1 ;
|
||
|
|
$ignore{system_name} = 1 ;
|
||
|
|
$ignore{operators} = 1 ;
|
||
|
|
# $ignore{operator_ids} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($glod_user_level < 4) {
|
||
|
|
# if ($glod_user_level < 3) {
|
||
|
|
$ignore{po_nr} = 1 ;
|
||
|
|
$ignore{income} = 1 ;
|
||
|
|
$ignore{sub_total} = 1 ;
|
||
|
|
$ignore{vat_total} = 1 ;
|
||
|
|
$ignore{grand_total} = 1 ;
|
||
|
|
$ignore{custom_set} = 1 ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
# $ignore{custom_set} = 1 ;
|
||
|
|
|
||
|
|
$ignore{event_system_calibration_ids} = 1 ;
|
||
|
|
$ignore{event_system_calibration_status} = 1 ;
|
||
|
|
|
||
|
|
$ignore{category_1_details} = 1 ;
|
||
|
|
$ignore{category_2_details} = 1 ;
|
||
|
|
|
||
|
|
$ignore{iattachslip} = 1 ;
|
||
|
|
$ignore{iattachupload_1} = 1 ;
|
||
|
|
$ignore{iattachupload_2} = 1 ;
|
||
|
|
$ignore{iattachupload_3} = 1 ;
|
||
|
|
|
||
|
|
$ignore{iattachupload_1} = 1 ;
|
||
|
|
$ignore{iattachupload_2} = 1 ;
|
||
|
|
$ignore{iattachupload_3} = 1 ;
|
||
|
|
|
||
|
|
$ignore{sport_type_ids_readonly} = 1 ;
|
||
|
|
$ignore{region_id_readonly} = 1 ;
|
||
|
|
$ignore{city_id_readonly} = 1 ;
|
||
|
|
$ignore{organisation_ids_readonly} = 1 ;
|
||
|
|
|
||
|
|
# $ignore{date_to} = 1 ;
|
||
|
|
# $ignore{date_from} = 1 ;
|
||
|
|
$ignore{iaction} = 1 ;
|
||
|
|
$required{qty} = 4 ; # number
|
||
|
|
$required{quote_nr} = 1 ;
|
||
|
|
$readonly{quote_nr} = 'READONLY' ;
|
||
|
|
$required{quote_to} = 1 ;
|
||
|
|
$required{currency} = 1 ;
|
||
|
|
$required{roe} = 1 ;
|
||
|
|
$required{ref} = 1 ;
|
||
|
|
$required{region_id} = 1 ;
|
||
|
|
$required{city_id} = 1 ;
|
||
|
|
|
||
|
|
$required{poc_name} = 1 ;
|
||
|
|
$required{poc_contact_nr} = 1 ;
|
||
|
|
$required{category_id_1} = 1 ;
|
||
|
|
$required{category_1_details} = 1 ;
|
||
|
|
$required{category_id_2} = 1 ;
|
||
|
|
$required{category_2_details} = 1 ;
|
||
|
|
|
||
|
|
$hidden{quote_date} = 2 ;
|
||
|
|
$hidden{last_update} = 2 ;
|
||
|
|
$hidden{user_id} = 2 ;
|
||
|
|
$hidden{datetime} = 2 ;
|
||
|
|
$ignore{saveandexit} = 1 ;
|
||
|
|
$ignore{income} = 1 ;
|
||
|
|
$ignore{expenses} = 1 ;
|
||
|
|
$trigger_jquery_raw .= qq~var curr_changed=0;~;
|
||
|
|
$trigger_jquery_raw .= qq~var curr_changedW=0;~;
|
||
|
|
$trigger_jquery_raw .= qq~\$.validate();~;
|
||
|
|
$extra_js .= qq~<script src="$useropts{'js'}/jquery.form-validator.min.js"></script>~;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub add_screen {
|
||
|
|
|
||
|
|
# &db_open_ro;
|
||
|
|
# $db_ignore_open_close=1;
|
||
|
|
|
||
|
|
$selected{max_cams}{10} = 'SELECTED';
|
||
|
|
&select_opts('') ;
|
||
|
|
%col_name = () ;
|
||
|
|
&db_min_ro($table,'*',"id > 1 AND id < 10",'','') ;
|
||
|
|
|
||
|
|
$page_title = substr($page_title,0,-1) ;
|
||
|
|
$db{$table}{''}{quote_nr} = &db_min_get_max($table,'quote_nr') ;
|
||
|
|
$db{$table}{''}{qty} = 1 ;
|
||
|
|
|
||
|
|
# if ($username eq 'rory') { $db{$table}{''}{quote_nr} = 1000 ; }
|
||
|
|
|
||
|
|
&add_db_fields ;
|
||
|
|
|
||
|
|
&build_boxes('','save') ;
|
||
|
|
|
||
|
|
local $all_select_ids_string = join(",",@all_select_ids) ;
|
||
|
|
$trigger_jquery_raw .= qq~\$("$all_select_ids_string").chosen({ allow_single_deselect:true });~ ;
|
||
|
|
|
||
|
|
# $db_ignore_open_close=0;
|
||
|
|
# &db_close_conn;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub view_screen {
|
||
|
|
|
||
|
|
&edit_screen ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub edit_screen {
|
||
|
|
|
||
|
|
unless ($i{id}) { $warning = qq(NO ID) ; return ; }
|
||
|
|
|
||
|
|
# my $users_cols = "id,name,user_type" ; $users_cols = "id,name,user_type,region_ids" if $glod_user_level < 4 ;
|
||
|
|
my $users_cols = "id,name,user_type" ; $users_cols = "id,name,user_type,region_ids" if $glod_user_level < 3 ;
|
||
|
|
|
||
|
|
&db_min_ro('users',$users_cols,"`user_type` LIKE 'casual%' OR `user_type` = 'schools_manager'",'','') ;
|
||
|
|
foreach (keys %{$db{users}}) {
|
||
|
|
next if $db{users}{$_}{user_type} eq 'schools_manager' ;
|
||
|
|
$casual_name{$_} = $db{users}{$_}{name} ;
|
||
|
|
$casual_type{$_} = uc substr($db{users}{$_}{user_type},-1,1) ;
|
||
|
|
$casuals{$_} = 1 if substr($db{users}{$_}{user_type},0,6) eq 'casual' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# unless ($iaction eq 'save' or $iaction eq 'update') {
|
||
|
|
&db_min_ro($table,'*',"id='$i{id}'",'','') ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
|
||
|
|
# my @abcdef = split(/ /,$db{$table}{$i{id}}{date_from}) ;
|
||
|
|
|
||
|
|
# my ($year1,$month1,$day1) = split(/-/,$abcdef[0]) ;
|
||
|
|
|
||
|
|
# my ($hour1,$min1,$sec1) = split(/:/,$abcdef[1]) ;
|
||
|
|
|
||
|
|
# $trigger_jquery .= qq~
|
||
|
|
|
||
|
|
# const date1 = new Date("$year1-$month1-$day1T$hour1:$min1:$sec1");
|
||
|
|
# const date2 = new Date("$now_year-$now_mm-$now_ddT$now_hour:$now_min:$now_sec");
|
||
|
|
|
||
|
|
# let timeDiffMillis = Math.abs(date1 - date2);
|
||
|
|
# let timeDiffHours = timeDiffMillis / (1000 * 60 * 60);
|
||
|
|
|
||
|
|
# if (date1 >= date2 && timeDiffHours <= 18) {
|
||
|
|
# \$("#cancelbutt").removeClass('btn btn-danger').addClass('btn btn-void');
|
||
|
|
# }
|
||
|
|
|
||
|
|
# ~ ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
my @system_name_ids = split(";",$db{$table}{$i{id}}{event_system_id_multiple}) ;
|
||
|
|
my @club_ids = split(";",$db{$table}{$i{id}}{club_ids}) ;
|
||
|
|
my @op_ids = split(",",$db{$table}{$i{id}}{operator_ids}) ;
|
||
|
|
|
||
|
|
my $cnt_rows = 0 ;
|
||
|
|
for (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
$cnt_rows = $_ if $system_name_ids[$_ - 1] or $club_ids[$_ - 1] ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our @table_op_ids = () ;
|
||
|
|
our @multi_select_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] ;
|
||
|
|
}
|
||
|
|
for ($cnt_rows+1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
push @multi_select_op_ids,$op_ids[$_ - 1] if $op_ids[$_ - 1] ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our $quote_completed = $db{$table}{$i{id}}{quote_completed} ;
|
||
|
|
our $quote_accepted = $db{$table}{$i{id}}{quote_accepted} ;
|
||
|
|
our $quote_pending = $db{$table}{$i{id}}{quote_pending} ;
|
||
|
|
our $quote_cancelled = $db{$table}{$i{id}}{quote_cancelled} ;
|
||
|
|
our $quote_rejected = $db{$table}{$i{id}}{quote_rejected} ;
|
||
|
|
|
||
|
|
# our $cancel_butt = ($d_check[2] > $now_ccyymmddhrmnsc && $iaction eq 'edit' && ($quote_completed || $quote_accepted || $quote_pending) && ($glod_user_level > 2 || $is_schools_manager)) ? 1 : 0 ;
|
||
|
|
our $cancel_butt = ($iaction eq 'edit' && ($quote_completed || $quote_accepted || $quote_pending) && ($glod_user_level > 2 || $is_schools_manager)) ? 1 : 0 ;
|
||
|
|
our $invoice_exists = 1 if $db{$table}{$i{id}}{invoice_nr} ;
|
||
|
|
|
||
|
|
# if ($is_schools_manager) {
|
||
|
|
if ($is_schools_manager || $glod_user_level < 4) {
|
||
|
|
my @ed_from = &common_split_sql_time($db{$table}{$i{id}}{date_from}) ;
|
||
|
|
my @d_check = &common_add_delta_dhms($ed_from[0],$ed_from[1],$ed_from[2],$ed_from[3],$ed_from[4],$ed_from[5],0,-18,0,0) ; # go 18 hours back from event start
|
||
|
|
|
||
|
|
if ($d_check[2] < $now_ccyymmddhrmnsc) {
|
||
|
|
$cancel_butt = 0 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# &common_debug("cancel_butt=$cancel_butt [$i{id}] [$db{$table}{$i{id}}{date_from}] [($d_check[2] > $now_ccyymmddhrmnsc && iaction=$iaction eq 'edit' && (quote_completed=$quote_completed || quote_accepted=$quote_accepted || quote_pending=$quote_pending) && (glod_user_level=$glod_user_level > 2 || is_schools_manager=$is_schools_manager))]");
|
||
|
|
|
||
|
|
&db_min_ro('events','id,event_quote_nr,category,user_id,startdate,enddate',"event_quote_nr='$db{$table}{$i{id}}{quote_nr}'",'','') ;
|
||
|
|
|
||
|
|
$max_cams = $db{$table}{$i{id}}{max_cams} if $db{$table}{$i{id}}{max_cams} ;
|
||
|
|
|
||
|
|
$page_title = substr($page_title,0,-1) ;
|
||
|
|
$page_title .= " : $i{id}" ;
|
||
|
|
|
||
|
|
$custom_back_button = qq~ <button type="button" class="btn btn-default" onclick="window.location.assign('$useropts{domain}/list-event-quotes')">Back</button>~ ;
|
||
|
|
# $custom_back_button = qq~<a class="btn btn-default btn" href="" style="padding: 0px 3px 0px 3px;font-size:12px;$style" $tooltip>$val</a>~ ;
|
||
|
|
|
||
|
|
# our $open_new_tab = qq~target="_blank"~ ; # opens booking page in a new tab
|
||
|
|
&common_min_footer('id',"$lcpage\s");
|
||
|
|
|
||
|
|
&edit_db_fields ;
|
||
|
|
|
||
|
|
$selected{max_cams}{$db{$table}{$i{id}}{max_cams}} = 'SELECTED';
|
||
|
|
$selected{casual_worker}{$db{$table}{$i{id}}{casual_worker}} = 'SELECTED';
|
||
|
|
$selected{casual_worker_2}{$db{$table}{$i{id}}{casual_worker_2}} = 'SELECTED';
|
||
|
|
|
||
|
|
# my @assigned_users_a = split(/\:/,$db{$table}{$i{id}}{operator_names_type_a}) ;
|
||
|
|
# my @assigned_users_b = split(/\:/,$db{$table}{$i{id}}{operator_names_type_b}) ;
|
||
|
|
|
||
|
|
# for (@assigned_users_a){ $selected{operator_names_type_a}{$_} = 'SELECTED'; }
|
||
|
|
# for (@assigned_users_b){ $selected{operator_names_type_b}{$_} = 'SELECTED'; }
|
||
|
|
|
||
|
|
# $selected{operator_names_type_b}{$db{$table}{$i{id}}{operator_names_type_b}} = 'SELECTED';
|
||
|
|
|
||
|
|
&select_opts($i{id}) ;
|
||
|
|
|
||
|
|
our $saveandexit = 1 ;
|
||
|
|
|
||
|
|
&build_boxes($i{id},'update') ;
|
||
|
|
|
||
|
|
&common_min_extra_crumb("filter-$lcpage\s","Search $ucfirstpage\s") if $glod_user_level > 3 ;
|
||
|
|
|
||
|
|
local $all_select_ids_string = join(",",@all_select_ids) ;
|
||
|
|
$trigger_jquery_raw .= qq~\$("$all_select_ids_string").chosen({ allow_single_deselect:true });~ ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_boxes {
|
||
|
|
|
||
|
|
my ($id,$action) = @_ ;
|
||
|
|
|
||
|
|
our @jquery_trigger_fields = () ;
|
||
|
|
our @jquery_custom_vat_ids = () ;
|
||
|
|
our @jquery_duty_ids = () ;
|
||
|
|
our @jquery_workings_trigger_fields = () ;
|
||
|
|
|
||
|
|
push @jquery_trigger_fields, 'inputRoe' ;
|
||
|
|
push @jquery_workings_trigger_fields, 'inputRoe' ;
|
||
|
|
|
||
|
|
for (1 .. 15) {
|
||
|
|
push @jquery_workings_trigger_fields, "checkboxVat_workings_event_$_" ;
|
||
|
|
push @jquery_workings_trigger_fields, "checkboxExcl_workings_event_$_" ;
|
||
|
|
# push @jquery_workings_trigger_fields, "checkboxVat_$_\_workings_casual_users" ;
|
||
|
|
# push @jquery_workings_trigger_fields, "checkboxExcl_$_\_workings_casual_users" ;
|
||
|
|
}
|
||
|
|
&tab_curr_symbols;
|
||
|
|
|
||
|
|
foreach $col(keys %required) {
|
||
|
|
&common_min_forms_required ;
|
||
|
|
}
|
||
|
|
|
||
|
|
our $tab_cnt = 0 ;
|
||
|
|
|
||
|
|
&tab_load_vars;
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_start($table) ;
|
||
|
|
|
||
|
|
#--------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
<div class='row'>
|
||
|
|
<div class='col-md-12'>~ ;
|
||
|
|
&build_boxes_top($id);
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
#--------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~<div class='row'>~ ;
|
||
|
|
|
||
|
|
&tab_cnt;
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq(<div class="box col-md-12">
|
||
|
|
<ul class="nav nav-tabs" id="myTab">);
|
||
|
|
|
||
|
|
foreach (sort {$a<=>$b} keys %cntxt) {
|
||
|
|
my $tab_name = &tab_names($_) ; my $c_actv = '' ; # if ($_==1) { $c_actv = 'class="active"' ; }
|
||
|
|
|
||
|
|
# # if ($is_schools_manager) {
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
# $c_actv = ($_==2) ? 'class="active"' : '' ;
|
||
|
|
# } else {
|
||
|
|
# $c_actv = (($_==1 && $db{$table}{$id}{activetab} eq '') || ($db{$table}{$id}{activetab} eq $tab_name)) ? 'class="active"' : '' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
$c_actv = ($_==2) ? 'class="active"' : '' ;
|
||
|
|
|
||
|
|
# if ($_==1 && $db{$table}{$id}{activetab} eq '') {
|
||
|
|
# $c_actv = 'class="active"' ;
|
||
|
|
# } elsif ($db{$table}{$id}{activetab} eq $tab_name) {
|
||
|
|
# $c_actv = 'class="active"' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# &common_min_debug("activetab [$tab_name] $c_actv ");
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq(<li id="$tab_name" $c_actv><a href="#$cntxt{$_}">$tab_name</a></li>);
|
||
|
|
|
||
|
|
$tab_cnt++;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq(</ul>
|
||
|
|
<div id="myTabContent" class="tab-content">);
|
||
|
|
|
||
|
|
our %tab_sections = () ;
|
||
|
|
|
||
|
|
foreach (keys %cntxt) {
|
||
|
|
|
||
|
|
my $tab_name = &tab_names($_) ; my $active = '' ;
|
||
|
|
|
||
|
|
# # if ($is_schools_manager) {
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
# $active = ($_==2) ? 'active' : '' ;
|
||
|
|
# } else {
|
||
|
|
# $active = (($_==1 && $db{$table}{$id}{activetab} eq '') || ($db{$table}{$id}{activetab} eq $tab_name)) ? 'active' : '' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
$active = ($_==2) ? 'active' : '' ;
|
||
|
|
|
||
|
|
# if (($_==1) and ($db{$table}{$id}{activetab} eq '')) {
|
||
|
|
# $active = 'active' ;
|
||
|
|
# }
|
||
|
|
# elsif ($db{$table}{$id}{activetab} eq $tab_name) {
|
||
|
|
# $active = 'active' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
my $colsleft = 12 ; my $showright = '' ;
|
||
|
|
|
||
|
|
if ($cntxt{$_} eq 'one' or $cntxt{$_} eq 'seven') {
|
||
|
|
$colsleft = 6 ;
|
||
|
|
$showright = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~<div class="tab-pane $active" id="$cntxt{$_}">~;
|
||
|
|
$print_box_content_rows .= qq~<div class='row' style="margin: 2px 4px 0 -10px;">~ ;
|
||
|
|
$print_box_content_rows .= qq~<div class='col-md-$colsleft'>~ ;
|
||
|
|
&build_boxes_left($id,$_);
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
|
||
|
|
if ($showright) {
|
||
|
|
$print_box_content_rows .= qq~<div class='col-md-6'>~ ;
|
||
|
|
&build_boxes_right($id,$_);
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
$print_box_content_rows .= qq~<div class='row' style="margin: 2px 4px 0 -10px;">~ ;
|
||
|
|
$print_box_content_rows .= qq~<div class='col-md-12'>~ ;
|
||
|
|
|
||
|
|
if ($id) {
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
<div class='row'><div class="box col-md-12"><div class="box-inner">
|
||
|
|
<div class="box-content" style="height:47px;">~ ;
|
||
|
|
$print_box_content_rows .= ($tab_name eq 'Quote') ? qq~<a class='btn btn-primary btn-xs' href="javascript:dlgMdl('$useropts{scripts}/pdf/event_quote_pdf.pl?$id&$_&$tab_sections{$_}','EVENT QUOTE $db{$table}{$id}{quote_nr}','','waybill-dialog');" data-title="Event Quote PDF" data-toggle="tooltip" data-placement="right"><i class="glyphicon glyphicon-print"></i></a>~ : qq~<a class='btn btn-default btn-xs' href="javascript:dlgMdl('$useropts{scripts}/pdf/event_details_pdf.pl?$id&&','EVENT DETAILS $db{$table}{$id}{quote_nr}','','waybill-dialog');" data-title="Event Details PDF" data-toggle="tooltip" data-placement="right"><i class="glyphicon glyphicon-print"></i></a>~ ;
|
||
|
|
$print_box_content_rows .= &common_min_box_foot;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<!--/span-->~ ;
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~</div>~ ;
|
||
|
|
|
||
|
|
#--------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$print_box_content_rows .= qq~<div class='row'><div class='col-md-12'>~ ;
|
||
|
|
&build_boxes_bottom($id);
|
||
|
|
$print_box_content_rows .= qq~</div></div>~ ;
|
||
|
|
|
||
|
|
#--------------------------------------------------------------------------
|
||
|
|
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_end($id,$table,$action,$skip) ;
|
||
|
|
|
||
|
|
my $jquery_trigger_ids = '#' . join(",#",@jquery_trigger_fields) ;
|
||
|
|
my $jquery_workings_trigger_ids = '#' . join(",#",@jquery_workings_trigger_fields) ;
|
||
|
|
|
||
|
|
my $jq_tab_var = '' ;
|
||
|
|
my $jq_tab = '' ;
|
||
|
|
my $inp_tab_val = '' ;
|
||
|
|
foreach (keys %cntxt) {
|
||
|
|
$jq_tab_var .= qq(var totalTab_$_=0 ; ) ;
|
||
|
|
$jq_tab .= qq(totalTab_$_=0 ; ) ;
|
||
|
|
} # $inp_tab_val .= qq(\$("#inputTotal_tab_$_").val(totalTab_$_.toFixed(2)) ;) ;
|
||
|
|
|
||
|
|
# $trigger_jquery_raw .= qq~
|
||
|
|
# \$("#selectCurrency").change(function() {
|
||
|
|
# curr_changed=1;
|
||
|
|
# curr_changedW=1;
|
||
|
|
# console.log("1. curr_changed: "+curr_changed) ;
|
||
|
|
# calcCurr();
|
||
|
|
# });
|
||
|
|
|
||
|
|
# \$('#event_quotes-form:checkbox').change(function() {
|
||
|
|
# calcAll();
|
||
|
|
# });
|
||
|
|
|
||
|
|
# function calcCosting(excl,item,qty,usd,conv,vat,ttl)
|
||
|
|
# {
|
||
|
|
# var itval = item.val();
|
||
|
|
# var uval = usd.val();
|
||
|
|
# var cval = conv.val(); // currency amount
|
||
|
|
# var qval = qty.val();
|
||
|
|
# var vval = vat.val();
|
||
|
|
# // var tval = ttl.val();
|
||
|
|
|
||
|
|
# if (excl.val() != 0){
|
||
|
|
|
||
|
|
# var xval = 1;
|
||
|
|
|
||
|
|
# }
|
||
|
|
|
||
|
|
# else if (excl.val() == 0){
|
||
|
|
|
||
|
|
# var xval = 0;
|
||
|
|
|
||
|
|
# }
|
||
|
|
# //var xval = excl.val();
|
||
|
|
# var dis = \$("#selectDiscount").val();
|
||
|
|
# var roe = \$("#inputRoe").val(); // getNum()
|
||
|
|
|
||
|
|
# if (!itval) {
|
||
|
|
# calcAll();
|
||
|
|
# return ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# var arrP = itval.split(":"); // 3:0.00:100.00:200.00:223.00:223.00:250.00:250.00:200.00 // id:freight:nett:main_price:gross_10_1_50:gross_10_51_plus:gross_20_1_50:gross_20_51_plus:gross_50 //
|
||
|
|
# var list = { freight:arrP[1], nett:arrP[2], main_price:arrP[3], source_admin:arrP[4], perc3:arrP[5], perc5:arrP[6], perc6:arrP[6], perc8:arrP[7], perc10:arrP[8], perc15:arrP[9], perc20:arrP[10] };
|
||
|
|
|
||
|
|
# if (!qval) {
|
||
|
|
# qval=1;
|
||
|
|
# qty.val(qval);
|
||
|
|
# } // set quantity if blank
|
||
|
|
|
||
|
|
# if (!uval) // set USD amount if no amount
|
||
|
|
# {
|
||
|
|
# var uval = list.main_price;
|
||
|
|
# if (dis==3 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc3;
|
||
|
|
# }
|
||
|
|
# else if (dis==5 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc5;
|
||
|
|
# }
|
||
|
|
# else if (dis==6 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc6;
|
||
|
|
# }
|
||
|
|
# else if (dis==8 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc8;
|
||
|
|
# }
|
||
|
|
# else if (dis==10 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc10;
|
||
|
|
# }
|
||
|
|
# else if (dis==15 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc15;
|
||
|
|
# }
|
||
|
|
# else if (dis==20 && qval>0)
|
||
|
|
# {
|
||
|
|
# uval=list.perc20;
|
||
|
|
# }
|
||
|
|
# }
|
||
|
|
|
||
|
|
# var usdAmnt = uval * 1 ;
|
||
|
|
# // var currAmnt = usdAmnt / roe ;
|
||
|
|
# var currAmnt = usdAmnt * roe ;
|
||
|
|
# var ttlAmnt = currAmnt * qval ;
|
||
|
|
|
||
|
|
# usd.val(usdAmnt.toFixed(2)) ; // set USD currency amount
|
||
|
|
# conv.val(currAmnt.toFixed(2)) ; // set foreign currency amount
|
||
|
|
# ttl.val(ttlAmnt.toFixed(2)) ; // set total amount
|
||
|
|
|
||
|
|
# calcAll(); // recalculate the entire sheet
|
||
|
|
|
||
|
|
# console.log("COSTINGS CALCCOSTINGS build boxes : USD AMOUNT="+usdAmnt + "CURR AMOUNT="+currAmnt + "TOTAL AMOUNT="+ttlAmnt) ;
|
||
|
|
|
||
|
|
# // alert(usdAmnt+'(inputAmount_usd_$field):'+usd+':'+qty+'(inputQty_$field)') ; // 0.00:100.00:200.00:223.00:223.00:250.00:250.00:200.00 //
|
||
|
|
# }
|
||
|
|
|
||
|
|
# function calcCostingWorkings(excl,item,qty,usd,conv,vat)
|
||
|
|
# {
|
||
|
|
# var itvalW = item.val();
|
||
|
|
# var uvalW = usd.val();
|
||
|
|
# var cvalW = conv.val(); // currency amount
|
||
|
|
# var qvalW = qty.val();
|
||
|
|
# var vvalW = vat.val();
|
||
|
|
# var xvalW = excl.val();
|
||
|
|
|
||
|
|
# if (excl.val() != 0){
|
||
|
|
# var xvalW = 1 ;
|
||
|
|
# }
|
||
|
|
# else if (excl.val() == 0){
|
||
|
|
# var xvalW = 0 ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# // var disW = \$("#selectDiscount").val();
|
||
|
|
# var roeW = \$("#inputRoe").val(); // getNum()
|
||
|
|
|
||
|
|
# if (!itvalW) {
|
||
|
|
# calcAllWorkings();
|
||
|
|
# return ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if (!qvalW) {
|
||
|
|
# qvalW = 1 ;
|
||
|
|
# qtyW.val(qvalW) ;
|
||
|
|
# } // set quantity if blank
|
||
|
|
|
||
|
|
# var usdAmntW = uvalW * 1 ;
|
||
|
|
# var currAmntW = usdAmntW * roeW ;
|
||
|
|
# var ttlAmntW = currAmntW * qvalW ;
|
||
|
|
|
||
|
|
# usd.val(usdAmntW.toFixed(2)) ; // set USD currency amount
|
||
|
|
# // conv.val(currAmntW.toFixed(2)) ; // set foreign currency amount
|
||
|
|
# conv.val(ttlAmntW.toFixed(2)) ; // set foreign currency amount
|
||
|
|
# // ttl.val(ttlAmntW.toFixed(2)) ; // set total amount
|
||
|
|
|
||
|
|
# calcAllWorkings(); // recalculate the entire sheet
|
||
|
|
|
||
|
|
# // console.log("WORKINGS CALCCOSTINGSWORKINGS build boxes : USD AMOUNT="+usdAmntW + "CURR AMOUNT="+currAmntW + "TOTAL AMOUNT="+ttlAmntW) ;
|
||
|
|
|
||
|
|
# console.log("calcCostingWorkings tabs: EXCL="+xvalW+", DESCRIPTION="+item+", AMOUNT USD="+uvalW+", QTY="+qvalW+", AMOUNT="+ttlAmntW+", VAT="+vvalW) ;
|
||
|
|
|
||
|
|
# }
|
||
|
|
|
||
|
|
# function calcCurr()
|
||
|
|
# {
|
||
|
|
# var roe = \$("#inputRoe") ;
|
||
|
|
# // roe.val(1); // default currency to 1
|
||
|
|
# // var curr = \$("#selectCurrency").val() ;
|
||
|
|
# // var url = "$useropts{scripts}/get/get_roe.pl?" + curr ;
|
||
|
|
# // \$.get(url, function(json) {
|
||
|
|
# // \$.each(json, function(key, data) {
|
||
|
|
# // roe.val(data.sell_rate);
|
||
|
|
# // });
|
||
|
|
# // calcAll();
|
||
|
|
# // },
|
||
|
|
# // 'json');
|
||
|
|
# }
|
||
|
|
# ~;
|
||
|
|
|
||
|
|
# $trigger_jquery_raw .= qq~
|
||
|
|
# var currArr = {}; // var vat_total = {} ; var total_total = {} ; var subtotal = {} ; var fs_total = {} ;
|
||
|
|
# var currArrW = {};
|
||
|
|
|
||
|
|
# $js_curr_arr
|
||
|
|
|
||
|
|
# var currVal = \$("#selectCurrency").val() ;
|
||
|
|
# var prevRoe = '' ;
|
||
|
|
# var curRoe = '' ;
|
||
|
|
|
||
|
|
# var currValW = \$("#selectCurrency").val() ;
|
||
|
|
# var prevRoeW = '' ;
|
||
|
|
# var curRoeW = '' ;
|
||
|
|
|
||
|
|
# var grandTtl = 0 ;
|
||
|
|
# var grandSub = 0 ;
|
||
|
|
# var grandVat = 0 ;
|
||
|
|
|
||
|
|
# var grandTtlW = 0 ;
|
||
|
|
# var grandSubW = 0 ;
|
||
|
|
# var grandVatW = 0 ;
|
||
|
|
|
||
|
|
# $jq_tab_var
|
||
|
|
# \$("$jquery_trigger_ids").change(function() {
|
||
|
|
# // calcAll();
|
||
|
|
# });
|
||
|
|
|
||
|
|
# function calcAll()
|
||
|
|
# {
|
||
|
|
# if (!\$("#selectCurrency\_chosen").val()) {
|
||
|
|
# \$("#selectCurrency\_chosen").val('ZAR');
|
||
|
|
# \$("#selectCurrency\_chosen").trigger("chosen:updated");
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if (!\$("#inputRoe").val() || \$("#inputRoe").val() <= 0) { \$("#inputRoe").val(1) ; }
|
||
|
|
|
||
|
|
# grandTtl= 0 ;
|
||
|
|
# grandSub = 0 ;
|
||
|
|
# grandVat = 0 ;
|
||
|
|
|
||
|
|
# $jq_tab
|
||
|
|
# $re_calc_jquery
|
||
|
|
|
||
|
|
# \$("#inputSub_total").val(grandSub.toFixed(2)) ;
|
||
|
|
# \$("#inputVat_total").val(grandVat.toFixed(2)) ;
|
||
|
|
# \$("#inputGrand_total").val(grandTtl.toFixed(2)) ;
|
||
|
|
# \$("#inputIncome").val(grandTtl.toFixed(2)) ;
|
||
|
|
|
||
|
|
# calcProfitLoss() ;
|
||
|
|
|
||
|
|
# console.log("COSTINGS CALC_ALL: SUB TOTAL="+grandSub + "VAT TOTAL="+grandVat + "GRAND TOTAL="+grandTtl ) ;
|
||
|
|
|
||
|
|
# curr_changed=0;
|
||
|
|
# // console.log("2. curr_changed: "+curr_changed) ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# // \$("$jquery_workings_trigger_ids").change(function() {
|
||
|
|
# ///calcAllWorkings();
|
||
|
|
# // });
|
||
|
|
|
||
|
|
# function calcAllWorkings()
|
||
|
|
# {
|
||
|
|
# if (!\$("#selectCurrency\_chosen").val()) {
|
||
|
|
# \$("#selectCurrency\_chosen").val('ZAR');
|
||
|
|
# \$("#selectCurrency\_chosen").trigger("chosen:updated");
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if (!\$("#inputRoe").val()) { \$("#inputRoe").val(1) ; }
|
||
|
|
|
||
|
|
# grandTtlW = 0 ;
|
||
|
|
# grandSubW = 0 ;
|
||
|
|
# grandVatW = 0 ;
|
||
|
|
|
||
|
|
# $re_calc_jqueryW
|
||
|
|
|
||
|
|
# \$("#inputTotal_amount_workings_event").val(grandSubW.toFixed(2)) ;
|
||
|
|
# \$("#inputTotal_vat_amount_workings_event").val(grandVatW.toFixed(2)) ;
|
||
|
|
# \$("#inputTotal_grand_amount_workings_event").val(grandTtlW.toFixed(2)) ;
|
||
|
|
# \$("#inputExpenses").val(grandTtlW.toFixed(2)) ; // Profit loss calculation
|
||
|
|
|
||
|
|
# calcProfitLoss() ;
|
||
|
|
|
||
|
|
# console.log("WORKINGS CALC_ALLWORKINGS: SUB TOTAL="+grandSubW + "VAT TOTAL="+grandVatW + "GRAND TOTAL="+grandTtlW ) ;
|
||
|
|
|
||
|
|
# curr_changedW=0;
|
||
|
|
|
||
|
|
# }
|
||
|
|
|
||
|
|
# function calcProfitLoss()
|
||
|
|
# {
|
||
|
|
|
||
|
|
# let inc = \$("#inputIncome").val() ;
|
||
|
|
# let exp = \$("#inputExpenses").val() ;
|
||
|
|
|
||
|
|
# let pl = inc - exp ;
|
||
|
|
|
||
|
|
# \$("#inputProfit_loss").val(pl.toFixed(2)) ;
|
||
|
|
# }
|
||
|
|
# ~ ;
|
||
|
|
|
||
|
|
# $onload .= qq(onload="calcAll();");
|
||
|
|
if ($iaction eq 'add'){ $onload .= qq~onload="calcCurr();"~ ; }
|
||
|
|
# $onload .= qq~onload="calcCurr();"~ ;
|
||
|
|
|
||
|
|
&build_workings_costings_forms_jquery if $glod_user_level > 4 ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_boxes_top {
|
||
|
|
|
||
|
|
my ($id) = @_ ;
|
||
|
|
|
||
|
|
our ($lcol,$fcol) = &common_min_columns(3,6) ;
|
||
|
|
|
||
|
|
$add_form_fields = '' ;
|
||
|
|
|
||
|
|
$fcol=8 ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~<div class='col-md-3'>~ ;
|
||
|
|
$preferred_title{quote_nr} = "Nr" ;
|
||
|
|
$add_form_fields .= &common_min_form_input('quote_nr',$db{$table}{$id}{quote_nr},'') ;
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
$add_form_fields .= qq~<div class='col-md-3'>~ ;
|
||
|
|
|
||
|
|
if (($db{$table}{$id}{quote_date} eq '') or ($db{$table}{$id}{quote_date} eq '0000-00-00')) {
|
||
|
|
$db{$table}{$id}{quote_date} = $now_ccyy_mm_dd ;
|
||
|
|
}
|
||
|
|
$preferred_title{quote_date} = "Date" ;
|
||
|
|
$add_form_fields .= &common_min_form_datepicker('quote_date',$db{$table}{$id}{quote_date}) ;
|
||
|
|
my $plus_n_days_ccyy_mm_dd = &common_add_delta_days(14) ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
$add_form_fields .= qq~<div class='col-md-3'>~ ;
|
||
|
|
$preferred_title{quote_to} = "Client" ;
|
||
|
|
$add_form_fields .= &common_min_form_select('quote_to',$db{$table}{$id}{quote_to},'') ;
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
$add_form_fields .= qq~<div class='col-md-3'>~ ;
|
||
|
|
$dlg{quote_to} = qq~
|
||
|
|
<div class="col-md-1">
|
||
|
|
<a href="javascript:dlgMdl('$useropts{'scripts'}/dialog/add_customer.pl?add&selectQuote_to','Add Customer','','max-dialog');" class="btn btn-primary btn-xs" style="padding:1px 2px 1px 3px;margin-top:0px;" title='Add Customer' data-toggle='tooltip' data-placement='right'>
|
||
|
|
<i class="glyphicon glyphicon-plus" style="padding:0;margin-top:0px;">
|
||
|
|
</i>
|
||
|
|
</a>
|
||
|
|
</div>~ ;
|
||
|
|
$fcol = 7;
|
||
|
|
$add_form_fields .= &common_min_form_select('country_id',$db{$table}{$id}{country_id},'') ;
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
$fcol = 8;
|
||
|
|
$print_box_content_rows .= &common_min_box_top('qrcode',"Quote",'BABEC2');
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
<div class="row">
|
||
|
|
<div class="col-md-12">
|
||
|
|
$add_form_fields
|
||
|
|
</div>
|
||
|
|
</div>~;
|
||
|
|
$print_box_content_rows .= qq~
|
||
|
|
<div class='row'>
|
||
|
|
<div class='col-md-12' style='height:6px;'>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
</div>~ ;
|
||
|
|
$print_box_content_rows .= &common_min_box_foot;
|
||
|
|
|
||
|
|
$trigger_jquery .= qq~
|
||
|
|
|
||
|
|
let qu_to = \$("select[name='quote_to']").val() ;
|
||
|
|
var colonIndex = qu_to.indexOf(":") ; var extractedNumber ;
|
||
|
|
if (colonIndex !== -1) {
|
||
|
|
extractedNumber = qu_to.substring(0, colonIndex);
|
||
|
|
} else {
|
||
|
|
extractedNumber = qu_to ;
|
||
|
|
}
|
||
|
|
if (extractedNumber != 5) {
|
||
|
|
\$("#inputPoc_name").removeAttr("data-validation") ;
|
||
|
|
\$("#inputPoc_contact_nr").removeAttr("data-validation") ;
|
||
|
|
\$("#selectCategory_id_1").removeAttr("data-validation") ;
|
||
|
|
\$("#textareaCategory_1_details").removeAttr("data-validation") ;
|
||
|
|
\$("#selectCategory_id_2").removeAttr("data-validation") ;
|
||
|
|
\$("#textareaCategory_2_details").removeAttr("data-validation") ;
|
||
|
|
|
||
|
|
\$("label[for='inputPoc_name'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='inputPoc_contact_nr'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='selectCategory_id_1'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='textareaCategory_1_details'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='selectCategory_id_2'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='textareaCategory_2_details'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
}
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
|
||
|
|
\$("select[name='quote_to']").change(function() {
|
||
|
|
|
||
|
|
let qu_to = \$("select[name='quote_to']").val() ;
|
||
|
|
var colonIndex = qu_to.indexOf(":") ; var extractedNumber ;
|
||
|
|
if (colonIndex !== -1) {
|
||
|
|
extractedNumber = qu_to.substring(0, colonIndex);
|
||
|
|
} else {
|
||
|
|
extractedNumber = qu_to ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (extractedNumber != 5) {
|
||
|
|
\$("#inputPoc_name").removeAttr("data-validation") ;
|
||
|
|
\$("#inputPoc_contact_nr").removeAttr("data-validation") ;
|
||
|
|
\$("#selectCategory_id_1").removeAttr("data-validation") ;
|
||
|
|
\$("#textareaCategory_1_details").removeAttr("data-validation") ;
|
||
|
|
\$("#selectCategory_id_2").removeAttr("data-validation") ;
|
||
|
|
\$("#textareaCategory_2_details").removeAttr("data-validation") ;
|
||
|
|
|
||
|
|
\$("label[for='inputPoc_name'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='inputPoc_contact_nr'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='selectCategory_id_1'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='textareaCategory_1_details'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='selectCategory_id_2'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
\$("label[for='textareaCategory_2_details'] i.glyphicon-asterisk.yellow").remove();
|
||
|
|
} else if (extractedNumber == 5 && \$("label[for='inputPoc_name']").find("i.glyphicon.glyphicon-asterisk.yellow").length === 0) {
|
||
|
|
|
||
|
|
\$("label[for='inputPoc_name']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
\$("label[for='inputPoc_contact_nr']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
\$("label[for='selectCategory_id_1']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
\$("label[for='textareaCategory_1_details']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
\$("label[for='selectCategory_id_2']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
\$("label[for='textareaCategory_2_details']").append('<i class="glyphicon glyphicon-asterisk yellow"></i>') ;
|
||
|
|
|
||
|
|
\$("#inputPoc_name").attr("data-validation", "required");
|
||
|
|
\$("#inputPoc_contact_nr").attr("data-validation", "required");
|
||
|
|
\$("#selectCategory_id_1").attr("data-validation", "required");
|
||
|
|
\$("#textareaCategory_1_details").attr("data-validation", "required");
|
||
|
|
\$("#selectCategory_id_2").attr("data-validation", "required");
|
||
|
|
\$("#textareaCategory_2_details").attr("data-validation", "required");
|
||
|
|
|
||
|
|
}
|
||
|
|
});
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_boxes_left {
|
||
|
|
|
||
|
|
my ($id,$tab) = @_ ;
|
||
|
|
|
||
|
|
our ($lcol,$fcol) = &common_min_columns(3,6) ;
|
||
|
|
|
||
|
|
&tab_build_qt_left($id,$tab);
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_boxes_right {
|
||
|
|
|
||
|
|
my ($id,$tab) = @_ ;
|
||
|
|
|
||
|
|
our ($lcol,$fcol) = &common_min_columns(3,6) ;
|
||
|
|
|
||
|
|
&tab_build_qt_right($id,$tab);
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_boxes_bottom {
|
||
|
|
|
||
|
|
my ($id) = @_ ;
|
||
|
|
|
||
|
|
our ($lcol,$fcol) = &common_min_columns(2,2) ;
|
||
|
|
|
||
|
|
$add_form_fields = '' ;
|
||
|
|
|
||
|
|
# --------------- START GRAND TOTAL ----------------------------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_form_input('activetab',$db{$table}{$id}{activetab},'hidden') ;
|
||
|
|
|
||
|
|
# --------------- END RAND TOTAL ------------------------------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_extra_name_row_1 {
|
||
|
|
|
||
|
|
my ($row_cnt,$display) = @_ ;
|
||
|
|
my $count_dates_in_first_extra_row = 0 ;
|
||
|
|
$display = ($display) ? "style='display:none;'" : "" ;
|
||
|
|
my $extra_row_hearders_1 = qq~<div class='row' id='day_names_$row_cnt\_extra_1' $display><div class='col-md-2'></div>~ ;
|
||
|
|
for (1 .. 20) {
|
||
|
|
$count_dates_in_first_extra_row++ if $days_active_arr[$_ - 1] ;
|
||
|
|
$date_is_displayed_in_first_extra_row{$_} = 1 if $days_active_arr[$_ - 1] && $count_dates_in_first_extra_row <= 10 ;
|
||
|
|
$extra_row_hearders_1 .= ($days_active_arr[$_ - 1] && $count_dates_in_first_extra_row <= 10 && $some_row_has_daily_op_1) ? qq~<div class='col-md-1' id="day_$_\_name_$row_cnt\_extra_1"><label class='control-label'> $default_active_event_dates{$_}</label></div>~ : qq~<div class='col-md-0' id="day_$_\_name_$row_cnt\_extra_1" style='display:none;'><label class='control-label'> $default_active_event_dates{$_}</label></div>~ ;
|
||
|
|
}
|
||
|
|
$extra_row_hearders_1 .= qq~</div>~ ;
|
||
|
|
return $extra_row_hearders_1 ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_extra_name_row_2 {
|
||
|
|
|
||
|
|
my ($row_cnt,$display) = @_ ;
|
||
|
|
$display = ($display) ? "style='display:none;'" : "" ;
|
||
|
|
my $extra_row_hearders_2 = qq~<div class='row' id='day_names_$row_cnt\_extra_2' $display><div class='col-md-2'></div>~ ;
|
||
|
|
for (11 .. 20) {
|
||
|
|
$extra_row_hearders_2 .= ($some_row_has_daily_op_2 && $days_active_arr[$_ - 1] && !$date_is_displayed_in_first_extra_row{$_}) ? qq~<div class='col-md-1' id="day_$_\_name_$row_cnt\_extra_2"><label class='control-label'> $default_active_event_dates{$_}</label></div>~ : qq~<div class='col-md-0' id="day_$_\_name_$row_cnt\_extra_2" style="display:none;"><label class='control-label'> $default_active_event_dates{$_}</label></div>~ ;
|
||
|
|
}
|
||
|
|
$extra_row_hearders_2 .= qq~</div>~ ;
|
||
|
|
return $extra_row_hearders_2;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_system_name_form {
|
||
|
|
|
||
|
|
my ($system_ids,$club_ids,$quote_accepted,$quote_rejected,$quote_cancelled,$daily_operator_ids,$days_active) = @_ ;
|
||
|
|
|
||
|
|
my @system_name_ids = split(";",$system_ids) ;
|
||
|
|
my @club_ids = split(";",$club_ids) ;
|
||
|
|
our @days_active_arr = split(/\;/,$days_active) ;
|
||
|
|
my @daily_op_ids = () ;
|
||
|
|
|
||
|
|
local $system_count = 0 ; local $system_day_cnt = 0 ; my %row_has_daily_op = () ; my $some_row_has_daily_op = 0 ; our $some_row_has_daily_op_1 = 0 ; our $some_row_has_daily_op_2 = 0 ; my $active_days_count = 0 ;
|
||
|
|
|
||
|
|
foreach my $row (split(/\|/,$daily_operator_ids)) {
|
||
|
|
$system_count++ ;
|
||
|
|
next unless $row ;
|
||
|
|
$system_day_cnt = 0 ;
|
||
|
|
foreach my $default_op (split(/\;/,$row)) {
|
||
|
|
$system_day_cnt++ ;
|
||
|
|
next if !$days_active_arr[$system_day_cnt-1] ;
|
||
|
|
$active_days_count++ ;
|
||
|
|
$default_op_ids{$system_count}{$system_day_cnt} = $default_op if $default_op ;
|
||
|
|
$row_has_daily_op{$system_count} = 1 if $default_op ;
|
||
|
|
$row_has_daily_op_1{$system_count} = 1 if $default_op && $active_days_count <= 10 ;
|
||
|
|
$row_has_daily_op_2{$system_count} = 1 if $default_op && $active_days_count > 10 ;
|
||
|
|
$some_row_has_daily_op = 1 if $default_op ;
|
||
|
|
$some_row_has_daily_op_1 = 1 if $default_op && $active_days_count <= 10 ;
|
||
|
|
$some_row_has_daily_op_2 = 1 if $default_op && $active_days_count > 10 ;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$active_days_count = 0 ; my $total_days = 0 ;
|
||
|
|
|
||
|
|
foreach (@days_active_arr) {
|
||
|
|
$active_days_count++ if $_ ;
|
||
|
|
$total_days++ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$some_row_has_daily_op = 0 if $active_days_count > 6 ;
|
||
|
|
|
||
|
|
$fcol = 2 ; $lcol = 2 ;
|
||
|
|
|
||
|
|
$dlg_add_club = ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled)) ? '<div class="col-md-1"></div>' : qq~<div class="col-md-1"><a href="javascript:dlgMdl('$useropts{'scripts'}/dialog/add_club.pl?add&selectClub_ids','Add Club','','medium-dialog');" class="btn btn-primary btn-xs" style="position:absolute;right:0%;padding:0px 2px 0px 3px;margin-top:0px;" title='Add Club' data-toggle='tooltip' data-placement='right'><i class="glyphicon glyphicon-plus" style="padding:0;margin-top:0px;top:0px;"></i></a></div>~ ;
|
||
|
|
|
||
|
|
my $dlg_operator_ids = '' ;
|
||
|
|
|
||
|
|
# if ($glod_user_level > 2 || ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled))) {
|
||
|
|
$add_form_fields .= qq~
|
||
|
|
<div class='row'>
|
||
|
|
<div class='col-md-2'>
|
||
|
|
<label class="control-label">System Details</label>
|
||
|
|
</div>
|
||
|
|
<div class='col-md-4'>
|
||
|
|
<div class='row'>
|
||
|
|
<div class='col-md-4'>
|
||
|
|
<label class='control-label'> System Name</label>
|
||
|
|
</div>
|
||
|
|
<div class='col-md-3'>
|
||
|
|
<label class='control-label'> Club Name</label>
|
||
|
|
</div>
|
||
|
|
$dlg_add_club
|
||
|
|
<div class='col-md-4'>
|
||
|
|
<label class='control-label'> Operator Name</label>
|
||
|
|
</div>
|
||
|
|
$dlg_operator_ids
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
our %date_is_displayed_in_first_extra_row = () ;
|
||
|
|
|
||
|
|
if ($active_days_count <= 6) {
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
$add_form_fields .= ($some_row_has_daily_op && $days_active_arr[$_ - 1]) ? qq~<div class='col-md-1' id="day_$_\_name"><label class='control-label'> $default_active_event_dates{$_}</label></div>~ : ($some_row_has_daily_op && !$days_active_arr[$_ - 1] && $final_day >= $_) ? qq~<div class='col-md-1' id="day_$_\_name" style="display:none;"><label class='control-label'> $default_active_event_dates{$_}</label></div>~ :
|
||
|
|
qq~<div class='col-md-0' id="day_$_\_name" style='display:none;'><label class='control-label'> </label></div>~ ;
|
||
|
|
}
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
$add_form_fields .= qq~<div class='col-md-0' id="day_$_\_name" style="display:none;"><label class='control-label'> </label></div>~ ;
|
||
|
|
}
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
my $note_display_butt = qq~~ ;
|
||
|
|
|
||
|
|
my $system_name_id = "" ; my $club_name_id = "" ;
|
||
|
|
|
||
|
|
my @plus_button_ids = () ; my @event_system_ids = () ; my @event_club_ids = () ; my @event_operator_ids = () ; my @overall_op_ids = () ;
|
||
|
|
|
||
|
|
my @table_system_name_ids = () ; my @table_club_name_ids = () ; my @table_operator_calibration_ids = () ;
|
||
|
|
|
||
|
|
my $old_op_opts = $opts{operator_ids} ;
|
||
|
|
$opts{operator_ids} =~ s/\SELECTED//g ;
|
||
|
|
|
||
|
|
for my $row_cnt (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
|
||
|
|
my $select_sys_name = 0 ; my $select_club_name = 0 ;
|
||
|
|
|
||
|
|
$add_form_fields .= ($active_days_count > 6 && $some_row_has_daily_op_1 && $row_cnt > 1 && ($row_has_daily_op{$row_cnt} || $system_name_ids[$row_cnt - 1] || $club_ids[$row_cnt - 1] || $table_op_ids[$row_cnt - 1])) ? qq~<div class='row' id='extra_heading_$row_cnt'><div class='col-md-2'></div><div class='col-md-4'><div class='row'><div class='col-md-4'><label class='control-label'> System Name</label></div><div class='col-md-4'><label class='control-label'> Club Name</label></div><div class='col-md-4'><label class='control-label'> Operator Name</label></div></div></div></div>~ : qq~~ ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~<div class='row' id="system_name_row_$row_cnt" style="margin-bottom:3px;display:none;"></div>~ if $row_cnt > 1 and not $system_name_ids[$row_cnt - 1] and not $club_ids[$row_cnt - 1] ;
|
||
|
|
$add_form_fields .= qq~<div class='row' id="system_name_row_$row_cnt" style="margin-bottom:3px;">~ if $row_cnt == 1 or $system_name_ids[$row_cnt - 1] or $club_ids[$row_cnt - 1] ;
|
||
|
|
|
||
|
|
push @plus_button_ids,"#btn_system_name_$row_cnt" ;
|
||
|
|
|
||
|
|
my $input_fields_dates_1 = qq~~ ;
|
||
|
|
my $input_fields_1 = qq~~ ;
|
||
|
|
my $input_fields_dates_2 = qq~~ ;
|
||
|
|
my $input_fields_2 = qq~~ ;
|
||
|
|
|
||
|
|
# if ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled)) {
|
||
|
|
# $add_form_fields .= qq~</div>~ if $row_cnt > 1 and not $system_name_ids[$row_cnt - 1] and not $club_ids[$row_cnt - 1] ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
if ($row_cnt == 1 || $row_has_daily_op{$row_cnt} || $system_name_ids[$row_cnt - 1] || $club_ids[$row_cnt - 1] || $table_op_ids[$row_cnt - 1]) {
|
||
|
|
|
||
|
|
if ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled)) {
|
||
|
|
|
||
|
|
$system_name_id = "inputSystem_name_" ; $club_name_id = "inputClub_name_" ;
|
||
|
|
$readonly{"system_name_$row_cnt"} = "READONLY" ; $readonly{"club_name_$row_cnt"} = "READONLY" ; $readonly{"operator_id_calibration_$row_cnt"} = "READONLY" ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-2"></div>~ ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-4"><div class="row">~ ;
|
||
|
|
$fcol = 4 ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col("system_name_$row_cnt",$db{event_systems}{$system_name_ids[$row_cnt - 1]}{name}) ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col("club_name_$row_cnt",$db{clubs}{$club_ids[$row_cnt - 1]}{name}) ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col("operator_id_calibration_$row_cnt",$db{users}{$table_op_ids[$row_cnt - 1]}{name}) ;
|
||
|
|
$add_form_fields .= qq~</div></div>~ ;
|
||
|
|
$fcol = 1 ;
|
||
|
|
if ($row_has_daily_op{$row_cnt} && $some_row_has_daily_op) {
|
||
|
|
for (1 .. 20) {
|
||
|
|
$readonly{"custom_operator_$row_cnt\_$_"} = "READONLY" ;
|
||
|
|
$add_form_fields .= ($days_active_arr[$_ - 1]) ? &common_min_form_input_col("custom_operator_$row_cnt\_$_",$db{users}{$default_op_ids{$row_cnt}{$_}}{name}) : "" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
} elsif ($row_has_daily_op{$row_cnt} && $some_row_has_daily_op_1) {
|
||
|
|
|
||
|
|
my $displayed_dates = 0 ;
|
||
|
|
# $add_form_fields .= qq~</div>~ ;
|
||
|
|
|
||
|
|
$input_fields_dates_1 = qq~<div class='row'><div class='col-md-2'></div>~ ;
|
||
|
|
$input_fields_1 = qq~<div class='row'><div class='col-md-2'></div>~ ;
|
||
|
|
$input_fields_dates_2 = qq~~ ;
|
||
|
|
$input_fields_2 = qq~~ ;
|
||
|
|
|
||
|
|
my %date_used = () ;
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
if ($days_active_arr[$_ - 1] && $displayed_dates < 10) {
|
||
|
|
$input_fields_dates_1 .= qq~<div class='col-md-1'><label class='control-label'> $default_active_event_dates{$_}</label></div>~ ;
|
||
|
|
$readonly{"custom_operator_$row_cnt\_$_"} = "READONLY" ;
|
||
|
|
$input_fields_1 .= &common_min_form_input_col("custom_operator_$row_cnt\_$_",$db{users}{$default_op_ids{$row_cnt}{$_}}{name}) ;
|
||
|
|
$displayed_dates++ ;
|
||
|
|
$date_used{$_} = 1 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
for (11 .. 20) {
|
||
|
|
|
||
|
|
if ($days_active_arr[$_ - 1] && !$date_used{$_}) {
|
||
|
|
$input_fields_2 = qq~<div class='row'><div class='col-md-2'></div>~ unless $input_fields_2 ;
|
||
|
|
$input_fields_dates_2 = qq~<div class='row'><div class='col-md-2'></div>~ unless $input_fields_dates_2 ;
|
||
|
|
$input_fields_dates_2 .= qq~<div class='col-md-1'><label class='control-label'> $default_active_event_dates{$_}</label></div>~ ;
|
||
|
|
$readonly{"custom_operator_$row_cnt\_$_"} = "READONLY" ;
|
||
|
|
$input_fields_2 .= &common_min_form_input_col("custom_operator_$row_cnt\_$_",$db{users}{$default_op_ids{$row_cnt}{$_}}{name}) ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$input_fields_1 .= qq~</div>~ ;
|
||
|
|
$input_fields_dates_1 .= qq~</div>~ ;
|
||
|
|
$input_fields_2 .= qq~</div>~ if $input_fields_2 ;
|
||
|
|
$input_fields_dates_2 .= qq~</div>~ if $input_fields_dates_2 ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$fcol = 4 ;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
$system_name_id = "selectSystem_name_" ; $club_name_id = "selectClub_name_" ; $op_name_id = "selectOperator_id_calibration_" ;
|
||
|
|
|
||
|
|
push @event_system_ids,"#$system_name_id$row_cnt\_chosen" ;
|
||
|
|
push @event_club_ids,"#$club_name_id$row_cnt\_chosen" ;
|
||
|
|
push @event_operator_ids,"#$op_name_id$row_cnt\_chosen" ;
|
||
|
|
push @overall_op_ids,"#selectOperator_id_calibration_$row_cnt" ;
|
||
|
|
|
||
|
|
$opts{"system_name_$row_cnt"} = $opts{event_system_id} ; $opts{"club_name_$row_cnt"} = $opts{club_ids} ; $opts{"operator_id_calibration_$row_cnt"} = $opts{operator_ids} ;
|
||
|
|
$allow_deselect{"system_name_$row_cnt"} = 1 ; $allow_deselect{"club_name_$row_cnt"} = 1 ; $allow_deselect{"operator_id_calibration_$row_cnt"} = 1 ;
|
||
|
|
|
||
|
|
my $sys_name_id = $system_name_ids[$row_cnt - 1] ;
|
||
|
|
if ($sys_name_id) {
|
||
|
|
$trigger_jquery_raw .= qq~\$("#selectSystem_name_$row_cnt").val('$sys_name_id') ; \$("#selectSystem_name_$row_cnt").trigger("chosen:updated") ; ~ ;
|
||
|
|
} else {
|
||
|
|
push @table_system_name_ids,"#selectSystem_name_$row_cnt" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $club_id = $club_ids[$row_cnt - 1] ;
|
||
|
|
if ($club_id) {
|
||
|
|
$trigger_jquery_raw .= qq~\$("#selectClub_name_$row_cnt").val('$club_id') ; \$("#selectClub_name_$row_cnt").trigger("chosen:updated") ; ~ ;
|
||
|
|
} else {
|
||
|
|
push @table_club_name_ids,"#selectClub_name_$row_cnt" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $op_id = $table_op_ids[$row_cnt - 1] ;
|
||
|
|
|
||
|
|
$preferred_title{"operator_id_calibration_$row_cnt"} = "Operator $row_cnt" ;
|
||
|
|
|
||
|
|
$fcol = 4 ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~<div class="col-md-2"></div>~ ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-4"><div class="row">~ ;
|
||
|
|
|
||
|
|
$add_form_fields .= &common_min_form_select_col("system_name_$row_cnt",$system_name_ids[$row_cnt - 1]) if $row_cnt == 1 ;
|
||
|
|
$add_form_fields .= &common_min_form_select_col("system_name_$row_cnt",'') if $row_cnt > 1 ;
|
||
|
|
$add_form_fields .= &common_min_form_select_col("club_name_$row_cnt",$club_ids[$row_cnt - 1]) if $row_cnt == 1 ;
|
||
|
|
$add_form_fields .= &common_min_form_select_col("club_name_$row_cnt",'') if $row_cnt > 1 ;
|
||
|
|
$add_form_fields .= &common_min_form_select_col("operator_id_calibration_$row_cnt",'') ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~</div></div>~ ;
|
||
|
|
|
||
|
|
$fcol = 2 ;
|
||
|
|
|
||
|
|
my $clicked_op_butt = ($row_has_daily_op{$row_cnt}) ? qq~value="1"~ : qq~~ ;
|
||
|
|
|
||
|
|
# if ($glod_user_level > 2) {
|
||
|
|
my $clicked_any_button = ($row_cnt == 1) ? "<span id='clicked_any_button' style='display:none;'></span>" : "" ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0"><a href="#" class="dt-center" style="position:absolute;right:49.6%;padding:1px 2px 1px 3px;margin-top:2px;" title='Add Daily Operators' data-toggle='tooltip' data-placement='right' id = "add_daily_operators_$row_cnt"><i class="glyphicon glyphicon-plus blue" style="padding:0;margin-top:2px;top:-2px;"></i>$clicked_any_button<input type='text' name="clicked_button_$row_cnt" $clicked_op_butt style="display:none;"></span></a></div>~ ;
|
||
|
|
push @table_plus_button_ids,"#add_daily_operators_$row_cnt" ; # my $daily_op_exists = 0 ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
if (!$row_has_daily_op{$row_cnt} && $op_id) {
|
||
|
|
$trigger_jquery_raw .= qq~\$("#selectOperator_id_calibration_$row_cnt").val('$op_id') ; \$("#selectOperator_id_calibration_$row_cnt").trigger("chosen:updated") ; ~ ;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
push @table_operator_calibration_ids,"#selectOperator_id_calibration_$row_cnt" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($active_days_count <= 6) {
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
|
||
|
|
# push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
|
||
|
|
my $style_disp = ($row_has_daily_op{$row_cnt} && $days_active_arr[$_ - 1]) ? "" : "style='display:none;'" ;
|
||
|
|
|
||
|
|
if (!$row_has_daily_op{$row_cnt} || ($style_disp && $row_has_daily_op{$row_cnt} && $final_day < $_)) {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_" $style_disp></div>~ ;
|
||
|
|
} else {
|
||
|
|
# $style_disp = ($row_has_daily_op{$row_cnt} && $days_active_arr[$_ - 1]) ? "" : "style='display:none;'" ;
|
||
|
|
$style_disp = (!$days_active_arr[$_ - 1]) ? "style='display:none;'" : "" ;
|
||
|
|
my $class = ($style_disp) ? 0 : 1 ;
|
||
|
|
push @all_select_ids,"#selectCustom_operator_$row_cnt\_$_" ; #####CHECK!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
|
# push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-$class" id="day_$row_cnt\_$_" $style_disp><select class="form-control" name="custom_operator_$row_cnt\_$_" id="selectCustom_operator_$row_cnt\_$_" data-rel="chosen" tabindex="$_"><option value=""></option>$opts{operator_ids}</select></div>~ ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("#selectCustom_operator_$row_cnt\_$_").val("$default_op_ids{$row_cnt}{$_}") ; \$("#selectCustom_operator_$row_cnt\_$_").trigger("chosen:updated") ;
|
||
|
|
|
||
|
|
if (!\$("#clicked_any_button").text()) {
|
||
|
|
\$("#clicked_any_button").text("1") ;
|
||
|
|
}
|
||
|
|
if (!\$("input[name='clicked_button_$row_cnt']").val()){
|
||
|
|
\$("input[name='clicked_button_$row_cnt']").val("1") ;
|
||
|
|
}
|
||
|
|
~ if $default_op_ids{$row_cnt}{$_} ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
my $extra_row_hearders_1 = &build_extra_name_row_1($row_cnt,1) ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~</div>$extra_row_hearders_1<div class='row' id="system_name_row_$row_cnt\_extra_1" style="display:none;"><div class="col-md-2"></div>~ ;
|
||
|
|
for (1 .. 20) {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_\_extra_1" style='display:none;'></div>~ ;
|
||
|
|
}
|
||
|
|
my $extra_row_hearders_2 = &build_extra_name_row_2($row_cnt,1) ;
|
||
|
|
$add_form_fields .= qq~</div>$extra_row_hearders_2<div class='row' id="system_name_row_$row_cnt\_extra_2" style="display:none;"><div class="col-md-2"></div>~ ;
|
||
|
|
for (11 .. 20) {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_\_extra_2" style='display:none;'></div>~ ;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_" style='display:none;'></div>~ ;
|
||
|
|
}
|
||
|
|
my $extra_row_hearders_1 = ($row_has_daily_op_1{$row_cnt}) ? &build_extra_name_row_1($row_cnt,0) : &build_extra_name_row_1($row_cnt,1) ;
|
||
|
|
|
||
|
|
my $style_disp = ($row_has_daily_op_1{$row_cnt}) ? "" : "style='display:none;'" ;
|
||
|
|
$add_form_fields .= qq~</div>$extra_row_hearders_1<div class='row' id="system_name_row_$row_cnt\_extra_1" $style_disp><div class="col-md-2"></div>~ ;
|
||
|
|
|
||
|
|
my $final_day_in_extra_row_1 = 0 ;
|
||
|
|
foreach (sort {$a <=> $b} keys %date_is_displayed_in_first_extra_row) {
|
||
|
|
$final_day_in_extra_row_1 = $_ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
for (1 .. 20) {
|
||
|
|
|
||
|
|
# push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
|
||
|
|
if ($_ <= $final_day_in_extra_row_1) {
|
||
|
|
|
||
|
|
my $style_disp = ($days_active_arr[$_ - 1]) ? "" : "style='display:none;'" ;
|
||
|
|
my $class = ($style_disp) ? 0 : 1 ;
|
||
|
|
|
||
|
|
push @all_select_ids,"#selectCustom_operator_$row_cnt\_$_" ; #####CHECK!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
|
# push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-$class" id="day_$row_cnt\_$_\_extra_1" $style_disp><select class="form-control" name="custom_operator_$row_cnt\_$_" id="selectCustom_operator_$row_cnt\_$_" data-rel="chosen" tabindex="$_"><option value=""></option>$opts{operator_ids}</select></div>~ ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("#selectCustom_operator_$row_cnt\_$_").val("$default_op_ids{$row_cnt}{$_}") ; \$("#selectCustom_operator_$row_cnt\_$_").trigger("chosen:updated") ;
|
||
|
|
|
||
|
|
if (!\$("#clicked_any_button").text()) {
|
||
|
|
\$("#clicked_any_button").text("1") ;
|
||
|
|
}
|
||
|
|
if (!\$("input[name='clicked_button_$row_cnt']").val()){
|
||
|
|
\$("input[name='clicked_button_$row_cnt']").val("1") ;
|
||
|
|
}
|
||
|
|
~ if $default_op_ids{$row_cnt}{$_} ;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_\_extra_1" style='display:none;'></div>~ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$style_disp = ($active_days_count >= 10) ? "" : "style='display:none;'" ;
|
||
|
|
|
||
|
|
my $extra_row_hearders_2 = ($active_days_count >= 10) ? &build_extra_name_row_2($row_cnt,0) : &build_extra_name_row_2($row_cnt,1) ;
|
||
|
|
$add_form_fields .= qq~</div>$extra_row_hearders_2<div class='row' id="system_name_row_$row_cnt\_extra_2" $style_disp><div class="col-md-2"></div>~ ;
|
||
|
|
for (11 .. 20) {
|
||
|
|
|
||
|
|
if (!$date_is_displayed_in_first_extra_row{$_} && $days_active_arr[$_ - 1] && $_ <= $final_day) {
|
||
|
|
|
||
|
|
push @all_select_ids,"#selectCustom_operator_$row_cnt\_$_" ; #####CHECK!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
|
# push @daily_op_ids,"#selectCustom_operator_$row_cnt\_$_" ;
|
||
|
|
$add_form_fields .= qq~<div class="col-md-1" id="day_$row_cnt\_$_\_extra_2" ><select class="form-control" name="custom_operator_$row_cnt\_$_" id="selectCustom_operator_$row_cnt\_$_" data-rel="chosen" tabindex="$_"><option value=""></option>$opts{operator_ids}</select></div>~ ;
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("#selectCustom_operator_$row_cnt\_$_").val("$default_op_ids{$row_cnt}{$_}") ; \$("#selectCustom_operator_$row_cnt\_$_").trigger("chosen:updated") ;
|
||
|
|
|
||
|
|
if (!\$("#clicked_any_button").text()) {
|
||
|
|
\$("#clicked_any_button").text("1") ;
|
||
|
|
}
|
||
|
|
if (!\$("input[name='clicked_button_$row_cnt']").val()){
|
||
|
|
\$("input[name='clicked_button_$row_cnt']").val("1") ;
|
||
|
|
}
|
||
|
|
~ if $default_op_ids{$row_cnt}{$_} ;
|
||
|
|
} else {
|
||
|
|
$add_form_fields .= qq~<div class="col-md-0" id="day_$row_cnt\_$_\_extra_2" style='display:none;'></div>~ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$select_sys_name = $system_name_ids[$row_cnt] ;
|
||
|
|
$select_sys_name = '' unless $select_sys_name ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$add_form_fields .= qq~</div>$input_fields_dates_1$input_fields_1$input_fields_dates_2$input_fields_2~ ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
# $add_form_fields .= ($active_days_count > 6 && $some_row_has_daily_op_1 && ($row_cnt == 1 || $row_has_daily_op{$row_cnt} || $system_name_ids[$row_cnt - 1] || $club_ids[$row_cnt - 1] || $table_op_ids[$row_cnt - 1])) ? qq~<div class='row' id='space_row_$row_cnt'> </div>~ : qq~~ ;
|
||
|
|
|
||
|
|
$note_display_butt = '' ;
|
||
|
|
|
||
|
|
if ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled)) {
|
||
|
|
$note_display_butt = qq~display:none;~ ;
|
||
|
|
} else {
|
||
|
|
if ($row_cnt > 1 and not $system_name_ids[$row_cnt-1] and not $club_ids[$row_cnt-1]) {
|
||
|
|
$note_display_butt = qq~display:none;~ ;
|
||
|
|
}
|
||
|
|
if ($system_name_ids[$row_cnt] or $club_ids[$row_cnt]) {
|
||
|
|
$note_display_butt = qq~display:none;~ ;
|
||
|
|
}
|
||
|
|
$add_form_fields .= qq~
|
||
|
|
<div class='row' id = "btn_row_$row_cnt">
|
||
|
|
<div class='col-md-2'></div>
|
||
|
|
<div class='col-md-1'>
|
||
|
|
<a id="btn_system_name_$row_cnt" href="#" style="padding-left:16px; $note_display_butt">
|
||
|
|
<i class="glyphicon glyphicon-plus blue"></i>
|
||
|
|
</a>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# $trigger_jquery_raw .= qq~
|
||
|
|
# \$("#btn_system_name_$row_cnt").click(function () {
|
||
|
|
# var v = $row_cnt + 1 ; var v2 = $row_cnt + 2 ;
|
||
|
|
# \$("#btn_row_$row_cnt").hide();
|
||
|
|
# if (v < 15 && \$('#system_name_row_'+v2).is(':hidden')) {
|
||
|
|
# \$("#btn_row_"+v).show();
|
||
|
|
# }
|
||
|
|
# \$("#system_name_row_"+v).show();
|
||
|
|
# });
|
||
|
|
# ~ ;
|
||
|
|
|
||
|
|
# $trigger_jquery .= qq~\$("#$system_name_id$row_cnt\_chosen").css("width","100%");~ ;
|
||
|
|
# $trigger_jquery .= qq~\$("#$club_name_id$row_cnt\_chosen").css("width","100%");~ ;
|
||
|
|
# $trigger_jquery .= qq~\$("#$op_name_id$row_cnt\_chosen").css("width","90%");~ ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
$opts{operator_ids} = $old_op_opts ;
|
||
|
|
|
||
|
|
my $table_system_name_ids_string = join(",",@table_system_name_ids) ;
|
||
|
|
my $table_club_name_ids_string = join(",",@table_club_name_ids) ;
|
||
|
|
my $table_operator_calibration_ids_string = join(",",@table_operator_calibration_ids) ;
|
||
|
|
|
||
|
|
my @all_table_ids = () ;
|
||
|
|
push @all_table_ids,$table_system_name_ids_string if $table_system_name_ids_string ;
|
||
|
|
push @all_table_ids,$table_club_name_ids_string if $table_club_name_ids_string ;
|
||
|
|
push @all_table_ids,$table_operator_calibration_ids_string if $table_operator_calibration_ids_string ;
|
||
|
|
|
||
|
|
my $all_table_ids_string = join(",",@all_table_ids) ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("$all_table_ids_string").val('') ; \$("$all_table_ids_string").trigger("chosen:updated") ;
|
||
|
|
~ if $all_table_ids_string ;
|
||
|
|
|
||
|
|
my $plus_button_ids_string = join(",",@plus_button_ids) ;
|
||
|
|
|
||
|
|
if ($glod_user_level < 3 && ($quote_accepted || $quote_rejected || $quote_cancelled)) {
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
my $system_name_options = &fix_options_for_javascript($opts{"system_name_1"}) ;
|
||
|
|
my $club_name_options = &fix_options_for_javascript($opts{"club_name_1"}) ;
|
||
|
|
our $operator_options = &fix_options_for_javascript($opts{"operator_id_calibration_1"}) ;
|
||
|
|
my $event_system_ids_string = join(",",@event_system_ids) ;
|
||
|
|
my $event_club_ids_string = join(",",@event_club_ids) ;
|
||
|
|
my $event_operator_ids_string = join(",",@event_operator_ids) ;
|
||
|
|
my $daily_op_ids_string = join(",",@daily_op_ids) ;
|
||
|
|
my $overall_op_ids_string = join(",",@overall_op_ids) ;
|
||
|
|
$trigger_jquery .= qq~\$("$event_system_ids_string,$event_club_ids_string").css("width","100%");~ ;
|
||
|
|
$trigger_jquery .= qq~\$("$event_operator_ids_string").css("width","90%");~ ;
|
||
|
|
|
||
|
|
my $table_plus_button_ids_string = join (",",@table_plus_button_ids) ;
|
||
|
|
# $table_plus_button_ids_string = "#selectCustom_operator_1_1,#selectCustom_operator_1_3,#selectCustom_operator_1_2" ;
|
||
|
|
# $table_plus_button_ids_string = "#selectCustom_operator_1_1,#selectCustom_operator_1_3,#selectCustom_operator_1_2" ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
|
||
|
|
function get_row_nr (id) {
|
||
|
|
let lastIndex = id.lastIndexOf('_');
|
||
|
|
lastIndex = parseInt(lastIndex) ;
|
||
|
|
let row_nr = id.substring(1+lastIndex);
|
||
|
|
row_nr = parseInt(row_nr) ;
|
||
|
|
return row_nr ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_checkbox (row_nr,field_name,field_id,tindex,fcol) {
|
||
|
|
let checkbox = "<div class='col-md-"+fcol+" checkbox_checked' id='c_"+field_name+"'><input name='"+field_name+"' data-no-uniform='true' type='checkbox' id='"+field_id+"' checked value='1' tabindex='"+tindex+"'><label for='"+field_id+"'></label></div>" ;
|
||
|
|
return checkbox ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_input (row_nr,field_name,field_id,placeholder,tindex,readonly,fcol) {
|
||
|
|
let input = "<div class='col-md-"+fcol+"'><div class='control-group'><div class='controls'><input type='text' name='"+field_name+"' class='form-control' id='"+field_id+"' style='text-align:right;' placeholder='"+placeholder+"' value='' "+readonly+" tabindex='"+tindex+"'></div></div></div>" ;
|
||
|
|
return input ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_select (row_nr,field_name,field_id,placeholder,options,tindex,fcol,width,div_id,hide_div) {
|
||
|
|
let select = "<div class='col-md-"+fcol+"' "+div_id+" "+hide_div+">" ;
|
||
|
|
select = select + add_select_raw(row_nr,field_name,field_id,placeholder,options,tindex,width) ;
|
||
|
|
select = select + "</div>" ;
|
||
|
|
return select ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_select_raw (row_nr,field_name,field_id,placeholder,options,tindex,width) {
|
||
|
|
let select_raw = "<div class='control-group'><div class='controls'><select class='form-control' style='margin:2px 0 2px 0; width: "+width+"%;' name='"+field_name+"' id='"+field_id+"'data-placeholder='"+placeholder+"' data-rel='chosen' tabindex='"+tindex+"'><option value=''></option>"+options+"</select></div></div>" ;
|
||
|
|
return select_raw ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_event_system_extra_row (row_cnt,nr_of_active_days) {
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_event_system_row (row_cnt,nr_of_active_days) {
|
||
|
|
|
||
|
|
let new_row = "<div class='col-md-2'></div><div class='col-md-4'><div class='row'>" ;
|
||
|
|
|
||
|
|
new_row = new_row + add_select (row_cnt,"system_name_"+row_cnt,"selectSystem_name_"+row_cnt,"Select System Name "+row_cnt,"$system_name_options",-1,4,100,'','') ;
|
||
|
|
new_row = new_row + add_select (row_cnt,"club_name_"+row_cnt,"selectClub_name_"+row_cnt,"Select Club Name "+row_cnt,"$club_name_options",-1,4,100,'','') ;
|
||
|
|
new_row = new_row + add_select (row_cnt,"operator_id_calibration_"+row_cnt,"selectOperator_id_calibration_"+row_cnt,"Select Operator "+row_cnt,"$operator_options",-1,4,90,'','') ;
|
||
|
|
|
||
|
|
// let glod_user_level = parseInt("$glod_user_level") ;
|
||
|
|
|
||
|
|
// if (glod_user_level < 3) { return new_row ; }
|
||
|
|
|
||
|
|
new_row = new_row +"</div></div><div class='col-md-0'><a href='#' class='dt-center' style='position:absolute;right:49.6%;padding:1px 2px 1px 3px;margin-top:2px;' title='Add Daily Operators' data-toggle='tooltip' data-placement='right' id = 'add_daily_operators_"+row_cnt+"'><i class='glyphicon glyphicon-plus blue' style='padding:0;margin-top:2px;top:-2px;'></i><input type='text' name='clicked_button_"+row_cnt+"' style='display:none;'></a></div>" ;
|
||
|
|
|
||
|
|
let extra_row_1,extra_row_2,extra_name_row_1,extra_name_row_2 ;
|
||
|
|
|
||
|
|
// if (nr_of_active_days <= 6) {
|
||
|
|
|
||
|
|
for (let col=1; col<=20; col++) {
|
||
|
|
// if (\$("#day_"+col).val()) {
|
||
|
|
// new_row = new_row + add_select (row_cnt,"custom_operator_"+row_cnt+"_"+col,"selectCustom_operator_"+row_cnt+"_"+col,"Select an Option","$operator_options",-1,1,100,"id='day_"+row_cnt+"_"+col+"'","style='display:none;'") ;
|
||
|
|
// } else {
|
||
|
|
new_row = new_row + "<div class='col-md-0' id='day_"+row_cnt+"_"+col+"' style='display:none;'></div>" ;
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
new_row = new_row+"</div>" ;
|
||
|
|
extra_row_1 = "<div class='row' id='system_name_row_"+row_cnt+"_extra_1' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
extra_name_row_1 = "<div class='row' id='day_names_"+row_cnt+"_extra_1' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
for (let col=1; col<=20; col++) {
|
||
|
|
extra_row_1 = extra_row_1+"<div class='col-md-0' id='day_"+row_cnt+"_"+col+"_extra_1' style='display:none;'></div>" ;
|
||
|
|
extra_name_row_1 = extra_name_row_1+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_1' style='display:none;'><label class='control-label'> </label></div>" ;
|
||
|
|
}
|
||
|
|
extra_row_1 = extra_row_1+"</div>" ;
|
||
|
|
extra_row_2 = "<div class='row' id='system_name_row_"+row_cnt+"_extra_2' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
extra_name_row_2 = "<div class='row' id='day_names_"+row_cnt+"_extra_2' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
for (let col=11; col<=20; col++) {
|
||
|
|
extra_row_2 = extra_row_2+"<div class='col-md-1' id='day_"+row_cnt+"_"+col+"_extra_2' style='display:none;'></div>" ;
|
||
|
|
extra_name_row_2 = extra_name_row_2+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_2' style='display:none;'><label class='control-label'> </label></div>" ;
|
||
|
|
}
|
||
|
|
extra_row_2 = extra_row_2+"</div>" ;
|
||
|
|
extra_name_row_2 = extra_name_row_2+"</div>" ;
|
||
|
|
|
||
|
|
// } else {
|
||
|
|
|
||
|
|
// const datesBetween = getDatesBetween(\$("input[name='date_from']").val(),\$("input[name='date_to']").val(),0) ;
|
||
|
|
|
||
|
|
// let date_counter = 0 ; let dates_map = {} ;
|
||
|
|
// for (const date of datesBetween) {
|
||
|
|
// date_counter++ ;
|
||
|
|
// dates_map[date_counter] = date ;
|
||
|
|
// }
|
||
|
|
|
||
|
|
// let nr_dates_used = 0 ; let dates_used = {} ;
|
||
|
|
|
||
|
|
// for (let col=1; col<=20; col++) {
|
||
|
|
// new_row = new_row + "<div class='col-md-0' id='day_"+row_cnt+"_"+col+"' style='display:none;'></div>" ;
|
||
|
|
// }
|
||
|
|
|
||
|
|
// extra_row_1 = "<div class='row' id='system_name_row_"+row_cnt+"_extra_1'><div class='col-md-2'></div>" ;
|
||
|
|
// extra_name_row_1 = "<div class='row' id='day_names_"+row_cnt+"_extra_1' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
|
||
|
|
// for (let col=1; col<=20; col++) {
|
||
|
|
// if (\$("#day_"+col).val()) {
|
||
|
|
// nr_dates_used++ ;
|
||
|
|
// dates_used[col] = 1 ;
|
||
|
|
// if (nr_dates_used > 10) { break ; }
|
||
|
|
// extra_row_1 = extra_row_1+add_select (row_cnt,"custom_operator_"+row_cnt+"_"+col,"selectCustom_operator_"+row_cnt+"_"+col,"Select an Option","$operator_options",-1,1,100,"id='day_"+row_cnt+"_"+col+"_extra_1'","style='display:none;'") ;
|
||
|
|
// extra_name_row_1 = extra_name_row_1+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_1'><label class='control-label'> "+dates_map[col]+"</label></div>" ;
|
||
|
|
|
||
|
|
// } else {
|
||
|
|
// extra_row_1 = extra_row_1+"<div class='col-md-0' id='day_"+row_cnt+"_"+col+"_extra_1' style='display:none;'></div>" ;
|
||
|
|
// extra_name_row_1 = extra_name_row_1+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_1' style='display:none;'><label class='control-label'> </label></div>" ;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// extra_row_1 = extra_row_1+"</div>" ;
|
||
|
|
// extra_name_row_1 = extra_name_row_1+"</div>" ;
|
||
|
|
|
||
|
|
// if (nr_of_active_days > 10 || nr_dates_used < nr_of_active_days) {
|
||
|
|
// extra_row_2 = "<div class='row' id='system_name_row_"+row_cnt+"_extra_2'><div class='col-md-2'></div>" ;
|
||
|
|
// extra_name_row_2 = "<div class='row' id='day_names_"+row_cnt+"_extra_2'><div class='col-md-2'></div>" ;
|
||
|
|
// } else {
|
||
|
|
// extra_row_2 = "<div class='row' id='system_name_row_"+row_cnt+"_extra_2' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
// extra_name_row_2 = "<div class='row' id='day_names_"+row_cnt+"_extra_2' style='display:none;'><div class='col-md-2'></div>" ;
|
||
|
|
// }
|
||
|
|
|
||
|
|
// for (let col=11; col<=20; col++) {
|
||
|
|
// if (\$("#day_"+col).val() && !dates_used[col]) {
|
||
|
|
// extra_row_2 = extra_row_2+add_select (row_cnt,"custom_operator_"+row_cnt+"_"+col,"selectCustom_operator_"+row_cnt+"_"+col,"Select an Option","$operator_options",-1,1,100,"id='day_"+row_cnt+"_"+col+"_extra_2'","style='display:none;'") ;
|
||
|
|
// extra_name_row_2 = extra_name_row_2+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_2'><label class='control-label'> "+dates_map[col]+"</label></div>" ;
|
||
|
|
// } else {
|
||
|
|
// extra_row_2 = extra_row_2+"<div class='col-md-0' id='day_"+row_cnt+"_"+col+"_extra_2' style='display:none;'></div>" ;
|
||
|
|
// extra_name_row_2 = extra_name_row_2+"<div class='col-md-0' id='day_"+col+"_name_"+row_cnt+"_extra_2' style='display:none;'><label class='control-label'> </label></div>" ;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// extra_row_2 = extra_row_2+"</div>" ;
|
||
|
|
// extra_name_row_2 = extra_name_row_2+"</div>" ;
|
||
|
|
|
||
|
|
// }
|
||
|
|
|
||
|
|
\$("#system_name_row_"+row_cnt).after(extra_row_2) ;
|
||
|
|
\$("#system_name_row_"+row_cnt).after(extra_name_row_2) ;
|
||
|
|
\$("#system_name_row_"+row_cnt).after(extra_row_1) ;
|
||
|
|
\$("#system_name_row_"+row_cnt).after(extra_name_row_1) ;
|
||
|
|
|
||
|
|
let prev_row = row_cnt - 1 ;
|
||
|
|
|
||
|
|
if (nr_of_active_days > 6 && \$("input[name='clicked_button_"+prev_row+"']").val()) {
|
||
|
|
\$("#system_name_row_"+row_cnt).before("<div class='row' id='extra_heading_"+row_cnt+"'><div class='col-md-2'></div><div class='col-md-4'><div class='row'><div class='col-md-4'><label class='control-label'> System Name</label></div><div class='col-md-4'><label class='control-label'> Club Name</label></div><div class='col-md-4'><label class='control-label'> Operator Name</label></div></div></div></div>") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
return new_row ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function process_operators_when_selecting_daily_operator (id) {
|
||
|
|
|
||
|
|
let lastIndex = id.lastIndexOf('_');
|
||
|
|
let id2 = id.substring(0,lastIndex);
|
||
|
|
let lastIndex2 = id2.lastIndexOf('_');
|
||
|
|
lastIndex2 = parseInt(lastIndex2) ;
|
||
|
|
let row_nr = id2.substring(lastIndex2+1);
|
||
|
|
let col_nr = get_row_nr(id) ;
|
||
|
|
let sel_val = \$("#"+id).val() ;
|
||
|
|
|
||
|
|
if (sel_val) {
|
||
|
|
deselect_overall_operator_when_selecting_daily_operator(id) ;
|
||
|
|
for (let i=1;i<=20;i++) {
|
||
|
|
if (i == col_nr) { continue ; }
|
||
|
|
if (!\$("#selectCustom_operator_"+row_nr+"_"+i).val() && (\$("#day_"+row_nr+"_"+i).html() || \$("#day_"+row_nr+"_"+i+"_extra_1").html() || \$("#day_"+row_nr+"_"+i+"_extra_2").html())) {
|
||
|
|
\$("#selectCustom_operator_"+row_nr+"_"+i).val(sel_val) ;
|
||
|
|
\$("#selectCustom_operator_"+row_nr+"_"+i).trigger("chosen:updated") ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function deselect_overall_operator_when_selecting_daily_operator (daily_op_id) {
|
||
|
|
|
||
|
|
let lastIndex = daily_op_id.lastIndexOf('_') ;
|
||
|
|
lastIndex = parseInt(lastIndex) ;
|
||
|
|
const id_2 = daily_op_id.substring(0,lastIndex) ;
|
||
|
|
lastIndex = id_2.lastIndexOf('_') ;
|
||
|
|
lastIndex = parseInt(lastIndex) ;
|
||
|
|
const col_nr = id_2.substring(lastIndex+1);
|
||
|
|
\$("#selectOperator_id_calibration_"+col_nr).val('') ;
|
||
|
|
\$("#selectOperator_id_calibration_"+col_nr).trigger("chosen:updated") ;
|
||
|
|
// \$("#selectOperator_id_calibration_"+col_nr+"_chosen").val('') ;
|
||
|
|
// \$("#selectOperator_id_calibration_"+col_nr+"_chosen").trigger("chosen:updated") ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function add_operator_dropdown (date_name_id,select_box_id,select_name,select_id,date,row_nr,do_not_display) {
|
||
|
|
|
||
|
|
// console.log("add_operator_dropdown : "+date_name_id+" , "+select_box_id) ;
|
||
|
|
|
||
|
|
if (!do_not_display) {
|
||
|
|
display_non_empty_operator_dropdown (date_name_id,select_box_id) ;
|
||
|
|
}
|
||
|
|
if (\$("#"+select_box_id).html()) {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
\$("#"+date_name_id+" label.control-label").text(date) ;
|
||
|
|
let transfer_val = \$("#"+select_id).val() ;
|
||
|
|
let select_drop_down = add_select_raw (row_nr,select_name,select_id,"Select an Option","$operator_options",-1,100) ;
|
||
|
|
\$("#"+select_box_id).html(select_drop_down) ;
|
||
|
|
\$("#"+select_box_id).trigger("chosen:updated") ;
|
||
|
|
\$("#"+select_id).chosen({allow_single_deselect:true}) ;
|
||
|
|
\$("#"+select_id+"_chosen").css("width","100%") ;
|
||
|
|
|
||
|
|
if (transfer_val) {
|
||
|
|
\$("#"+select_id).val(transfer_val) ;
|
||
|
|
\$("#"+select_id).trigger("chosen:updated") ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function display_non_empty_operator_dropdown (date_name_id,select_box_id) {
|
||
|
|
|
||
|
|
// console.log("display_non_empty_operator_dropdown : "+date_name_id+" , "+select_box_id) ;
|
||
|
|
|
||
|
|
if (!\$("#"+select_box_id).is(":hidden")) {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
// console.log("display_non_empty_operator_dropdown : "+date_name_id+",:::,"+select_box_id) ;
|
||
|
|
|
||
|
|
\$("#"+date_name_id).show() ;
|
||
|
|
\$("#"+date_name_id).removeClass('col-md-0').addClass('col-md-1');
|
||
|
|
\$("#"+select_box_id).show() ;
|
||
|
|
\$("#"+select_box_id).removeClass('col-md-0').addClass('col-md-1');
|
||
|
|
}
|
||
|
|
|
||
|
|
function delete_operator_dropdown (date_name_id,select_box_id,do_not_hide) {
|
||
|
|
|
||
|
|
// console.log("delete_operator_dropdown : "+date_name_id+" , "+select_box_id) ;
|
||
|
|
|
||
|
|
if (!do_not_hide) {
|
||
|
|
hide_non_empty_operator_dropdown (date_name_id,select_box_id) ;
|
||
|
|
}
|
||
|
|
if (!\$("#"+select_box_id).html()) {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
\$("#"+date_name_id+" label.control-label").text(' ') ;
|
||
|
|
\$("#"+select_box_id).html('') ;
|
||
|
|
\$("#"+select_box_id).trigger("chosen:updated") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function hide_non_empty_operator_dropdown (date_name_id,select_box_id) {
|
||
|
|
|
||
|
|
// console.log("hide_non_empty_operator_dropdown : "+date_name_id+" , "+select_box_id) ;
|
||
|
|
|
||
|
|
if (\$("#"+select_box_id).is(":hidden")) {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
\$("#"+date_name_id).hide() ;
|
||
|
|
\$("#"+date_name_id).removeClass('col-md-1').addClass('col-md-0') ;
|
||
|
|
\$("#"+select_box_id).removeClass('col-md-1').addClass('col-md-0') ;
|
||
|
|
\$("#"+select_box_id).hide() ;
|
||
|
|
}
|
||
|
|
|
||
|
|
function click_add_daily_operator (id) {
|
||
|
|
|
||
|
|
let row_nr = get_row_nr(id) ;
|
||
|
|
\$("#clicked_any_button").text("1") ;
|
||
|
|
\$("input[name='clicked_button_"+row_nr+"']").val("1") ;
|
||
|
|
|
||
|
|
// console.log("nr_of_active_days : "+nr_of_active_days) ;
|
||
|
|
|
||
|
|
let nr_of_active_days = calc_nr_of_active_days() ;
|
||
|
|
|
||
|
|
// console.log(\$("input[name='time_from").val()) ;
|
||
|
|
|
||
|
|
// console.log("time_from : "+\$("input[name='date_from']").val()) ;
|
||
|
|
// console.log("time_to : "+\$("input[name='date_to']").val()) ;
|
||
|
|
|
||
|
|
const datesBetween = getDatesBetween(\$("input[name='date_from']").val(),\$("input[name='date_to']").val(),0) ;
|
||
|
|
|
||
|
|
let date_counter = 0 ; let dates_map = {} ;
|
||
|
|
for (const date of datesBetween) {
|
||
|
|
date_counter++ ;
|
||
|
|
dates_map[date_counter] = date ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (nr_of_active_days && nr_of_active_days <= 6) {
|
||
|
|
for (let i=1; i<=20; i++) {
|
||
|
|
if (\$("#day_"+i).val()) {
|
||
|
|
add_operator_dropdown ("day_"+i+"_name","day_"+row_nr+"_"+i,"custom_operator_"+row_nr+"_"+i,"selectCustom_operator_"+row_nr+"_"+i,dates_map[i]) ;
|
||
|
|
if (\$("#selectCustom_operator_"+row_nr+"_"+i).val() && \$("#selectOperator_id_calibration_"+row_nr).val()) {
|
||
|
|
\$("#selectOperator_id_calibration_"+row_nr).val('') ;
|
||
|
|
\$("#selectOperator_id_calibration_"+row_nr).trigger("chosen:updated") ;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
delete_operator_dropdown ("day_"+i+"_name","day_"+row_nr+"_"+i) ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
|
||
|
|
if (\$("#system_name_row_"+row_nr+"_extra_1").is(":hidden")) {
|
||
|
|
\$("#system_name_row_"+row_nr+"_extra_1").show() ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (\$("#day_names_"+row_nr+"_extra_1").is(":hidden")) {
|
||
|
|
\$("#day_names_"+row_nr+"_extra_1").show() ;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
let next_row = row_nr + 1 ;
|
||
|
|
if (!\$("#extra_heading_"+row_nr).length && row_nr > 1) {
|
||
|
|
\$("#system_name_row_"+row_nr).before("<div class='row' id='extra_heading_"+row_nr+"'><div class='col-md-2'></div><div class='col-md-4'><div class='row'><div class='col-md-4'><label class='control-label'> System Name</label></div><div class='col-md-4'><label class='control-label'> Club Name</label></div><div class='col-md-4'><label class='control-label'> Operator Name</label></div></div></div></div>") ;
|
||
|
|
}
|
||
|
|
if (!\$("#system_name_row_"+next_row).is(":hidden") && !\$("#extra_heading_"+next_row).length) {
|
||
|
|
\$("#system_name_row_"+next_row).before("<div class='row' id='extra_heading_"+next_row+"'><div class='col-md-2'></div><div class='col-md-4'><div class='row'><div class='col-md-4'><label class='control-label'> System Name</label></div><div class='col-md-4'><label class='control-label'> Club Name</label></div><div class='col-md-4'><label class='control-label'> Operator Name</label></div></div></div></div>") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
let nr_dates_used = 0 ; let dates_used = {} ;
|
||
|
|
|
||
|
|
let fix_width_ids = "#1" ;
|
||
|
|
|
||
|
|
for (let i=1; i<=20; i++) {
|
||
|
|
|
||
|
|
delete_operator_dropdown ("day_"+i+"_name","day_"+row_nr+"_"+i) ;
|
||
|
|
|
||
|
|
if (\$("#day_"+i).val() && nr_dates_used < 10) {
|
||
|
|
nr_dates_used++ ;
|
||
|
|
dates_used[i] = 1 ;
|
||
|
|
if (\$("#day_"+i+"_name_"+row_nr+"_extra_1").is(":hidden") && \$("#day_"+i).val()) {
|
||
|
|
\$("#day_"+i+"_name_"+row_nr+"_extra_1").show() ;
|
||
|
|
\$("#day_"+i+"_name_"+row_nr+"_extra_1").removeClass('col-md-0').addClass('col-md-1') ;
|
||
|
|
} else if (!\$("#day_"+i+"_name_"+row_nr+"_extra_1").is(":hidden") && !\$("#day_"+i).val()) {
|
||
|
|
\$("#day_"+i+"_name_"+row_nr+"_extra_1").hide() ;
|
||
|
|
\$("#day_"+i+"_name_"+row_nr+"_extra_1").removeClass('col-md-1').addClass('col-md-0') ;
|
||
|
|
}
|
||
|
|
add_operator_dropdown("day_"+i+"_name_"+row_nr+"_extra_1","day_"+row_nr+"_"+i+"_extra_1","custom_operator_"+row_nr+"_"+i,"selectCustom_operator_"+row_nr+"_"+i,dates_map[i],row_nr) ;
|
||
|
|
fix_width_ids = fix_width_ids+",#selectCustom_operator_"+row_nr+"_"+i+"_chosen" ;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
delete_operator_dropdown("day_"+i+"_name_"+row_nr+"_extra_1","day_"+row_nr+"_"+i+"_extra_1") ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
if (nr_of_active_days > 10 || nr_dates_used < nr_of_active_days) {
|
||
|
|
|
||
|
|
if (\$("#system_name_row_"+row_nr+"_extra_2").is(":hidden")) {
|
||
|
|
\$("#system_name_row_"+row_nr+"_extra_2").show() ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (\$("#day_names_"+row_nr+"_extra_2").is(":hidden")) {
|
||
|
|
\$("#day_names_"+row_nr+"_extra_2").show() ;
|
||
|
|
}
|
||
|
|
|
||
|
|
for (let i=11; i<=20; i++) {
|
||
|
|
if (\$("#day_"+i).val() && !dates_used[i]) {
|
||
|
|
nr_dates_used++ ;
|
||
|
|
if (\$("#day_"+nr_dates_used+"_name_"+row_nr+"_extra_2").is(":hidden") && \$("#day_"+i).val()) {
|
||
|
|
\$("#day_"+nr_dates_used+"_name_"+row_nr+"_extra_2").show() ;
|
||
|
|
\$("#day_"+nr_dates_used+"_name_"+row_nr+"_extra_2").removeClass('col-md-0').addClass('col-md-1') ;
|
||
|
|
}
|
||
|
|
add_operator_dropdown("day_"+i+"_name_"+row_nr+"_extra_2","day_"+row_nr+"_"+i+"_extra_2","custom_operator_"+row_nr+"_"+i,"selectCustom_operator_"+row_nr+"_"+i,dates_map[i],row_nr) ;
|
||
|
|
fix_width_ids = fix_width_ids+",#selectCustom_operator_"+row_nr+"_"+i+"_chosen" ;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
delete_operator_dropdown("day_"+i+"_name_"+row_nr+"_extra_2","day_"+row_nr+"_"+i+"_extra_2") ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
\$(fix_width_ids).css("width","100%") ;
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// display_non_empty_operator_dropdown("day_1_name","day_"+q+"_"+col) ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function deselect_daily_operators (id) {
|
||
|
|
|
||
|
|
if (\$("#"+id).val()) {
|
||
|
|
let row_nr = get_row_nr(id) ;
|
||
|
|
for (let col=1;col<=20;col++) {
|
||
|
|
if (!\$("#day_"+row_nr+"_"+col).html() && !\$("#day_"+row_nr+"_"+col+"_extra_1").html() && !\$("#day_"+row_nr+"_"+col+"_extra_2").html()) {
|
||
|
|
continue ;
|
||
|
|
}
|
||
|
|
\$("#selectCustom_operator_"+row_nr+"_"+col).val('') ;
|
||
|
|
\$("#selectCustom_operator_"+row_nr+"_"+col).trigger("chosen:updated") ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function calc_nr_of_active_days () {
|
||
|
|
|
||
|
|
let nr_of_active_days = 0 ;
|
||
|
|
for (let i=1; i<=20; i++) {
|
||
|
|
if (\$("#day_"+i).val()) {
|
||
|
|
nr_of_active_days++ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return nr_of_active_days ;
|
||
|
|
}
|
||
|
|
|
||
|
|
\$("$plus_button_ids_string").click( function () {
|
||
|
|
|
||
|
|
let row_nr = get_row_nr(this.id) ;
|
||
|
|
row_nr = parseInt(row_nr) ;
|
||
|
|
|
||
|
|
var v = row_nr + 1 ; var v2 = row_nr + 2 ;
|
||
|
|
\$("#btn_system_name_"+row_nr).hide();
|
||
|
|
if (v < 15 && \$('#system_name_row_'+v2).is(':hidden')) {
|
||
|
|
\$("#btn_system_name_"+v).show();
|
||
|
|
}
|
||
|
|
\$("#system_name_row_"+v).show();
|
||
|
|
\$("#system_name_row_"+v).css("margin-bottom","3px");
|
||
|
|
|
||
|
|
let nr_of_active_days = 0 ; let custom_operator_ids_list = "#selectCustom_operator_"+v+"_1" ; let custom_operator_ids_list_chosen = "#selectCustom_operator_"+v+"_1_chosen" ;
|
||
|
|
|
||
|
|
for (let i=1; i<=20; i++) {
|
||
|
|
if (i > 1) {
|
||
|
|
custom_operator_ids_list = custom_operator_ids_list+",#selectCustom_operator_"+v+"_"+i ;
|
||
|
|
custom_operator_ids_list_chosen = custom_operator_ids_list_chosen+",#selectCustom_operator_"+v+"_"+i+"_chosen" ;
|
||
|
|
}
|
||
|
|
if (\$("#day_"+i).val()) {
|
||
|
|
nr_of_active_days++ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
let add_row = add_event_system_row(v,nr_of_active_days) ;
|
||
|
|
|
||
|
|
\$("#system_name_row_"+v).html(add_row) ;
|
||
|
|
\$("#system_name_row_"+v).trigger("chosen:updated") ;
|
||
|
|
|
||
|
|
\$("#selectSystem_name_"+v).chosen({allow_single_deselect:true}) ;
|
||
|
|
\$("#selectClub_name_"+v).chosen({allow_single_deselect:true}) ;
|
||
|
|
\$("#selectOperator_id_calibration_"+v).chosen({allow_single_deselect:true}) ;
|
||
|
|
|
||
|
|
// for (let i=1; i<=20; i++) {
|
||
|
|
// \$("#selectCustom_operator_"+v+"_"+i).chosen({allow_single_deselect:true}) ;
|
||
|
|
\$(""+custom_operator_ids_list).chosen({allow_single_deselect:true}) ;
|
||
|
|
\$(""+custom_operator_ids_list_chosen).css("width","100%") ;
|
||
|
|
// \$("#selectCustom_operator_"+v+"_"+i+"_chosen").css("width","100%") ;
|
||
|
|
// }
|
||
|
|
|
||
|
|
\$("#system_name_row_"+v).on("click","#add_daily_operators_"+v, function() {
|
||
|
|
event.preventDefault();
|
||
|
|
click_add_daily_operator (this.id) ;
|
||
|
|
});
|
||
|
|
|
||
|
|
\$("#system_name_row_"+v).on("change","#selectCustom_operator_"+v+"_1,#selectCustom_operator_"+v+"_2,#selectCustom_operator_"+v+"_3,#selectCustom_operator_"+v+"_4,#selectCustom_operator_"+v+"_5,#selectCustom_operator_"+v+"_6,#selectCustom_operator_"+v+"_7,#selectCustom_operator_"+v+"_8,#selectCustom_operator_"+v+"_9,#selectCustom_operator_"+v+"_10,#selectCustom_operator_"+v+"_11,#selectCustom_operator_"+v+"_12,#selectCustom_operator_"+v+"_13,#selectCustom_operator_"+v+"_14,#selectCustom_operator_"+v+"_15,#selectCustom_operator_"+v+"_16,#selectCustom_operator_"+v+"_17,#selectCustom_operator_"+v+"_18,#selectCustom_operator_"+v+"_19,#selectCustom_operator_"+v+"_20", function() {
|
||
|
|
process_operators_when_selecting_daily_operator(this.id) ;
|
||
|
|
});
|
||
|
|
|
||
|
|
\$("#system_name_row_"+v).on("change","#selectOperator_id_calibration_"+v, function() {
|
||
|
|
deselect_daily_operators(this.id) ;
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
\$("$table_plus_button_ids_string").click( function () {
|
||
|
|
|
||
|
|
click_add_daily_operator (this.id) ;
|
||
|
|
|
||
|
|
let v = get_row_nr(this.id) ;
|
||
|
|
\$("#system_name_row_"+v).on("change","#selectCustom_operator_"+v+"_1,#selectCustom_operator_"+v+"_2,#selectCustom_operator_"+v+"_3,#selectCustom_operator_"+v+"_4,#selectCustom_operator_"+v+"_5,#selectCustom_operator_"+v+"_6,#selectCustom_operator_"+v+"_7,#selectCustom_operator_"+v+"_8,#selectCustom_operator_"+v+"_9,#selectCustom_operator_"+v+"_10,#selectCustom_operator_"+v+"_11,#selectCustom_operator_"+v+"_12,#selectCustom_operator_"+v+"_13,#selectCustom_operator_"+v+"_14,#selectCustom_operator_"+v+"_15,#selectCustom_operator_"+v+"_16,#selectCustom_operator_"+v+"_17,#selectCustom_operator_"+v+"_18,#selectCustom_operator_"+v+"_19,#selectCustom_operator_"+v+"_20", function() {
|
||
|
|
process_operators_when_selecting_daily_operator(this.id) ;
|
||
|
|
});
|
||
|
|
|
||
|
|
}) ;
|
||
|
|
|
||
|
|
\$("$daily_op_ids_string").change( function () {
|
||
|
|
|
||
|
|
console.log("DAILY CHANGE : "+this.id) ;
|
||
|
|
|
||
|
|
process_operators_when_selecting_daily_operator(this.id) ;
|
||
|
|
}) ;
|
||
|
|
|
||
|
|
|
||
|
|
\$("$overall_op_ids_string").change( function () {
|
||
|
|
deselect_daily_operators(this.id) ;
|
||
|
|
}) ;
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# my $table_extra_op_ids_string = join(",",@table_extra_op_ids) ;
|
||
|
|
|
||
|
|
# $trigger_jquery_raw .= qq(\$("$table_extra_op_ids_string").chosen({ allow_single_deselect:true });) ;
|
||
|
|
|
||
|
|
$fcol = 6 ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub fix_options_for_javascript {
|
||
|
|
|
||
|
|
my ($options) = @_ ;
|
||
|
|
$options =~ s/\SELECTED//g ;
|
||
|
|
$options =~ s/\"/\'/g ;
|
||
|
|
return $options ;
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub build_workings_costings_form {
|
||
|
|
|
||
|
|
my ($id,$tab,$rcnt,$suffix) = @_ ;
|
||
|
|
|
||
|
|
$tab_sections{$tab} .= "$suffix+$rcnt|" ;
|
||
|
|
|
||
|
|
$jq_work_cal = qq~
|
||
|
|
var vat_totalW$suffix = 0 ;
|
||
|
|
var total_totalW$suffix = 0 ;
|
||
|
|
var subtotalW$suffix = 0 ;
|
||
|
|
var vat_amountW = 0 ;
|
||
|
|
~ ;
|
||
|
|
$jq_fs = '' ;
|
||
|
|
|
||
|
|
%cnt_specific_jquery = () ;
|
||
|
|
|
||
|
|
&set_check_boxes_checked($id,$rcnt,"excl",$suffix);
|
||
|
|
&set_check_boxes_checked($id,$rcnt,"vat",$suffix);
|
||
|
|
|
||
|
|
my $cntloop = 1;
|
||
|
|
my $field = "";
|
||
|
|
my $val = 0;
|
||
|
|
|
||
|
|
my @excl_old = split(";",$db{event_quotes_min}{$id}{"excl_$suffix"});
|
||
|
|
my @qty_old = split(";",$db{event_quotes_min}{$id}{"qty_$suffix"});
|
||
|
|
my @vat_old = split(";",$db{event_quotes_min}{$id}{"vat_$suffix"});
|
||
|
|
my @remarks_old = () ;
|
||
|
|
my @supplier_old = () ;
|
||
|
|
my @ref_nr_old = () ;
|
||
|
|
my @amount_usd_old = () ;
|
||
|
|
my @amount_ttl_old = () ;
|
||
|
|
my @des_old = () ;
|
||
|
|
my @curr_amnt_cost = () ;
|
||
|
|
my @qty_old_half_day = () ;
|
||
|
|
|
||
|
|
if ($suffix eq "workings_event") {
|
||
|
|
@remarks_old = split(";",$db{event_quotes_min}{$id}{remarks_workings_event});
|
||
|
|
@supplier_old = split(";",$db{event_quotes_min}{$id}{supplier_workings_event});
|
||
|
|
@ref_nr_old = split(";",$db{event_quotes_min}{$id}{ref_nr_workings_event});
|
||
|
|
@amount_usd_old = split(";",$db{event_quotes_min}{$id}{amount_usd_workings_event});
|
||
|
|
@amount_ttl_old = split(";",$db{event_quotes_min}{$id}{amount_workings_event});
|
||
|
|
@des_old = split(";",$db{event_quotes_min}{$id}{description_workings_event}) ;
|
||
|
|
} else {
|
||
|
|
@amount_usd_old = split(";",$db{event_quotes_min}{$id}{usd_amnt_costing_event});
|
||
|
|
@amount_ttl_old = split(";",$db{event_quotes_min}{$id}{item_ttl_costing_event});
|
||
|
|
@des_old = split(";",$db{event_quotes_min}{$id}{item_costing_event});
|
||
|
|
@curr_amnt_cost = split(";",$db{event_quotes_min}{$id}{curr_amnt_costing_event});
|
||
|
|
@qty_old_half_day = split(";",$db{event_quotes_min}{$id}{qty_half_day_costing_event});
|
||
|
|
}
|
||
|
|
|
||
|
|
for (1 .. $rcnt) {
|
||
|
|
|
||
|
|
$display_style = '' ;
|
||
|
|
$display_plus_btn = '' ;
|
||
|
|
my $style_display_butt = "" ;
|
||
|
|
unless ($_ == 1 or $des_old[$_ - 1]) {
|
||
|
|
$display_style = qq~style='display:none;'~ ;
|
||
|
|
push @btn_ids,"#btn_$suffix\_$_" ;
|
||
|
|
if ( $_>$cntloop ) {
|
||
|
|
$display_butt = qq~display:none;~ ;
|
||
|
|
$style_display_butt = qq~style="display:none;"~ ;
|
||
|
|
} else {
|
||
|
|
$display_butt = '' ;
|
||
|
|
}
|
||
|
|
$display_plus_btn = ($_>$cntloop) ? qq~<a id="btn_$suffix\_$_" href="#" style="padding-left:16px"></a>~ : qq~<a id="btn_$suffix\_$_" href="#" style="padding-left:16px;$display_butt"><i class="glyphicon glyphicon-plus blue"></i></a>~;
|
||
|
|
} else {
|
||
|
|
$cntloop++ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$add_form_fields .= qq~<div class='row' id='$suffix\_$_' $display_style>~ ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
if ($des_old[$_-1] || $_ == 1) {
|
||
|
|
|
||
|
|
push @all_select_ids,"#selectDescription_$suffix\_$_" ;
|
||
|
|
push @all_select_ids,"#selectOperator_$suffix\_$_" if $suffix eq "workings_event" ;
|
||
|
|
|
||
|
|
$field = "excl_$suffix\_$_" ;
|
||
|
|
$fcol = 1;
|
||
|
|
# if ($checkit{$field} == 1) {
|
||
|
|
if ($excl_old[$_ - 1]){
|
||
|
|
$checked = 'CHECKED';
|
||
|
|
} elsif (($excl_tick{$_}) and ($iaction eq 'add')) {
|
||
|
|
$checked = 'CHECKED';
|
||
|
|
} else {
|
||
|
|
$checked = '';
|
||
|
|
}
|
||
|
|
$label{$field} = 1;
|
||
|
|
$add_form_fields .= &common_min_form_checkbox_col($field,$checkit{$field},$checked) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "description_$suffix\_$_" ;
|
||
|
|
$fcol = 2;
|
||
|
|
$allow_deselect{$field} = 1;
|
||
|
|
$preferred_title{$field} = "Description $_" ; #if $suffix ne '_workings_casual_users';
|
||
|
|
$add_form_fields .= &common_min_form_select_col($field,'') ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
if ($suffix eq "workings_event") {
|
||
|
|
|
||
|
|
$field = "operator_$suffix\_$_" ;
|
||
|
|
$fcol = 2;
|
||
|
|
$allow_deselect{$field} = 1;
|
||
|
|
$preferred_title{$field} = "Operator $_" ;
|
||
|
|
$add_form_fields .= &common_min_form_select_col($field,'') ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "remarks_$suffix\_$_" ;
|
||
|
|
$fcol = 1;
|
||
|
|
$allow_deselect{$field} = 1;
|
||
|
|
$preferred_placeholder{$field} = "Remarks $_" ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field, $remarks_old[$_ - 1]) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "supplier_$suffix\_$_" ;
|
||
|
|
$fcol = 1;
|
||
|
|
$allow_deselect{$field} = 1;
|
||
|
|
$preferred_placeholder{$field} = "Supplier $_" ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$supplier_old[$_ - 1]) if $suffix ne '_workings_casual_users';
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "ref_nr_$suffix\_$_" ;
|
||
|
|
$fcol = 1;
|
||
|
|
$allow_deselect{$field} = 1;
|
||
|
|
$preferred_placeholder{$field} = "Ref Nr $_" ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$ref_nr_old[$_ - 1]) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "qty_$suffix\_$_" ;
|
||
|
|
# $field .= '_costing_event';
|
||
|
|
$fcol = 1;
|
||
|
|
$input_style{$field} = qq(style="text-align:right;");
|
||
|
|
$preferred_placeholder{$field} = "Qty $_" ;
|
||
|
|
$val = $qty_old[$_ - 1] ;
|
||
|
|
unless ($val) {
|
||
|
|
$val = $def_qty{$_} ;
|
||
|
|
}
|
||
|
|
$val = &q_get_val($val) ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$val) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
} elsif ($suffix eq "costing_event") {
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "qty_full_day_$suffix\_$_" ;
|
||
|
|
# $field .= '_costing_event';
|
||
|
|
$fcol = 1;
|
||
|
|
$input_style{$field} = qq(style="text-align:right;");
|
||
|
|
$preferred_placeholder{$field} = "Qty Full Day $_" ;
|
||
|
|
$val = $qty_old[$_ - 1] ;
|
||
|
|
unless ($val) {
|
||
|
|
$val = $def_qty{$_} ;
|
||
|
|
}
|
||
|
|
$val = &q_get_val($val) ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$val) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "qty_half_day_$suffix\_$_" ;
|
||
|
|
# $field .= '_costing_event';
|
||
|
|
$fcol = 1;
|
||
|
|
$input_style{$field} = qq(style="text-align:right;");
|
||
|
|
$preferred_placeholder{$field} = "Qty Half Day $_" ;
|
||
|
|
$val = $qty_old_half_day[$_ - 1] ;
|
||
|
|
unless ($val) {
|
||
|
|
$val = $def_qty{$_} ;
|
||
|
|
}
|
||
|
|
$val = &q_get_val($val) ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$val) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
$field = "amount_usd_$suffix\_$_" ;
|
||
|
|
$fcol = 1;
|
||
|
|
$input_style{$field} = qq(style="text-align:right;");
|
||
|
|
$val = $amount_usd_old[$_ - 1] ;
|
||
|
|
unless ($val) {
|
||
|
|
$val = $def_usd{$_} ;
|
||
|
|
}
|
||
|
|
$val = &q_get_val($val) ;
|
||
|
|
$preferred_placeholder{$field} = "Amount $_" ;
|
||
|
|
# $excl_on_change{$field} = 1 ;
|
||
|
|
$val = '0.00' unless $val ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$val,1) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
# if ($suffix eq "costing_event") {
|
||
|
|
|
||
|
|
# $field = "curr_amnt_$suffix\_$_" ;
|
||
|
|
# # $field .= '_costing_event';
|
||
|
|
# $input_style{$field} = qq(style="text-align:right;");
|
||
|
|
# $readonly{$field} = 'READONLY' ; # $fcol=2 ;
|
||
|
|
# $preferred_placeholder{$field} = "ZAR Amnt $_" ;
|
||
|
|
# # $val = &q_get_val($db{$table}{$id}{$field}) ;
|
||
|
|
# $val = &q_get_val($curr_amnt_cost[$_ -1]) ;
|
||
|
|
# our $type = 'hidden' ;
|
||
|
|
# $add_form_fields .= &common_min_form_input_col($field,$val,1) ; $type = '' ;
|
||
|
|
# $type = '' ;
|
||
|
|
|
||
|
|
# }
|
||
|
|
|
||
|
|
# #----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "amount_ttl_$suffix\_$_" ;
|
||
|
|
$input_style{$field} = qq(style="text-align:right;");
|
||
|
|
$val = $amount_ttl_old[$_ - 1] ;
|
||
|
|
$val = &q_get_val($val) ;
|
||
|
|
# $val = &common_commify($val) ;
|
||
|
|
# $val = sprintf("%0.2f",$val) ;
|
||
|
|
$preferred_placeholder{$field} = "Total Amount $_" ;
|
||
|
|
# $excl_on_change{$field} = 1 ;
|
||
|
|
$readonly{$field} = 'READONLY' ;
|
||
|
|
$val = '0.00' unless $val ;
|
||
|
|
$add_form_fields .= &common_min_form_input_col($field,$val,1) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
$field = "vat_$suffix\_$_" ;
|
||
|
|
$fcol=1 ;
|
||
|
|
# if ($checkit{$field} == 1) {
|
||
|
|
if($vat_old[$_ - 1]){
|
||
|
|
$checked = 'CHECKED';
|
||
|
|
} elsif ($iaction eq 'add') {
|
||
|
|
$checked = 'CHECKED';
|
||
|
|
} else {
|
||
|
|
$checked = '';
|
||
|
|
}
|
||
|
|
$label{$field} = 1 ;
|
||
|
|
if ($no_vat{$suffix}) {
|
||
|
|
$style_field{$field} = 'style="display:none;"' ;
|
||
|
|
}
|
||
|
|
# $excl_on_change{$field} = 1 ;
|
||
|
|
$add_form_fields .= &common_min_form_checkbox_col($field,$checkit{$field},$checked) ;
|
||
|
|
|
||
|
|
#----------------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
} else {
|
||
|
|
$tindex+=10 if $suffix eq "workings_event" ;
|
||
|
|
$tindex+=7 if $suffix eq "costing_event" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$add_form_fields .= qq~</div>~ ;
|
||
|
|
|
||
|
|
$add_form_fields .= qq~
|
||
|
|
<div class='row' id="btn_row_$suffix\_$_" $style_display_butt >
|
||
|
|
<div class="col-md-1">
|
||
|
|
$display_plus_btn
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
my $style_disp_row = ($des_old[$_-1]) ? "" : "style='display:none;'" ;
|
||
|
|
$add_form_fields .= qq~
|
||
|
|
<div class='row' $style_disp_row id = "2_$suffix\_$_">
|
||
|
|
<div class='col-md-12' style="margin:2px 0 0 0">
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub q_get_val {
|
||
|
|
|
||
|
|
my ($val) = @_ ;
|
||
|
|
|
||
|
|
my $disp_val = $val ;
|
||
|
|
|
||
|
|
if ($val eq '0.00') {
|
||
|
|
$disp_val = '' ;
|
||
|
|
}
|
||
|
|
|
||
|
|
return ($disp_val);
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub set_check_boxes_checked {
|
||
|
|
|
||
|
|
my ($id,$rcnt,$prefix,$suffix) = @_ ;
|
||
|
|
|
||
|
|
for (1 .. $rcnt) {
|
||
|
|
|
||
|
|
my $ifield = $prefix . '_' . "$_$suffix" ;
|
||
|
|
my $val = $db{$table}{$id}{$ifield} ;
|
||
|
|
# &common_debug("set_check_boxes_checked: [prefix=$prefix] [suffix=$suffix] ifield=$ifield, val=$val") ;
|
||
|
|
|
||
|
|
$checkit{$ifield} = $val ;
|
||
|
|
}
|
||
|
|
|
||
|
|
} #----------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub select_opts {
|
||
|
|
|
||
|
|
my ($id) = @_ ;
|
||
|
|
|
||
|
|
our $savjqy = 1 ;
|
||
|
|
|
||
|
|
&db_min_ro('event_quotes_min','*',"`id`='$id'",'','') if $id ;
|
||
|
|
|
||
|
|
%filter_val = () ; %filter_select_opts = () ;
|
||
|
|
# if ($is_schools_manager) {
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
if ($glod_user_level < 3) {
|
||
|
|
$filter_select_opts{'regions'} = 1 ;
|
||
|
|
foreach $_reg_id (keys %{$glob_regids{$userid}}) {
|
||
|
|
$filter_val{'regions'}{$_reg_id} = 1 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# &common_debug("[$usertype] filter_select_opts = $filter_select_opts{'regions'}") ;
|
||
|
|
|
||
|
|
local $region_id_where = qq~~ ; local @abcd = () ;
|
||
|
|
|
||
|
|
# if ($is_schools_manager) {
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
if ($glod_user_level < 3) {
|
||
|
|
foreach (split(",",$db{users}{$userid}{region_ids})) {
|
||
|
|
push @abcd , "`id` = '$_'" ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$region_id_where = join (" OR ",@abcd) ;
|
||
|
|
|
||
|
|
&common_min_select_opts('region_id','regions','name',$db{$table}{$id}{region_id},'','',$region_id_where);
|
||
|
|
|
||
|
|
%filter_val = () ; %filter_select_opts = () ;
|
||
|
|
|
||
|
|
my $city_where = qq~~ ; @abcd = () ;
|
||
|
|
|
||
|
|
# if ($is_schools_manager) {
|
||
|
|
# if ($glod_user_level < 4) {
|
||
|
|
if ($glod_user_level < 3) {
|
||
|
|
foreach (keys %{$db{regions}}) {
|
||
|
|
push @abcd , "`province` = '$db{regions}{$_}{name}'" ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$city_where = join (" OR ",@abcd) ;
|
||
|
|
|
||
|
|
%selected_multi = () ;
|
||
|
|
$multiple{city_id} = 1;
|
||
|
|
my @cities_ids = split(/\,/,$db{$table}{$id}{city_id});
|
||
|
|
foreach (@cities_ids) {
|
||
|
|
$selected_multi{$_} = 'SELECTED' ;
|
||
|
|
# &common_debug("SELECTED sport_type_ids [$_] : [selected=$selected_multi{$_}]") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($city_where and $db{regions}{$db{$table}{$id}{region_id}}{name}) {
|
||
|
|
$city_where = qq~($city_where) AND `province` = '$db{regions}{$db{$table}{$id}{region_id}}{name}'~ ;
|
||
|
|
} elsif (not $city_where and $db{regions}{$db{$table}{$id}{region_id}}{name}) {
|
||
|
|
$city_where = qq~`province` = '$db{regions}{$db{$table}{$id}{region_id}}{name}'~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
&common_min_select_opts('city_id','cities','city',$db{$table}{$id}{city_id},'','',$city_where);
|
||
|
|
|
||
|
|
$preferred_title{sport_type_ids} = "Sport Types" ;
|
||
|
|
%selected_multi = () ;
|
||
|
|
$multiple{sport_type_ids} = 1;
|
||
|
|
my @sport_type_ids = split(/\,/,$db{$table}{$id}{sport_type_ids});
|
||
|
|
foreach (@sport_type_ids) {
|
||
|
|
$selected_multi{$_} = 'SELECTED' ;
|
||
|
|
# &common_debug("SELECTED sport_type_ids [$_] : [selected=$selected_multi{$_}]") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# foreach (sort {$db{sport_types}{$a}{name} cmp $db{sport_types}{$b}{name}} keys %{$db{sport_types}}) {
|
||
|
|
# $opts{sport_type_ids} .= qq~<option value="$_" $selected_multi{$_}>$db{sport_types}{$_}{name}</option>~ ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
&common_min_select_opts('sport_type_ids','sport_types','name',$db{$table}{$id}{sport_type_ids},'','','','','name') ;
|
||
|
|
|
||
|
|
$extra_form_fields .= qq~<input type="hidden" name="sporttypeids" id="sport-type-ids" value="">~;
|
||
|
|
|
||
|
|
$preferred_title{organisation_ids} = "Venue" ;
|
||
|
|
%selected_multi = () ;
|
||
|
|
$multiple{organisation_ids} = 1;
|
||
|
|
my @organisation_ids = split(/\,/,$db{$table}{$i{id}}{organisation_ids});
|
||
|
|
foreach (@organisation_ids) {
|
||
|
|
$selected_multi{$_} = 'SELECTED' ;
|
||
|
|
# &common_debug("SELECTED organisation_ids [$_] : [selected=$selected_multi{$_}]") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $organisations_where = qq~~ ;
|
||
|
|
$organisations_where = qq~`region_code`='$db{regions}{$db{$table}{$i{id}}{region_id}}{code}'~ if $db{regions}{$db{$table}{$i{id}}{region_id}}{code} ;
|
||
|
|
|
||
|
|
&common_min_select_opts('organisation_ids','organisations','name',$db{$table}{$i{id}}{organisation_ids},'','',"$organisations_where") ;
|
||
|
|
$extra_form_fields .= qq~<input type="hidden" name="organisationids" id="organisation-ids" value="">~;
|
||
|
|
%selected_multi = () ;
|
||
|
|
|
||
|
|
&common_min_select_opts('type','event_types','name',$db{$table}{$id}{type},1,'','');
|
||
|
|
|
||
|
|
# my %selected_table = () ;
|
||
|
|
|
||
|
|
# if ($usertype ne 'schools_manager') {
|
||
|
|
# if ($glod_user_level > 3) {
|
||
|
|
# if ($glod_user_level > 2) {
|
||
|
|
|
||
|
|
%selected_multi = () ;
|
||
|
|
$preferred_title{operator_ids} = "Operators" ;
|
||
|
|
$multiple{operator_ids} = 1;
|
||
|
|
# my @op_split = split(/;~;/,$db{$table}{$i{id}}{operator_ids}) ;
|
||
|
|
# my @operator_ids = split(/\,/,$op_split[0]);
|
||
|
|
# foreach (@operator_ids) {
|
||
|
|
# my $cnt_op_ids = 0 ;
|
||
|
|
# foreach (@table_op_ids) {
|
||
|
|
# $cnt_op_ids++ ;
|
||
|
|
# next unless $_ ;
|
||
|
|
# $selected_table{$cnt_op_ids}{$_} = 'SELECTED' ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
foreach (@multi_select_op_ids) {
|
||
|
|
$selected_multi{$_} = 'SELECTED' ; # &common_debug("SELECTED operator_ids [$_] : [selected=$selected_multi{$_}]") ;
|
||
|
|
}
|
||
|
|
|
||
|
|
&db_min_ro('users',"id,name,region_ids","user_type LIKE 'casual%' AND block <> 1 AND inactive <> 1",'','') ;
|
||
|
|
|
||
|
|
foreach my $op_id (sort {$db{users}{$a}{name} cmp $db{users}{$b}{name}} keys %{$db{users}}) {
|
||
|
|
my $regions = "" ;
|
||
|
|
foreach (split(",",$db{users}{$op_id}{region_ids})) {
|
||
|
|
$regions .= "$db{regions}{$_}{code}," ;
|
||
|
|
}
|
||
|
|
chop $regions if $regions ;
|
||
|
|
my $user_names = $db{users}{$op_id}{name} ;
|
||
|
|
$user_names = "$db{users}{$op_id}{name} [$regions]" if $regions ;
|
||
|
|
$opts{operator_ids} .= qq~<option value = "$op_id" $selected_multi{$op_id}>$user_names</option>~ ;
|
||
|
|
# for (1 .. $nr_of_system_names_and_clubs) {
|
||
|
|
# $opts{"operator_ids_$_"} .= qq~<option value = "$op_id" $selected_table{$_}{$op_id}>$user_names</option>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# &common_min_select_opts('operator_ids','users','name',$db{$table}{$i{id}}{operator_ids},'','',"user_type LIKE 'casual%'") ;
|
||
|
|
$extra_form_fields .= qq~<input type="hidden" name="operatorids" id="operator-ids" value="">~;
|
||
|
|
|
||
|
|
if ($glod_user_level > 2) {
|
||
|
|
|
||
|
|
%selected_multi = () ;
|
||
|
|
|
||
|
|
$multiple{type_details_id} = 1 ;
|
||
|
|
$preferred_title{type_details_id} = "Type Details" ;
|
||
|
|
my @type_details_id = split(/\,/,$db{$table}{$i{id}}{type_details_id});
|
||
|
|
foreach (@type_details_id) { $selected_multi{$_} = 'SELECTED' ; }
|
||
|
|
&common_min_select_opts('type_details_id','event_type_details','name',$db{$table}{$id}{type_details_id},0,'','');
|
||
|
|
$extra_form_fields .= qq~<input type="hidden" name="typedetailsid" id="type-details-ids" value="">~;
|
||
|
|
%selected_multi = () ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$trigger_jquery .= qq~\$("#selectType\_chosen").css( "width", "80%" );~ ;
|
||
|
|
|
||
|
|
%selected_multi = () ;
|
||
|
|
|
||
|
|
my @currency_arr = qw( currency );
|
||
|
|
|
||
|
|
foreach my $curr (@currency_arr) {
|
||
|
|
if ($db{$table}{$id}{$curr}) {
|
||
|
|
$selected{$curr}{$db{$table}{$id}{$curr}} = 'SELECTED';
|
||
|
|
} else {
|
||
|
|
$selected{$curr}{ZAR} = 'SELECTED';
|
||
|
|
}
|
||
|
|
$select{$curr} = 1 ;
|
||
|
|
$opts{$curr} = qq~
|
||
|
|
<option value="GBP" $selected{$curr}{GBP}>GBP</option>
|
||
|
|
<option value="USD" $selected{$curr}{USD}>USD</option>
|
||
|
|
<option value="ZAR" $selected{$curr}{ZAR}>ZAR</option>
|
||
|
|
<option value="EUR" $selected{$curr}{EUR}>EUR</option>~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
# $select{discount} = 1 ;
|
||
|
|
# $selected{discount}{$db{$table}{$id}{discount}} = 'SELECTED' ;
|
||
|
|
# $opts{discount} = qq~<option value="3" $selected{discount}{3}>3%</option><option value="5" $selected{discount}{5}>5%</option><option value="6" $selected{discount}{6}>6%</option><option value="8" $selected{discount}{8}>8%</option><option value="10" $selected{discount}{10}>10%</option><option value="15" $selected{discount}{15}>15%</option><option value="20" $selected{discount}{20}>20%</option>~ ;
|
||
|
|
|
||
|
|
my $selcntry = ($db{$table}{$id}{country_id}) ? $db{$table}{$id}{country_id} : 242 ; # Default South Africa
|
||
|
|
# &common_debug("country_id : $db{$table}{$id}{country_id} [$selcntry]") ;
|
||
|
|
&common_min_select_opts('country_id','countries','name',$selcntry,1,'country','','id');
|
||
|
|
|
||
|
|
&common_min_select_opts('event_system_id','event_systems','name','',1,'description','') ;
|
||
|
|
&common_min_select_opts('club_ids','clubs','name','',0,'','') ;
|
||
|
|
|
||
|
|
$db{event_quotes}{''}{quote_to} = 5 if $iaction eq 'add' ; # SuperSport Schools (Pty) Ltd
|
||
|
|
$onload = qq~onload=dispCustomer();~ if $iaction eq 'add' ; # SuperSport Schools (Pty) Ltd
|
||
|
|
|
||
|
|
&tab_customer_select_opts('customers','name','','quote_to');
|
||
|
|
|
||
|
|
# $trigger_jquery_raw .= qq~
|
||
|
|
|
||
|
|
# // function calcSection(sufx,cnt) {
|
||
|
|
|
||
|
|
# // var inpItemTtl = \$("#inputAmount_ttl_"+sufx+"_"+cnt) ;
|
||
|
|
# // var inpCurrAmnt = \$("#inputCurr_amnt_"+sufx+"_"+cnt) ;
|
||
|
|
# // var inpItem = \$("#inputItem_"+sufx+"_"+cnt) ;
|
||
|
|
# // var initUsdVal = \$("#inputAmount_usd_"+sufx+"_"+cnt).val() ;
|
||
|
|
# // var inpUsd = \$("#inputAmount_usd_"+sufx+"_"+cnt) ;
|
||
|
|
# // var qty = \$("#inputQty_"+sufx+"_"+cnt).val() ;
|
||
|
|
# // var vatChkBox = \$("#checkboxVat_"+sufx+"_"+cnt) ;
|
||
|
|
# // var exclChkBox = \$("#checkboxExcl_"+sufx+"_"+cnt) ;
|
||
|
|
|
||
|
|
# // var selCurr = \$("#selectCurrency") ;
|
||
|
|
# // var exclChk = 'excl_'+sufx+'_'+cnt ;
|
||
|
|
# // var vatChk = 'vat_'+sufx+'_'+cnt ;
|
||
|
|
# // var usdAmnt = 0 ;
|
||
|
|
# // var vatAmnt = 0 ;
|
||
|
|
|
||
|
|
# // if (selCurr.val()!='ZAR') {
|
||
|
|
# // vatChkBox.prop("checked", false) ;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // // console.log("3. curr_changed: "+curr_changed +" : "+ selCurr.val()) ;
|
||
|
|
|
||
|
|
# // if (curr_changed==1 && selCurr.val()=='ZAR') {
|
||
|
|
# // vatChkBox.prop("checked", true);
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // //if (selCurr.val() != 'ZAR') { vatChkBox.prop("checked", false) ; } else { vatChkBox.prop("checked", true); } // set VAT checkbox
|
||
|
|
# // // if (!inpItem.val()) { exclChkBox.prop("checked", false); } else { exclChkBox.prop("checked", true); } // set EXCL checkbox
|
||
|
|
|
||
|
|
# // curRoe = \$("#inputRoe").val();
|
||
|
|
|
||
|
|
# // if ( (qty>0) && (inpUsd.val()>0) ) {
|
||
|
|
# // var convPrice = convertCurr(initUsdVal,curRoe) ;
|
||
|
|
# // var ttlPrice = convPrice * qty ;
|
||
|
|
# // inpCurrAmnt.val(convPrice.toFixed(2));
|
||
|
|
# // inpItemTtl.val(ttlPrice.toFixed(2));
|
||
|
|
# // exclChkBox.prop("checked", false);
|
||
|
|
# // } else {
|
||
|
|
# // exclChkBox.prop("checked", true);
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // if (\$('input[name='+exclChk+']:checked').length > 0) { \
|
||
|
|
# // var ttlPrice = 0 ;
|
||
|
|
# // inpItemTtl.val(ttlPrice.toFixed(2));
|
||
|
|
# // return [0,0,0];
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // vatAmnt = 0 ;
|
||
|
|
|
||
|
|
# // if ((\$('input[name='+vatChk+']:checked').length > 0) && (selCurr.val() == 'ZAR')) {
|
||
|
|
# // // var vat = addVat(inpCurrAmnt.val()) ;
|
||
|
|
# // var vat = addVat(inpItemTtl.val()) ;
|
||
|
|
# // vatAmnt = vat[0];
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // // usdAmnt = getNum(parseFloat(inpUsd.val()));
|
||
|
|
# // currAmnt = getNum(parseFloat(inpCurrAmnt.val()));
|
||
|
|
# // ttlAmnt = getNum(parseFloat(inpItemTtl.val()));
|
||
|
|
|
||
|
|
# // // return [usdAmnt,vatAmnt];
|
||
|
|
# // console.log("COSTINGS CALCSECTION select_opts AMOUNT : "+currAmnt+", VAT AMOUNT: "+vatAmnt+", TOTAL AMOUNT: "+ttlAmnt);
|
||
|
|
# // return [currAmnt,vatAmnt,ttlAmnt];
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // function calcSectionWorkings(sufx,cnt) {
|
||
|
|
|
||
|
|
# // console.log("calcSectionWorkings , cnt : "+cnt+" , sufx : "+sufx) ;
|
||
|
|
# // var inpItemTtlW = \$("#inputDescription_ttl_"+sufx+"_"+cnt) ;
|
||
|
|
# // // var inpItemTtlW = 0 ;
|
||
|
|
# // var inpCurrAmntW = \$("#inputAmount_"+sufx+"_"+cnt) ;
|
||
|
|
# // var inpItemW = \$("#selectDescription_"+sufx+"_"+cnt) ;
|
||
|
|
# // var inpOpW = \$("#selectOperator_"+sufx+"_"+cnt) ;
|
||
|
|
# // var initUsdValW = \$("#inputAmount_usd_"+sufx+"_"+cnt).val() ;
|
||
|
|
# // var inpUsdW = \$("#inputAmount_usd_"+sufx+"_"+cnt) ;
|
||
|
|
# // var qtyW = \$("#inputQty_"+sufx+"_"+cnt).val() ;
|
||
|
|
|
||
|
|
# // var vatChkBoxW = \$("#checkboxVat_"+sufx+"_"+cnt) ;
|
||
|
|
# // var exclChkBoxW = \$("#checkboxExcl_"+sufx+"_"+cnt) ;
|
||
|
|
|
||
|
|
# // console.log("2.1 WORKINGS CALCSECTIONWORKINGS inpItemTtlW: "+inpItemTtlW+", VAT inpCurrAmntW: "+inpCurrAmntW+", inpItemW: "+inpItemW+", initUsdValW: "+initUsdValW+", inpUsdW: "+inpUsdW+", qtyW: "+qtyW+", vatChkBoxW: "+vatChkBoxW+", exclChkBoxW: "+exclChkBoxW);
|
||
|
|
# // // if ((exclChkBoxW)%2 == 0){
|
||
|
|
# // // exclChkBoxW = 0;
|
||
|
|
# // // }
|
||
|
|
|
||
|
|
# // var selCurrW = \$("#selectCurrency") ;
|
||
|
|
# // var exclChkW = 'excl_'+sufx+'_'+cnt ;
|
||
|
|
# // var vatChkW = 'vat_'+sufx+'_'+cnt ;
|
||
|
|
# // var usdAmntW = 0 ;
|
||
|
|
# // var vatAmntW = 0 ;
|
||
|
|
|
||
|
|
# // if (selCurrW.val()!='ZAR') {
|
||
|
|
# // vatChkBoxW.prop("checked", false) ;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // if (curr_changedW==1 && selCurrW.val()=='ZAR') {
|
||
|
|
# // vatChkBoxW.prop("checked", true);
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // curRoeW = \$("#inputRoe").val();
|
||
|
|
|
||
|
|
# // if ( (qtyW>0) && (inpUsdW.val()>0) ) {
|
||
|
|
# // var convPriceW = convertCurr(initUsdValW,curRoeW) ;
|
||
|
|
# // var ttlPriceW = convPriceW * qtyW ;
|
||
|
|
# // inpCurrAmntW.val(convPriceW.toFixed(2));
|
||
|
|
# // inpItemTtlW.val(ttlPriceW.toFixed(2));
|
||
|
|
# // exclChkBoxW.prop("checked", false);
|
||
|
|
# // } else {
|
||
|
|
# // exclChkBoxW.prop("checked", true);
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // if (\$('input[name='+exclChkW+']:checked').length > 0) { \
|
||
|
|
# // var ttlPriceW = 0 ;
|
||
|
|
# // inpItemTtlW.val(ttlPriceW.toFixed(2));
|
||
|
|
# // return [0,0,0];
|
||
|
|
# // }
|
||
|
|
# // vatAmntW = 0 ;
|
||
|
|
|
||
|
|
# // if ((\$('input[name='+vatChkW+']:checked').length > 0) && (selCurrW.val() == 'ZAR')) {
|
||
|
|
# // var vatW = addVat(inpCurrAmntW.val()) ;
|
||
|
|
# // vatAmntW = vatW[0];
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // let currAmntW = getNum(parseFloat(inpCurrAmntW.val()));
|
||
|
|
|
||
|
|
|
||
|
|
# // inpCurrAmntW.val(ttlPriceW.toFixed(2));
|
||
|
|
|
||
|
|
|
||
|
|
# // vatAmntW = vatAmntW * qtyW ;
|
||
|
|
# // currAmntW = currAmntW * qtyW ; // added by handre
|
||
|
|
# // console.log("2. WORKINGS CALCSECTIONWORKINGS AMOUNT: "+currAmntW+", VAT AMOUNT: "+vatAmntW+", QTY: "+qtyW+", TOTAL: "+ttlPriceW+", AAAAAAAAAAAAAAAA"+inpCurrAmntW);
|
||
|
|
|
||
|
|
# // return [currAmntW,vatAmntW];
|
||
|
|
|
||
|
|
# // // return [ttlPriceW,vatAmntW];
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // function getNum(val)
|
||
|
|
# // {
|
||
|
|
# // if (isNaN(val)) {
|
||
|
|
# // return 0;
|
||
|
|
# // }
|
||
|
|
# // return val;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // function convertCurr(val,curRoe)
|
||
|
|
# // {
|
||
|
|
# // // val = val / curRoe ;
|
||
|
|
# // val = val * curRoe ;
|
||
|
|
# // return val;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // function addVat(amnt)
|
||
|
|
# // {
|
||
|
|
# // var vat_amnt = amnt*0.15 ;
|
||
|
|
# // var subtotal = amnt - vat_amnt
|
||
|
|
# // return [vat_amnt,subtotal];
|
||
|
|
# // }
|
||
|
|
# // function setRoe(sx,rcnt)
|
||
|
|
# // {
|
||
|
|
# // var labelCurrAmntSx = \$("#lab_curr_amnt$sec"+sx) ;
|
||
|
|
# // var curr = \$("#selectCurrency").val() ;
|
||
|
|
# // if (!curr) {
|
||
|
|
# // curr = 'Curr' ;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // // labelCurrAmntSx.html('Price ['+curr+']');
|
||
|
|
|
||
|
|
# // for (i = 0; i <= rcnt; i++) {
|
||
|
|
# // var inpCurrAmntSx = \$("#inputCurr_amnt_"+i+sx) ; ;
|
||
|
|
# // inpCurrAmntSx.attr("placeholder",curr+' Amnt '+i);
|
||
|
|
# // var inpQcPh = \$("#inputqty_"+i+sx).attr("placeholder");
|
||
|
|
# // }
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# // function calcTtl(qc,ica,iz)
|
||
|
|
# // {
|
||
|
|
# // var zar_amnt = getNum(parseFloat(\$("#inputWeight").val())) * getNum(parseFloat(qc.val())) ;
|
||
|
|
# // iz.val(zar_amnt.toFixed(2)) ;
|
||
|
|
# // }
|
||
|
|
|
||
|
|
# \$("li").click(function(){
|
||
|
|
# var activeTab = \$(this).text();
|
||
|
|
# \$("#inputActivetab").val(activeTab) ;
|
||
|
|
# });
|
||
|
|
|
||
|
|
# ~;
|
||
|
|
|
||
|
|
$extra_css .= qq(<style>
|
||
|
|
.checkbox_checked label {
|
||
|
|
position: absolute;
|
||
|
|
width: 20px;
|
||
|
|
height: 20px;
|
||
|
|
background-color: green;
|
||
|
|
-webkit-transition: background-color 1s ease-out 1s;
|
||
|
|
-moz-transition: background-color 1s ease-out 1s;
|
||
|
|
-o-transition: background-color 1s ease-out 1s;
|
||
|
|
transition: background-color 1s ease-out 1s;
|
||
|
|
margin:0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.checkbox_checked input[type=checkbox]:checked + label {
|
||
|
|
background-color:red;
|
||
|
|
-webkit-transition: background-color 1s ease-out 1s;
|
||
|
|
-moz-transition: background-color 1s ease-out 1s;
|
||
|
|
-o-transition: background-color 1s ease-out 1s;
|
||
|
|
transition: background-color 1s ease-out 1s;
|
||
|
|
}
|
||
|
|
|
||
|
|
.checkbox_checked label:after {
|
||
|
|
position: absolute ;
|
||
|
|
bottom: 8px ;
|
||
|
|
width: 18px ;
|
||
|
|
height: 10px ;
|
||
|
|
opacity: 0 ;
|
||
|
|
content: '' ;
|
||
|
|
background: transparent ;
|
||
|
|
border: 3px solid #000 ;
|
||
|
|
border-top: none ;
|
||
|
|
border-right: none ;
|
||
|
|
-webkit-transform: rotate(-50deg) ;
|
||
|
|
-moz-transform: rotate(-50deg) ;
|
||
|
|
-ms-transform: rotate(-50deg) ;
|
||
|
|
-o-transform: rotate(-50deg) ;
|
||
|
|
transform: rotate(-50deg) ;
|
||
|
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||
|
|
filter: alpha(opacity=0) ;
|
||
|
|
}
|
||
|
|
.checkbox_checked input[type=checkbox] {
|
||
|
|
visibility: hidden ;
|
||
|
|
}
|
||
|
|
.checkbox_checked input[type=checkbox]:checked + label:after {
|
||
|
|
opacity: 1 ;
|
||
|
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)" ;
|
||
|
|
filter: alpha(opacity=100) ;
|
||
|
|
}
|
||
|
|
</style>) ;
|
||
|
|
|
||
|
|
# $extra_form_fields = qq~<input type="hidden" name="operators_type_a" id="operators-type-a" value=""><input type="hidden" name="operators_type_b" id="operators-type-b" value="">~;
|
||
|
|
|
||
|
|
|
||
|
|
# if ($usertype ne 'schools_manager') {
|
||
|
|
# if ($glod_user_level > 3) {
|
||
|
|
if ($glod_user_level > 2) {
|
||
|
|
# $extra_form_fields .= qq~<input type="hidden" name="event_system_ids" id="event-system-id" value="">~ ;
|
||
|
|
$jquery_chosen_sel .= qq~
|
||
|
|
let type_val = \$("#selectType_details_id").chosen().val() ;
|
||
|
|
\$('#type-details-ids').val(type_val) ;~ ;
|
||
|
|
# $jquery_chosen_sel .= qq~
|
||
|
|
# var e_sys_val = \$("#selectEvent_system_id").chosen().val() ;
|
||
|
|
# \$('#event-system-id').val(e_sys_val) ; ~ ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$jquery_chosen_sel .= qq~
|
||
|
|
let op_val = \$("#selectOperator_ids").chosen().val() ;
|
||
|
|
\$('#operator-ids').val(op_val) ;
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
|
||
|
|
$extra_form_fields .= qq~<input type="hidden" name="city_ids" id="city-id" value="">~ ;
|
||
|
|
$jquery_chosen_sel .= qq~
|
||
|
|
var e_sys_val = \$("#selectCity_id").chosen().val() ;
|
||
|
|
\$('#city-id').val(e_sys_val) ;
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
|
||
|
|
$trigger_jquery .= qq~\$("#selectSport_type_ids_chosen").css( "width", "100%" );~ ;
|
||
|
|
$trigger_jquery .= qq~\$("#selectOrganisation_ids_chosen").css( "width", "100%" );~ ;
|
||
|
|
$trigger_jquery .= qq~\$("#selectRegion_id_chosen").css( "width", "100%" );~ ;
|
||
|
|
$trigger_jquery .= qq~\$("#selectCity_id_chosen").css( "width", "100%" );~ ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
|
||
|
|
\$("#savebutt").click(async function() {
|
||
|
|
|
||
|
|
// console.log("1. Hello World") ;
|
||
|
|
|
||
|
|
let buttonClass = \$(this).attr("class") ;
|
||
|
|
if (buttonClass == "btn btn-custom") {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
var we_can_save_form = check_before_saving() ;
|
||
|
|
|
||
|
|
var checkCompleted = \$("#checkboxQuote_completed").is(":checked") ;
|
||
|
|
var checkAccepted = \$("#checkboxQuote_accepted").is(":checked") ;
|
||
|
|
var checkPending = \$("#checkboxQuote_pending").is(":checked") ;
|
||
|
|
var checkClosed = \$("#checkboxQuote_cancelled").is(":checked") ;
|
||
|
|
var checkRejected = \$("#checkboxQuote_rejected").is(":checked") ;
|
||
|
|
|
||
|
|
if (!checkCompleted && !checkAccepted && !checkPending && !checkClosed && !checkRejected) {
|
||
|
|
noty({text:'Please select one of Completed / Accepted / Pending / Closed / Rejected',layout:"center",type:"error",timeout:3000}) ;
|
||
|
|
we_can_save_form = 0 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
var system_ids = "" ; var operator_ids = "" ; var seen_sys_id = {} ;
|
||
|
|
|
||
|
|
// if (\$("#selectSystem_name_1").length) {
|
||
|
|
|
||
|
|
for (let i = 1; i <= $nr_of_system_names_and_clubs; i++) {
|
||
|
|
let sys_id = \$("#selectSystem_name_"+i).val() ;
|
||
|
|
if (\$("#selectSystem_name_"+i).val() && \$("#selectSystem_name_"+i).val() > 0) {
|
||
|
|
if (seen_sys_id[sys_id]) {
|
||
|
|
noty({text:"Please do not select the same System Name more than once in Event Details tab",layout:"center",type:"error",timeout:15000}) ;
|
||
|
|
}
|
||
|
|
seen_sys_id[sys_id] = 1 ;
|
||
|
|
system_ids = system_ids + \$("#selectSystem_name_"+i).val() + ";" ;
|
||
|
|
}
|
||
|
|
// if (\$("#selectOperator_id_calibration_"+i).val()) {
|
||
|
|
// operator_ids = operator_ids + \$("#selectOperator_id_calibration_"+i).val() + "," ;
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
let multi_select = \$("#selectOperator_ids").chosen().val();
|
||
|
|
|
||
|
|
// operator_ids = operator_ids+","+multi_select ;
|
||
|
|
|
||
|
|
// let first_op_id = 1 ;
|
||
|
|
// for (let j = 1; j <= 50; j++) {
|
||
|
|
// if (\$("#selectOperator_"+j+"_workings_event").val()) {
|
||
|
|
// if (first_op_id) {
|
||
|
|
// operator_ids = operator_ids + "," ;
|
||
|
|
// first_op_id = 0 ;
|
||
|
|
// }
|
||
|
|
// operator_ids = operator_ids + \$("#selectOperator_"+j+"_workings_event").val() + "," ;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
if (system_ids) { system_ids = system_ids.slice(0,-1) ; }
|
||
|
|
// if (operator_ids) { operator_ids = operator_ids.slice(0,-1) ; }
|
||
|
|
|
||
|
|
// console.log("system_ids : "+system_ids+" , operator_ids : "+operator_ids) ;
|
||
|
|
|
||
|
|
var date_from = \$("input[name='date_from']").val();
|
||
|
|
var date_to = \$("input[name='date_to']").val() ;
|
||
|
|
var quote_id = '$id' ;
|
||
|
|
|
||
|
|
if (!quote_id) { quote_id = -1 ; }
|
||
|
|
|
||
|
|
// console.log("url_check_periods="+url_check_periods) ;
|
||
|
|
|
||
|
|
var noty_msg_sys = "" ; var noty_msg_ops = "" ;
|
||
|
|
|
||
|
|
if (system_ids || operator_ids) {
|
||
|
|
|
||
|
|
var url_check_periods = "$useropts{scripts}/get/get_event_quote_conflicts.pl?date_from="+date_from+"&date_to="+date_to+"&system_ids="+system_ids+"&op_ids="+operator_ids+""e_id="+quote_id ;
|
||
|
|
|
||
|
|
// console.log("url_check_periods : "+url_check_periods) ;
|
||
|
|
|
||
|
|
await \$.get(url_check_periods, function(json) {
|
||
|
|
\$.each(json, function(key, data) {
|
||
|
|
if (data.system) {
|
||
|
|
if (!noty_msg_sys) {
|
||
|
|
// noty_msg_sys = "Event System "+data.system+" is used in Event "+data.event+" from "+data.interval ;
|
||
|
|
} else {
|
||
|
|
// noty_msg_sys = noty_msg_sys+"<br>Event System "+data.system+" is used in Event "+data.event+" from "+data.interval ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// if (data.user) {
|
||
|
|
// if (!noty_msg_ops) {
|
||
|
|
// noty_msg_ops = "Operator "+data.user+" is used in Event "+data.event+" from "+data.interval ;
|
||
|
|
// } else {
|
||
|
|
// noty_msg_ops = noty_msg_ops+"<br>Operator "+data.user+" is used in Event "+data.event+" from "+data.interval ;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
});
|
||
|
|
}
|
||
|
|
,'json') ;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
if (noty_msg_sys) {
|
||
|
|
noty({text:noty_msg_sys,layout:"center",type:"error",timeout:15000}) ;
|
||
|
|
we_can_save_form = 0 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (noty_msg_ops) {
|
||
|
|
noty({text:noty_msg_ops,layout:"center",type:"error",timeout:15000}) ;
|
||
|
|
// we_can_save_form = 0 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
// console.log("we_can_save_form : "+we_can_save_form) ;
|
||
|
|
|
||
|
|
if (we_can_save_form) {
|
||
|
|
\$('#event_quotes-form').submit() ;
|
||
|
|
} else {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
}) ;
|
||
|
|
|
||
|
|
// \$("#savebutt").hover(function() {
|
||
|
|
// let buttonClass = \$(this).attr("class") ;
|
||
|
|
// if (buttonClass == "btn btn-custom") {
|
||
|
|
// \$("#tooltip").css("position","absolute") ;
|
||
|
|
// \$("#tooltip").css("top","-50%") ;
|
||
|
|
// \$("#tooltip").css("left","1%") ;
|
||
|
|
// // \$("#tooltip").css("","") ;
|
||
|
|
// // \$("#tooltip").css("","") ;
|
||
|
|
|
||
|
|
// // position: absolute; /* Absolute positioning relative to button */
|
||
|
|
// // top: 100%; /* Position below the button */
|
||
|
|
// // left: 50%; /* Center horizontally */
|
||
|
|
// // transform: translateX(-50%); /* Center horizontally (alternative) */
|
||
|
|
// // padding: 5px; /* Add some padding to the tooltip */
|
||
|
|
// // background-color: #ddd; /* Tooltip background color */
|
||
|
|
// // border-radius: 5px; /* Add rounded corners */
|
||
|
|
// // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||
|
|
// }
|
||
|
|
// });
|
||
|
|
|
||
|
|
// \$("#cancelbutt").hover(function() {
|
||
|
|
// let buttonClass = \$(this).attr("class") ;
|
||
|
|
// if (buttonClass == "btn btn-custom") {
|
||
|
|
// # \$(this).append("<span>Hello, World!</span>");
|
||
|
|
// }
|
||
|
|
// });
|
||
|
|
|
||
|
|
|
||
|
|
\$("#cancelbutt").click(function() {
|
||
|
|
|
||
|
|
let buttonClass = \$(this).attr("class") ;
|
||
|
|
if (buttonClass == "btn btn-custom") {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
var we_can_save_form = check_before_saving() ;
|
||
|
|
|
||
|
|
if (we_can_save_form) {
|
||
|
|
cancel_quote() ;
|
||
|
|
} else {
|
||
|
|
return ;
|
||
|
|
}
|
||
|
|
|
||
|
|
}) ;
|
||
|
|
|
||
|
|
function cancel_quote () {
|
||
|
|
|
||
|
|
BootstrapDialog.confirm({
|
||
|
|
title: 'Confirm Cancellation',
|
||
|
|
message: 'Are you sure you want to cancel this event?',
|
||
|
|
type: BootstrapDialog.TYPE_DANGER, // <-- Default value is BootstrapDialog.TYPE_PRIMARY <-- Default value is BootstrapDialog.TYPE_WARNING
|
||
|
|
callback: function(result) {
|
||
|
|
if (result) {
|
||
|
|
\$("#checkboxQuote_completed").prop("checked", false) ;
|
||
|
|
\$("#checkboxQuote_accepted").prop("checked", false) ;
|
||
|
|
\$("#checkboxQuote_pending").prop("checked", false) ;
|
||
|
|
\$("#checkboxQuote_rejected").prop("checked", false) ;
|
||
|
|
\$("#checkboxQuote_cancelled").prop("checked", true) ;
|
||
|
|
\$('#event_quotes-form').submit() ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function check_before_saving () {
|
||
|
|
|
||
|
|
for (let i = 1; i <= 20; i++) {
|
||
|
|
if (\$("#selectDescription_workings_event_"+i).val() == 14 && !\$("#selectOperator_workings_event_"+i).val()) {
|
||
|
|
noty({text:"Please select an Operator in Line "+i+" in the Expenses Tab",layout:"center",type:"error",timeout:3000}) ;
|
||
|
|
return 0 ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$jquery_chosen_sel
|
||
|
|
|
||
|
|
let st_val = \$("#selectSport_type_ids").chosen().val() ;
|
||
|
|
\$('#sport-type-ids').val(st_val) ;
|
||
|
|
|
||
|
|
let or_val = \$("#selectOrganisation_ids").chosen().val() ;
|
||
|
|
\$('#organisation-ids').val(or_val) ;
|
||
|
|
|
||
|
|
var dateFromStr = \$("input[name='date_from']").val();
|
||
|
|
var dateToStr = \$("input[name='date_to']").val();
|
||
|
|
|
||
|
|
var dateFrom = new Date(dateFromStr);
|
||
|
|
var dateTo = new Date(dateToStr);
|
||
|
|
|
||
|
|
if (dateFrom >= dateTo) {
|
||
|
|
noty({text:'`Event Date/Time From` must be before the `Event Date/Time To`',layout:"center",type:"error",timeout:3000}) ;
|
||
|
|
return 0 ;
|
||
|
|
}
|
||
|
|
return 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub page_opts {
|
||
|
|
|
||
|
|
our $glyphicon = 'global' ;
|
||
|
|
our $lcpage = 'event-quote' ; $ucpage = uc $lcpage ; $ucfirstpage = ucfirst $lcpage ;
|
||
|
|
our $table = 'event_quotes' ;
|
||
|
|
|
||
|
|
our $cust_cols = 1 ; # display _blank_3.pm
|
||
|
|
our $savjqy = 1 ;
|
||
|
|
our $max_cams = 10 ;
|
||
|
|
|
||
|
|
&common_min_add_box_icon ;
|
||
|
|
|
||
|
|
our %casuals = ();
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub creat_db_cols {
|
||
|
|
|
||
|
|
&db_min_ro('event_quotes','*','','','') ;
|
||
|
|
|
||
|
|
my %col_exists ;
|
||
|
|
|
||
|
|
foreach (sort { $col_name{$a} cmp $col_name{$b} } keys %col_name) {
|
||
|
|
$col = $col_name{$_} ;
|
||
|
|
$col_exists{$col} = 1 ;
|
||
|
|
}
|
||
|
|
|
||
|
|
my $mysql = "ALTER TABLE `event_quotes`" ;
|
||
|
|
|
||
|
|
foreach (sort keys %i) {
|
||
|
|
if ($_ eq 'iaction') { next ; }
|
||
|
|
|
||
|
|
if ($ignore{$_}) { next ; }
|
||
|
|
if ($col_exists{$_}) { next ; } # only create the column if it doesn't exist
|
||
|
|
|
||
|
|
if (((substr($_,0,3) eq 'vat') or (substr($_,0,4) eq 'excl')) and (substr($_,0,9) ne 'vat_total')) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` INT(1) NOT NULL DEFAULT '0',~ ;
|
||
|
|
} elsif ($_ =~ /qty_/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` INT(3) NULL DEFAULT '0',~ ;
|
||
|
|
} elsif ($_ =~ /roe_/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` VARCHAR( 120 ) NOT NULL ,~ ;
|
||
|
|
} elsif ($_ =~ /description_/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` VARCHAR( 255 ) NOT NULL ,~ ;
|
||
|
|
} elsif (substr($_,0,3) eq 'roe') {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` DECIMAL(4,2) NOT NULL ,~ ; # 999999.99 to -999999.99
|
||
|
|
} elsif ($_ =~ /date_/g or $_ =~ /_date/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` DATE DEFAULT NULL ,~ ;
|
||
|
|
} elsif ($_ =~ /datetime/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` datetime DEFAULT NULL ,~ ;
|
||
|
|
} elsif ($_ =~ /_costing_/g or $_ =~ /_total/g or $_ =~ /total_/g or $_ =~ /year_/g or $_ =~ /_amnt_/g) { # } elsif (substr($_,0,5) eq 'item_') {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` DECIMAL( 13, 2 ) NOT NULL ,~ ; # 999999.99 to -999999.99
|
||
|
|
} elsif ($_ =~ /_included/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` TEXT NOT NULL ,~ ;
|
||
|
|
} elsif ($_ =~ /_id/g) {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` INT( 6 ) NOT NULL DEFAULT '0',~ ;
|
||
|
|
} else {
|
||
|
|
$mysql .= qq~
|
||
|
|
ADD `$_` VARCHAR( 120 ) NOT NULL ,~ ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
print $mysql ;
|
||
|
|
exit ;
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub report_ifields {
|
||
|
|
|
||
|
|
if ($i{quote_to}) {
|
||
|
|
push @report_sql, "(q.quote_to = '$i{quote_to}')" ;
|
||
|
|
push @report_results, "quote_to = $i{quote_to}" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{quotes_from} and $i{quotes_to}) { # check dates
|
||
|
|
my $quotes_from_check = $i{quotes_from} ;
|
||
|
|
$quotes_from_check =~ s/\-//g ;
|
||
|
|
my $quotes_to_check = $i{quotes_to} ;
|
||
|
|
$quotes_to_check =~ s/\-//g ;
|
||
|
|
if ($quotes_from_check > $quotes_to_check) {
|
||
|
|
$error = qq(QUOTES FROM ($i{quotes_from}) > QUOTES TO ($i{quotes_to})) ;
|
||
|
|
&filter_screen ;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# if ($i{event_from} and $i{event_to}) { # check dates
|
||
|
|
# my $event_from_check = $i{event_from} ;
|
||
|
|
# $event_from_check =~ s/\-//g ;
|
||
|
|
# my $event_to_check = $i{event_to} ;
|
||
|
|
# $event_to_check =~ s/\-//g ;
|
||
|
|
# if ($event_from_check > $event_to_check) {
|
||
|
|
# $error = qq(QUOTES FROM ($i{event_from}) > QUOTES TO ($i{event_to})) ;
|
||
|
|
# &filter_screen ;
|
||
|
|
# }
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if ($i{event_from}) {
|
||
|
|
# push @report_sql, "(q.date_from >= '$i{event_from}')" ;
|
||
|
|
# push @report_results, "date_from >= $i{event_from}" ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
# if ($i{event_to}) {
|
||
|
|
# push @report_sql, "(q.date_from <= '$i{event_to}')" ;
|
||
|
|
# push @report_results, "date_from <= $i{event_to}" ;
|
||
|
|
# }
|
||
|
|
|
||
|
|
if ($i{event_from} && $i{event_to}) { # check dates
|
||
|
|
|
||
|
|
my @srch_ed_from = &common_split_sql_time($i{event_from}) ;
|
||
|
|
my @srch_ed_to = &common_split_sql_time($i{event_to}) ;
|
||
|
|
|
||
|
|
my $event_from_check = "$srch_ed_from[0]$srch_ed_from[1]$srch_ed_from[2]$srch_ed_from[3]$srch_ed_from[4]$srch_ed_from[5]" ;
|
||
|
|
my $event_to_check = "$srch_ed_to[0]$srch_ed_to[1]$srch_ed_to[2]$srch_ed_to[3]$srch_ed_to[4]$srch_ed_to[5]" ;
|
||
|
|
if ($event_from_check > $event_to_check) {
|
||
|
|
$error = qq~'$i{event_from}' > '$i{event_to}'~ ; &filter_screen ;
|
||
|
|
}
|
||
|
|
|
||
|
|
&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' >= q.date_from AND '$srch_ccyy_mm_dd 00:00:00' <= q.date_to)"
|
||
|
|
}
|
||
|
|
|
||
|
|
my $sql_or = join(' OR ',@report_sql_or) ;
|
||
|
|
push @report_sql, "($sql_or)" if $sql_or ;
|
||
|
|
|
||
|
|
# push @report_sql, "((`event_from` >= '$i{event_from} 00:00:00' AND `event_from` <= '$i{event_to} 23:59:59') OR (`event_to` >= '$i{event_from} 00:00:00' AND `event_to` <= '$i{event_to} 23:59:59'))" ;
|
||
|
|
push @report_results, "(WITH DAYS FALLING BETWEEN '$i{event_from}' AND '$i{event_to}')" ;
|
||
|
|
} elsif (!$i{event_from} && $i{event_to}) {
|
||
|
|
$error = qq~PLEASE ENTER A START DATE!~ ;
|
||
|
|
&filter_screen;
|
||
|
|
} elsif (!$i{event_to} && $i{event_from}) {
|
||
|
|
$error = qq~PLEASE ENTER AN END DATE!~ ;
|
||
|
|
&filter_screen;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{quotes_from}) {
|
||
|
|
push @report_sql, "(q.quote_date >= '$i{quotes_from}')" ;
|
||
|
|
push @report_results, "quote_date >= $i{quotes_from}" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{quotes_to}) {
|
||
|
|
push @report_sql, "(q.quote_date <= '$i{quotes_to}')" ;
|
||
|
|
push @report_results, "quote_date <= $i{quotes_to}" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{po_nr}) {
|
||
|
|
push @report_sql, "(q.po_nr LIKE '%$i{po_nr}%')" ;
|
||
|
|
push @report_results, "po_nr LIKE `$i{po_nr}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{invoice_nr}) {
|
||
|
|
push @report_sql, "(q.invoice_nr LIKE '%$i{invoice_nr}%')" ;
|
||
|
|
push @report_results, "invoice_nr LIKE `$i{invoice_nr}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{quote_nr}) {
|
||
|
|
push @report_sql, "(q.quote_nr LIKE '%$i{quote_nr}%')" ;
|
||
|
|
push @report_results, "quote_nr LIKE `$i{quote_nr}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{country}) {
|
||
|
|
push @report_sql, "(q.country_id = '$i{country}')" ;
|
||
|
|
push @report_results, "country_id = `$i{country}`" ;
|
||
|
|
}
|
||
|
|
if ($i{customer_name}) {
|
||
|
|
push @report_sql, "(q.quote_to = '$i{customer_name}')" ;
|
||
|
|
&db_min_ro('customers','id,name',"`id`='$i{customer_name}'",'','') ;
|
||
|
|
push @report_results, "customer = `$db{customers}{$i{customer_name}}{name}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{accepted} || $i{options} eq 'accepted') {
|
||
|
|
push @report_sql, "(q.quote_accepted='1' AND q.quote_completed<>'1')" ;
|
||
|
|
push @report_results, "quote_accepted = `Yes`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{completed} || $i{options} eq 'completed') {
|
||
|
|
push @report_sql, "(q.quote_completed='1')" ;
|
||
|
|
push @report_results, "quote_completed = `Yes`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
elsif ($i{closed} || $i{options} eq 'closed') {
|
||
|
|
push @report_sql, "(q.quote_cancelled='1' OR (q.quote_expiry<'$now_year-$now_mm-$now_dd' AND q.quote_accepted<>'1'))" ;
|
||
|
|
push @report_results, "quote_closed = `Yes`" ;
|
||
|
|
}
|
||
|
|
elsif ($i{options}) {
|
||
|
|
push @report_results, "quote = `$i{options}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
$preferred_title{region_id} = "Region" ;
|
||
|
|
$preferred_title{city_id} = "City" ;
|
||
|
|
$preferred_title{organisation_ids} = "Venue" ;
|
||
|
|
$preferred_title{sport_type_ids} = "Sport Type" ;
|
||
|
|
|
||
|
|
if ($i{region_id}) {
|
||
|
|
&db_min_ro('regions',"id,name","`id`='$i{region_id}'",'','') ;
|
||
|
|
push @report_sql, "(q.region_id = '$i{region_id}')" ;
|
||
|
|
push @report_results, "region = `$db{regions}{$i{region_id}}{name}`" ;
|
||
|
|
}
|
||
|
|
if ($i{city_id}) {
|
||
|
|
|
||
|
|
&db_min_ro('cities',"id,city","`id`='$i{city_id}'",'','') ;
|
||
|
|
push @report_sql, "(q.city_id = '$i{city_id}')" ;
|
||
|
|
push @report_results, "city = `$db{cities}{$i{city_id}}{city}`" ;
|
||
|
|
}
|
||
|
|
if ($i{organisation_ids}) {
|
||
|
|
&db_min_ro('organisations',"id,name","`id`='$i{organisation_ids}'",'','') ;
|
||
|
|
push @report_sql, "(q.organisation_ids LIKE '%$i{organisation_ids}%')" ;
|
||
|
|
push @report_results, "venue INCLUDE `$db{organisations}{$i{organisation_ids}}{name}`" ;
|
||
|
|
}
|
||
|
|
if ($i{sport_type_ids}) {
|
||
|
|
&db_min_ro('sport_types',"id,name","`id`='$i{sport_type_ids}'",'','') ;
|
||
|
|
push @report_sql, "(q.sport_type_ids LIKE '%$i{sport_type_ids}%')" ;
|
||
|
|
push @report_results, "sport_types INCLUDE `$db{sport_types}{$i{sport_type_ids}}{name}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{type}) {
|
||
|
|
push @report_sql, "(q.type='$i{type}')" ;
|
||
|
|
push @report_results, "type = `$i{type}`" ;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($i{system_id}) {
|
||
|
|
&db_min_ro('event_systems',"id,name,description","`id`='$i{system_id}'",'','') ;
|
||
|
|
push @report_sql, "(q.event_system_id_multiple LIKE '%;$i{system_id};%' OR q.event_system_id_multiple LIKE '$i{system_id};%' OR q.event_system_id_multiple LIKE '%;$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) ;
|
||
|
|
|
||
|
|
unless ($report_results_msg) {
|
||
|
|
$error = qq(ENTER AT LEAST ONE SEARCH PARAMETER) ;
|
||
|
|
&report_screen ;
|
||
|
|
} else {
|
||
|
|
$isaved = qq(SELECT WHERE $report_results_msg) ;
|
||
|
|
}
|
||
|
|
|
||
|
|
} #------------------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub report_screen {
|
||
|
|
|
||
|
|
&filter_screen if $ENV{QUERY_STRING} eq 'filter' ;
|
||
|
|
|
||
|
|
our $lcol = 2 ;
|
||
|
|
our $fcol = 5 ;
|
||
|
|
|
||
|
|
my ($set_year,$set_month,$set_day) = Add_Delta_Days($now_year,$now_mm,$now_dd,-42) ; # 6 weeks back
|
||
|
|
|
||
|
|
$set_month = sprintf("%02s", $set_month) ;
|
||
|
|
$set_day = sprintf("%02s", $set_day) ;
|
||
|
|
|
||
|
|
my $set_ccyy_dd_mm = $set_year . '-' . $set_month . '-' . $set_day ;
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_start('report') ;
|
||
|
|
|
||
|
|
$allow_deselect{customer_name} = 1 ;
|
||
|
|
$allow_deselect{country} = 1 ;
|
||
|
|
$allow_deselect{type} = 1 ;
|
||
|
|
$allow_deselect{region_id} = 1 ;
|
||
|
|
$allow_deselect{city_id} = 1 ;
|
||
|
|
$allow_deselect{organisation_ids} = 1 ;
|
||
|
|
$allow_deselect{sport_type_ids} = 1 ;
|
||
|
|
|
||
|
|
&common_min_select_opts('customer_name','customers','name','','','','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('customer_name','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_input('quote_nr','') ;
|
||
|
|
# $print_box_content_rows .= &common_min_form_datepicker('quotes_from','') ; $preferred_title{quotes_from} = 'Quote Date From' ;
|
||
|
|
# $print_box_content_rows .= &common_min_form_datepicker('quotes_to','') ; $preferred_title{quotes_to} = 'Quote Date To' ;
|
||
|
|
$preferred_title{event_from} = 'Event Date From' ;
|
||
|
|
$print_box_content_rows .= &common_min_form_datetimepicker('event_from','',720) ;
|
||
|
|
$preferred_title{event_to} = 'Event Date To' ;
|
||
|
|
$print_box_content_rows .= &common_min_form_datetimepicker('event_to','',0) ;
|
||
|
|
# $print_box_content_rows .= &common_min_form_input('po_nr','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_input('invoice_nr','') ;
|
||
|
|
&common_min_select_opts('country','countries','name','','','','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('country','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_checkbox('accepted','','') ; # Display all event_quotes that is Accepted
|
||
|
|
$print_box_content_rows .= &common_min_form_checkbox('closed','','') ; # Display all event_quotes that is Cancelled
|
||
|
|
|
||
|
|
&common_min_select_opts('type','event_types','name','','','','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('type','') ;
|
||
|
|
|
||
|
|
&common_min_select_opts('region_id','regions','name','','','','');
|
||
|
|
|
||
|
|
&common_min_select_opts('city_id','cities','city','','','','');
|
||
|
|
&common_min_select_opts('organisation_ids','organisations','name','','','','') ;
|
||
|
|
&common_min_select_opts('sport_type_ids','sport_types','name','','','','') ;
|
||
|
|
|
||
|
|
$preferred_title{region_id} = "Region" ;
|
||
|
|
$preferred_title{city_id} = "City" ;
|
||
|
|
$preferred_title{organisation_ids} = "Venue" ;
|
||
|
|
$preferred_title{sport_type_ids} = "Sport Type" ;
|
||
|
|
|
||
|
|
# $print_box_content_rows .= &common_min_form_select('system_id','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('region_id','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('city_id','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('organisation_ids','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('sport_type_ids','') ;
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_end('','','report') ;
|
||
|
|
|
||
|
|
local $all_select_ids_string = join(",",@all_select_ids) ;
|
||
|
|
$trigger_jquery_raw .= qq~\$("$all_select_ids_string").chosen({ allow_single_deselect:true });~ ;
|
||
|
|
|
||
|
|
&common_min_search_screen ;
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
sub filter_screen {
|
||
|
|
|
||
|
|
our $lcol = 2 ;
|
||
|
|
our $fcol = 5 ;
|
||
|
|
|
||
|
|
my ($set_year,$set_month,$set_day) = Add_Delta_Days($now_year,$now_mm,$now_dd,-42) ; # 6 weeks back
|
||
|
|
|
||
|
|
$set_month = sprintf("%02s", $set_month) ;
|
||
|
|
$set_day = sprintf("%02s", $set_day) ;
|
||
|
|
|
||
|
|
my $set_ccyy_dd_mm = $set_year . '-' . $set_month . '-' . $set_day ;
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_start('report') ;
|
||
|
|
|
||
|
|
$allow_deselect{customer_name} = 1 ;
|
||
|
|
$allow_deselect{options} = 1 ;
|
||
|
|
$allow_deselect{system_id} = 1 ;
|
||
|
|
$allow_deselect{region_id} = 1 ;
|
||
|
|
$allow_deselect{city_id} = 1 ;
|
||
|
|
$allow_deselect{organisation_ids} = 1 ;
|
||
|
|
$allow_deselect{sport_type_ids} = 1 ;
|
||
|
|
|
||
|
|
my $defualt_customer = 0 ; $defualt_customer = 5 if $usertype ne 'school_manager' ;
|
||
|
|
&common_min_select_opts('customer_name','customers','name',$defualt_customer,'','','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('customer_name','') ;
|
||
|
|
|
||
|
|
# $preferred_title{quotes_from} = 'Quote Date From' ;
|
||
|
|
# $print_box_content_rows .= &common_min_form_datepicker('quotes_from','') ;
|
||
|
|
# $preferred_title{quotes_to} = 'Quote Date To' ;
|
||
|
|
# $print_box_content_rows .= &common_min_form_datepicker('quotes_to','') ;
|
||
|
|
|
||
|
|
$preferred_title{event_from} = 'Event Date From' ;
|
||
|
|
$print_box_content_rows .= &common_min_form_datetimepicker('event_from','',720) ;
|
||
|
|
$preferred_title{event_to} = 'Event Date To' ;
|
||
|
|
$print_box_content_rows .= &common_min_form_datetimepicker('event_to','',0) ;
|
||
|
|
|
||
|
|
# &common_min_select_opts('type','event_types','name','','','','');
|
||
|
|
# $print_box_content_rows .= &common_min_form_select('type','') ;
|
||
|
|
|
||
|
|
# my $options_selected = 'SELECTED' if $useropts{boss}{$username} or $useropts{super}{$username} ;
|
||
|
|
|
||
|
|
$opts{options} = qq~<option value="all">All (default)</option><option SELECTED value="accepted">Accepted</option><option value="completed">Completed</option><option value="pending">Pending</option><option value="closed">Cancelled</option><option value="rejected">Rejected</option>~ ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('options','') ;
|
||
|
|
|
||
|
|
|
||
|
|
&common_min_select_opts('region_id','regions','name','','','','') ;
|
||
|
|
&common_min_select_opts('city_id','cities','city','','','','') ;
|
||
|
|
&common_min_select_opts('organisation_ids','organisations','name','','','','') ;
|
||
|
|
# &common_min_select_opts('sport_type_ids','sport_types','name','','','','') ;
|
||
|
|
|
||
|
|
$trigger_jquery_raw .= qq~
|
||
|
|
\$("#selectRegion_id").change(function() {
|
||
|
|
var selected_city = \$("#selectCity_id").val() ;
|
||
|
|
// console.log("selected_city : "+selected_city) ;
|
||
|
|
var vid = \$("#selectCity_id") ;
|
||
|
|
vid.empty(); // remove old options
|
||
|
|
vid.append("<option value='0'></option>");
|
||
|
|
vid.trigger("chosen:updated");
|
||
|
|
var url = "$useropts{scripts}/get/get_cities_from_region.pl?region_id=" + \$(this).val() ;
|
||
|
|
\$.get(url, function(json) {
|
||
|
|
\$.each(json, function(key, data) {
|
||
|
|
if (selected_city && selected_city == data.id) {
|
||
|
|
vid.append("<option value='"+data.id+"' selected>"+data.city_name+"</option>");
|
||
|
|
} else {
|
||
|
|
vid.append("<option value='"+data.id+"'>"+data.city_name+"</option>");
|
||
|
|
}
|
||
|
|
vid.trigger("chosen:updated");
|
||
|
|
});
|
||
|
|
},
|
||
|
|
'json');
|
||
|
|
var selected_venue = \$("#selectOrganisation_ids").val() ;
|
||
|
|
var vid2 = \$("#selectOrganisation_ids") ;
|
||
|
|
vid2.empty(); // remove old options
|
||
|
|
vid2.append("<option value='0'></option>");
|
||
|
|
vid2.trigger("chosen:updated");
|
||
|
|
url = "$useropts{scripts}/get/get_venues_from_region.pl?region_id=" + \$(this).val() ;
|
||
|
|
\$.get(url, function(json) {
|
||
|
|
\$.each(json, function(key, data) {
|
||
|
|
if (selected_venue && selected_venue == data.id) {
|
||
|
|
vid2.append("<option value='"+data.id+"' selected>"+data.venue_name+"</option>");
|
||
|
|
} else {
|
||
|
|
vid2.append("<option value='"+data.id+"'>"+data.venue_name+"</option>");
|
||
|
|
}
|
||
|
|
vid2.trigger("chosen:updated");
|
||
|
|
});
|
||
|
|
},
|
||
|
|
'json');
|
||
|
|
});
|
||
|
|
~ ;
|
||
|
|
|
||
|
|
$preferred_title{region_id} = "Region" ;
|
||
|
|
$preferred_title{city_id} = "City" ;
|
||
|
|
$preferred_title{organisation_ids} = "Venue" ;
|
||
|
|
$preferred_title{sports_type_ids} = "Sport Type" ;
|
||
|
|
|
||
|
|
&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_select('region_id','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('city_id','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('organisation_ids','') ;
|
||
|
|
$print_box_content_rows .= &common_min_form_select('sport_type_ids','') ;
|
||
|
|
|
||
|
|
$print_box_content_rows .= &common_min_forms_end('','','report') ;
|
||
|
|
|
||
|
|
local $all_select_ids_string = join(",",@all_select_ids) ;
|
||
|
|
$trigger_jquery_raw .= qq~\$("$all_select_ids_string").chosen({ allow_single_deselect:true });~ ;
|
||
|
|
|
||
|
|
&common_min_search_screen ;
|
||
|
|
|
||
|
|
} #-------------------------------------------------------------------------------
|
||
|
|
|
||
|
|
use event_email ;
|
||
|
|
use event_tabs_test ;
|
||
|
|
use common ;
|
||
|
|
use today ;
|
||
|
|
use report ;
|
||
|
|
use xlsxcreator ;
|
||
|
|
use mailsend ;
|
||
|
|
|
||
|
|
1 ;
|