1056 lines
39 KiB
Perl
1056 lines
39 KiB
Perl
#!/usr/bin/perl
|
|
|
|
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
|
|
|
|
require cfg ;
|
|
|
|
print "Content-type: text/html\n\n";
|
|
|
|
# unless ($useropts{it}{$username}) { print "<<<<<<<<<<<< MAINTENANCE IN PROGRESS >>>>>>>>>" ; exit ; }
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
use CGI::Carp qw(fatalsToBrowser);
|
|
use CGI;
|
|
use Mail::Sendmail;
|
|
use Fcntl qw(:flock);
|
|
use File::Copy;
|
|
use File::Basename;
|
|
use Date::Calc qw(:all);
|
|
use Excel::Writer::XLSX;
|
|
|
|
&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 $debug = 1 ;
|
|
|
|
# -------- page opts --------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
&page_opts ;
|
|
|
|
# ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
our $srchscr = 1 ;
|
|
|
|
&db_open_ro ;
|
|
our $db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
|
|
&report_screen if $iaction eq '' ;
|
|
|
|
|
|
# if ($iaction eq 'report') {
|
|
# &common_min_load_params ;
|
|
# &report_ifields;
|
|
# &list_screen ;
|
|
# &screen3;
|
|
# }
|
|
|
|
# if ($iaction eq 'save') {
|
|
# &common_min_load_params ;
|
|
# &update ;
|
|
# &report_ifields;
|
|
# &list_screen ;
|
|
# &screen3;
|
|
# # &report_ifields;
|
|
# # &list_screen ;
|
|
# # &common_min_screen3;
|
|
# }
|
|
|
|
# if ($iaction eq 'paid') {
|
|
# &set_to_paid ;
|
|
# &list_screen ;
|
|
# &common_min_screen3;
|
|
# }
|
|
|
|
&common_min_action;
|
|
$db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
|
|
&db_close_conn ;
|
|
|
|
exit;
|
|
|
|
#------------------------------------------------------------------------------------------
|
|
|
|
# sub set_to_paid {
|
|
|
|
# my ($where) = @_ ;
|
|
|
|
# &db_min_ro($table,'*',"$where",'','') ;
|
|
|
|
# my @ids = () ;
|
|
|
|
# foreach (keys %{$db{$table}}) {
|
|
|
|
# push @ids,"`id`='$_'" ;
|
|
|
|
# }
|
|
|
|
# my $ids_sql = join (" OR ",@ids) ;
|
|
|
|
# %i = () ;
|
|
|
|
# for (1 .. 50) {
|
|
# $i{paid_workings_event} .= qq~1;~ ;
|
|
# }
|
|
# chop $i{paid_workings_event} if $i{paid_workings_event} ;
|
|
|
|
# # &db_min_upd('event_quotes_min',"$ids_sql") ;
|
|
|
|
# &common_debug("UPDATE event_quotes_min SET paid_workings_event = $i{paid_workings_event} WHERE $ids_sql") ;
|
|
|
|
# # &db_min_ro('event_quotes_min','id,paid_workings_event',"$ids_sql",'','') ;
|
|
|
|
|
|
# # foreach my $id (sort {$a <=> $b} keys %{$db{$table}}) {
|
|
|
|
# # @paid_work = split(";", $db{event_quotes_min}{$id}{paid_workings_event}) ; # ????
|
|
|
|
# # %i = () ;
|
|
|
|
# # foreach (@paid_work) {
|
|
|
|
# # $i{paid_workings_event} .= qq~1;~ ;
|
|
|
|
# # }
|
|
|
|
# # chop $i{paid_workings_event} if $i{paid_workings_event} ;
|
|
|
|
# # &db_min_upd('event_quotes_min',"`id`='$id'") ;
|
|
|
|
# # }
|
|
|
|
# } #------------------------------------------------------------------------------------------
|
|
|
|
# sub update {
|
|
|
|
# my %iii = %i ;
|
|
# my %ii = () ;
|
|
# local $min_id = 0 ; local $max_id = 0 ;
|
|
# foreach (sort keys %i) {
|
|
# local $cell_name = $_ ;
|
|
# local @a = split("_") ;
|
|
# next if $a[-2] ne int($a[-2]) ;
|
|
# $ii{$a[-2]}{operator_dates_paid} .= qq~$i{$_};~ if $a[0] eq 'date' ;
|
|
# $ii{$a[-2]}{operator_amounts_paid} .= qq~$i{$_}~ if $a[0] eq 'amount' and $i{"paid_$a[-2]\_$a[-1]"} and $i{"amount_payble_$a[-2]\_$a[-1]"} ;
|
|
# $ii{$a[-2]}{operator_amounts_paid} .= qq~0.00~ if $a[0] eq 'amount' and $i{"paid_$a[-2]\_$a[-1]"} and not $i{"amount_payble_$a[-2]\_$a[-1]"} ;
|
|
# $ii{$a[-2]}{operator_amounts_paid} .= qq~;~ if $a[0] eq 'amount' ;
|
|
# $min_id = $a[-2] if ($min_id and $a[-2] < $min_id) or not $min_id ;
|
|
# $max_id = $a[-2] if $a[-2] > $max_id ;
|
|
|
|
# }
|
|
|
|
# # &db_common_ro('event_quotes_min',"id,operator_dates_paid,operator_dates_paid","`id` <= '$max_id' AND `id` >= '$min_id'",'','') ;
|
|
# &common_debug("SELECT id,operator_dates_paid,operator_dates_paid FROM event_quotes_min WHERE `id` <= '$max_id' AND `id` >= '$min_id'") ;
|
|
|
|
# foreach my $id (sort keys %ii) {
|
|
|
|
# %i = () ;
|
|
# $i{operator_dates_paid} = '' ;
|
|
# $i{operator_amounts_paid} = '' ;
|
|
# $i{operator_dates_paid} = $ii{$id}{operator_dates_paid} ;
|
|
# $i{operator_amounts_paid} = $ii{$id}{operator_amounts_paid} ;
|
|
# chop $i{operator_dates_paid} if $i{operator_dates_paid} ;
|
|
# chop $i{operator_amounts_paid} if $i{operator_amounts_paid} ;
|
|
# $i{operator_dates_paid} = '' if $ii{$id}{operator_dates_paid} eq $db{event_quotes_min}{$id}{operator_dates_paid} ;
|
|
# $i{operator_amounts_paid} = '' if $ii{$id}{operator_amounts_paid} eq $db{event_quotes_min}{$id}{operator_amounts_paid} ;
|
|
# # &db_min_upd("event_quotes_min","id='$id'") if $i{operator_dates_paid} or $i{operator_amounts_paid} ;
|
|
# &common_debug("UPDATE event_quotes_min SET operator_dates_paid = $i{operator_dates_paid},operator_amounts_paid = $i{operator_amounts_paid} WHERE id = '$id'") if $i{operator_dates_paid} or $i{operator_amounts_paid} ;
|
|
|
|
# }
|
|
|
|
# %i = %iii ;
|
|
# # operator_dates_paid, operator_amounts_paid
|
|
# } #------------------------------------------------------------------------------------------
|
|
|
|
sub report_ifields {
|
|
|
|
&load_search_vars ;
|
|
|
|
# if ($i{camera_system_id} and $i{camera_system_id} ne 'main' and $i{camera_system_id} ne 'other' and $i{camera_system_id} ne 'all') {
|
|
# push @report_sql, "(`camera_system_id`='$i{camera_system_id}')" ;
|
|
# push @report_results, "camera_system = $camera_system{$i{camera_system_id}}" ;
|
|
# $xlsreportname .= '-' . $i{camera_id} ;
|
|
# # our $acc_id_sql_where = "`camera_id`='$i{camera_id}'"
|
|
# } elsif ($i{camera_system_id} eq 'main' or $i{camera_system_id} eq 'other' or $i{camera_system_id} eq 'all') {
|
|
# push @report_results, "camera_system = $i{camera_system_id}" ;
|
|
# }
|
|
|
|
if ($i{date_from} and $i{date_to}) { # check dates
|
|
my $date_from_check = $i{date_from} ;
|
|
$date_from_check =~ s/\-//g ;
|
|
my $date_to_check = $i{date_to} ;
|
|
$date_to_check =~ s/\-//g ;
|
|
if ($date_from_check > $date_to_check) {
|
|
$error = qq(CAMERAS FROM ($i{date_from}) > CAMERAS TO ($i{date_to})); &report_screen;
|
|
}
|
|
}
|
|
|
|
# $i{date_from} = $i{date_from_i_field} if $i{date_from_i_field} ;
|
|
# $i{date_to} = $i{date_to_i_field} if $i{date_to_i_field} ;
|
|
# $i{operator_id} = $i{operator_id_i_field} if $i{operator_id_i_field} ;
|
|
|
|
if ($i{date_from}) {
|
|
# push @report_sql, "(`date_active` >= '$i{date_from}')" ;
|
|
# push @report_results, "date_active >= $i{date_from}" ;
|
|
push @report_sql, "(`quote_date` >= '$i{date_from} 00:00:00')" ;
|
|
push @report_results, "date_time >= $i{date_from}" ;
|
|
}
|
|
|
|
if ($i{date_to}) {
|
|
# push @report_sql, "(`date_active` <= '$i{date_to}')" ;
|
|
# push @report_results, "date_active <= $i{date_to}" ;
|
|
push @report_sql, "(`quote_date` <= '$i{date_to} 23:59:59')" ;
|
|
push @report_results, "date_time <= $i{date_to}" ;
|
|
}
|
|
|
|
# if ($i{client_id}) {
|
|
# # push @report_sql, "(`client_id` = '$i{client_id}')" ;
|
|
# push @report_results, "Client = $client{$i{client_id}}" ;
|
|
# }
|
|
|
|
our $where2 = qq~~ ;
|
|
if ($i{operator_id}) {
|
|
$where2 = "operator_workings_event LIKE '%;$i{operator_id}%' OR operator_workings_event LIKE '%$i{operator_id};%'" ;
|
|
push @report_results, "OPERATOR = $db{users}{1}{name}" ;
|
|
}
|
|
|
|
if ($i{event_quote_id}) {
|
|
&db_min_ro('event_quotes','1,ref',"`id`='$i{event_quote_id}'",'','') ;
|
|
push @report_sql, "(`id` = '$i{event_quote_id}')" ;
|
|
push @report_results, "EVENT QUOTE = $db{event_quotes}{1}{ref}" ;
|
|
}
|
|
|
|
# if ($i{operators_paid}) {
|
|
# push @report_sql2, "`operator_amounts_paid` NOT LIKE '%;;%'" ;
|
|
# push @report_sql2, "`operator_amounts_paid` != ';'" ;
|
|
# push @report_sql2, "`operator_amounts_paid` IS NOT NULL" ;
|
|
# push @report_results, "OPERATOR ARE ALL PAID" ;
|
|
# }
|
|
|
|
# if ($i{stock}) {
|
|
# push @report_results, "Stock = $i{stock}" ;
|
|
# }
|
|
|
|
$report_results_msg = uc join(', ', @report_results) ;
|
|
|
|
if (not $report_results_msg) {
|
|
$error = qq(ENTER AT LEAST ONE SEARCH PARAMETER);
|
|
&report_screen;
|
|
} else {
|
|
$isaved = qq(SELECT WHERE $report_results_msg) ;
|
|
}
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub load_search_vars {
|
|
|
|
if ($i{operator_id}) {
|
|
&db_min_ro('users','1,name',"`id` = '$i{operator_id}'",'','') ;
|
|
}
|
|
|
|
# if ($i{client_id}) {
|
|
# my $customers_sql_where = "`id`='$i{client_id}'" ;
|
|
# &db_min_ro('customers','*',$customers_sql_where,'','') ;
|
|
# foreach my $id (keys %{$db{customers}}) {
|
|
# $client{$id} = $db{customers}{$id}{name} ;
|
|
# }
|
|
# }
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub list_screen {
|
|
|
|
# $print_box_content_rows .= &common_min_forms_start('report') ;
|
|
|
|
# $print_box_content_rows .= &common_min_forms_start('invoice') ;
|
|
|
|
my $srch_where_sql = join(' AND ', @report_sql) ;
|
|
|
|
my $srch_where_sql2 = join(' AND ', @report_sql2) ;
|
|
|
|
my $add_sql_where = '' ;
|
|
|
|
# our @sql_col_display = ("id","camera_nr","camera_serial_nr","date_received","amount_usd","amount_zar","in_stock") ;
|
|
|
|
our @sql_col_display = ("event_quote_nr","operator_names","event_name","event_date_from","event_date_to","description","amount","date_paid","amount_paid") ;
|
|
|
|
my $table_colspan = 0 ;
|
|
|
|
foreach (@sql_col_display) {
|
|
$table_colspan += 1 ;
|
|
}
|
|
|
|
&report_xls_export_header("Operators_Report$xlsreportname",'operators_report') ;
|
|
|
|
&load_list_vars("$srch_where_sql$add_sql_where","$where2","$srch_where_sql2") ;
|
|
|
|
my $field = "" ; my @qty_work = () ; my @amnt_usd_work = () ; my @amnt_work = () ; my @op_work = () ; my @description = () ;
|
|
my @paid_work = () ; my $row_cnt = 0 ; my $first_id = 0 ; my $last_id = 0 ; my %row_cnt_to_id = () ;
|
|
|
|
$fcol = 2 ;
|
|
|
|
$print_box_content_rows .= qq~<div style = "display:none;">~ ;
|
|
$print_box_content_rows .= &common_min_form_input_col("date_from",$i{date_from}) ; #date_from_i_field
|
|
$print_box_content_rows .= &common_min_form_input_col("date_to",$i{date_to}) ; #date_to_i_field
|
|
$print_box_content_rows .= &common_min_form_input_col("operator_id",$i{operator_id}) ; #operator_id_i_field
|
|
$print_box_content_rows .= &common_min_form_input_col("event_quote_id",$i{event_quote_id}) ;
|
|
# $print_box_content_rows .= &common_min_form_input_col("operators_paid",$i{operators_paid}) ;
|
|
$print_box_content_rows .= qq~</div>~ ;
|
|
|
|
$fcol = 12 ; my $val_min = 0 ; $row_cnt = 0 ;
|
|
|
|
my $ttl_light_blue = $workbook->set_custom_color(11,'#71919B');
|
|
|
|
my $total_format_1 = $workbook -> add_format() ;
|
|
$total_format_1 -> copy($format_management_report_data_ref_nr) ;
|
|
$total_format_1 -> set_num_format('#,##0.00');
|
|
$total_format_1 -> set_bold() ;
|
|
$total_format_1 -> set_bg_color($ttl_light_blue);
|
|
$total_format_1 -> set_color('white') ;
|
|
$total_format_1 -> set_size(11) ;
|
|
|
|
my $total_format_2 = $workbook -> add_format() ;
|
|
$total_format_2 -> copy($format_management_report_months) ;
|
|
$total_format_2 -> set_bold() ;
|
|
$total_format_2 -> set_bg_color($ttl_light_blue);
|
|
$total_format_2 -> set_color('white') ;
|
|
$total_format_2 -> set_size(11) ;
|
|
|
|
foreach my $id (sort {$a <=> $b} keys %{$db{$table}}) {
|
|
|
|
if ($i{client_id}) {
|
|
next unless $client{$i{client_id}} eq $quote_customer{$id} ;
|
|
}
|
|
next unless $db{event_quotes_min}{$id}{operator_dates_paid} ;
|
|
# if ($i{operators_paid}) {
|
|
# next unless $operator_all_paid{$_} ;
|
|
# }
|
|
|
|
$cnt_in_stock = -1 ;
|
|
my $in_stock = "" ;
|
|
|
|
@date_pay = split(";",$db{event_quotes_min}{$id}{operator_dates_paid}) ;
|
|
@amount_pay = split(";",$db{event_quotes_min}{$id}{operator_amounts_paid}) ;
|
|
|
|
my %operator_paid_details = () ; my $cnt = 0 ;
|
|
|
|
foreach (@amount_pay) {
|
|
my @c = split(":",$_) ;
|
|
$operator_paid_details{$c[0]}{$date_pay[$cnt]}{$cnt} = $c[1] ;
|
|
$cnt++ ;
|
|
}
|
|
|
|
# @paid = split(";",$db{event_quotes_min}{$id}{amount_is_paid_workings_event}) ;
|
|
|
|
@qty_work = split(";", $db{event_quotes_min}{$id}{qty_workings_event}) ;
|
|
@amnt_usd_work = split(";", $db{event_quotes_min}{$id}{amount_usd_workings_event}) ;
|
|
@amnt_work = split(";", $db{event_quotes_min}{$id}{amount_workings_event}) ;
|
|
@op_work = split(";", $db{event_quotes_min}{$id}{operator_workings_event}) ;
|
|
@paid_work = split(";", $db{event_quotes_min}{$id}{paid_workings_event}) ; # ????
|
|
@description = split(";", $db{event_quotes_min}{$id}{description_workings_event}) ;
|
|
|
|
my %cnt_to_op = () ; $cnt = 0 ;
|
|
|
|
foreach (@op_work) {
|
|
$cnt++ ;
|
|
$cnt_to_op{$_}{$cnt} = 1 ;
|
|
}
|
|
|
|
# &common_debug("NEW: $id, $db{event_quotes_min}{$id}{qty_workings_event}") ;
|
|
|
|
$first_id = $id unless $first_id ;
|
|
$last_id = $id if $last_id < $id ;
|
|
|
|
my %amnt_tot = () ; my $amnt_paid_tot = 0 ;
|
|
|
|
foreach my $op_id (sort keys %cnt_to_op) {
|
|
|
|
next if $i{operator_id} and $i{operator_id} ne $op_id ;
|
|
|
|
foreach my $column_count (sort keys %{$cnt_to_op{$op_id}}) {
|
|
|
|
# $field = "operator_$column_count\_workings_event" ;
|
|
|
|
$xlscol = 0 ;
|
|
|
|
# next if not $db{$table}{$id}{$field} ;
|
|
next unless $op_work[$column_count - 1] ;
|
|
# &common_debug("OP: $id, $db{$table}{$id}{$field}, $op_work[$column_count - 1]") ;
|
|
|
|
$print_tbody .= qq~<tr id="$id">~ ;
|
|
# $row_cnt++ ;
|
|
foreach (@sql_col_display) {
|
|
|
|
next unless $_ ; # blank for the buttons column
|
|
$display = 1 ;
|
|
my $val = $db{$table}{$id}{$_} ;
|
|
my $align = '' ;
|
|
my $center = qq~ class="dt-center"~ ;
|
|
$align = $center ;
|
|
|
|
if ($_ eq 'event_date_from' or $_ eq 'event_date_to'){
|
|
$db{$table}{$id}{date_from} = substr($db{$table}{$id}{date_from},0,10) ;
|
|
$db{$table}{$id}{date_to} = substr($db{$table}{$id}{date_to},0,10) ;
|
|
$val = $db{$table}{$id}{date_from} if $_ eq 'event_date_from' ;
|
|
$val = $db{$table}{$id}{date_to} if $_ eq 'event_date_to' ;
|
|
$val = substr($val, 0, 10) ;
|
|
} elsif ($_ eq 'operator_names') {
|
|
# $val = $casual_names_from_ids{$db{$table}{$id}{$field}} ;
|
|
$val = $casual_names_from_ids{$op_work[$column_count - 1]} ;
|
|
}
|
|
# elsif ($_ eq 'type') {
|
|
# # if ($type_a_users{$db{$table}{$id}{$field}}) {
|
|
# if ($type_a_users{$op_work[$column_count - 1]}) {
|
|
# # $val = $type_a_users{$db{$table}{$id}{$field}} ;
|
|
# $val = $type_a_users{$op_work[$column_count - 1]} ;
|
|
# } else {
|
|
# # $val = $type_b_users{$db{$table}{$id}{$field}} ;
|
|
# $val = $type_b_users{$op_work[$column_count - 1]} ;
|
|
# }
|
|
# } elsif ($_ eq 'qty') {
|
|
# # $val = $db{$table}{$id}{"qty_$column_count\_workings_event"} ;
|
|
# $val = $qty_work[$column_count - 1] ;
|
|
# }
|
|
elsif ($_ eq 'amount') {
|
|
# $val = $db{$table}{$id}{"amount_usd_$column_count\_workings_event"} ;
|
|
$val = &common_commify($amnt_work[$column_count - 1]) ;
|
|
$amnt_tot{$op_id} += $amnt_work[$column_count - 1] ;
|
|
}
|
|
elsif ($_ eq 'total_amount') {
|
|
# $val = $db{$table}{$id}{"amount_$column_count\_workings_event"} ;
|
|
$val = &common_commify($amnt_work[$column_count - 1]) ;
|
|
}
|
|
elsif ($_ eq 'event_quote_nr') {
|
|
my $class = 'info' ;
|
|
if ($quote_status{$id} == 1) {
|
|
$class = 'danger' ;
|
|
} elsif ($quote_status{$id} == 2) {
|
|
$class = 'success' ;
|
|
} elsif ($quote_status{$id} == 3) {
|
|
$class = 'danger' ;
|
|
} elsif ($quote_status{$id} == 4) {
|
|
$class = 'warning' ;
|
|
}
|
|
$row_cnt++ ;
|
|
$row_cnt = sprintf("%03d",$row_cnt) ;
|
|
$val = qq~<a class="btn btn-$class btn-xs" href="javascript:editMinItem('$id');"><span style="display:none;">$row_cnt</span>$id</a>~ ;
|
|
}
|
|
# elsif ($_ eq 'availablity') {
|
|
# if ($availability{$id}{$db{$table}{$id}{$field}} eq "Available" ) {
|
|
# $val = qq~<span style="display:none;">2</span><span class="label label-success" title data-toggle="tooltip" data-original-title="Available"><i class="glyphicon glyphicon-ok"></i></span>~ ;
|
|
# # $val .= $availability{$id}{$db{$table}{$id}{$field}} ;
|
|
# } elsif ($availability{$id}{$db{$table}{$id}{$field}} eq "Not Available" ) {
|
|
# $val = qq~<span style="display:none;">0</span><span class="label label-danger" title data-toggle="tooltip" data-original-title="Not Available"><i class="glyphicon glyphicon-remove"></i> </span>~ ;
|
|
# # $val .= $availability{$id}{$db{$table}{$id}{$field}} ;
|
|
# }
|
|
# else {
|
|
# $val = qq~<span class="label label-warning" title data-toggle="tooltip" data-original-title="No Response"><i class="glyphicon glyphicon-question-sign"></i></span>~ ;
|
|
# # $val .= "No Response" ;
|
|
# }
|
|
# }
|
|
elsif ($_ eq 'date_paid') {
|
|
|
|
# if ($date_pay[$column_count - 1]) {
|
|
# $val = &common_min_form_input_col("date_$id\_$row_cnt",$date_pay[$column_count - 1]) ;
|
|
# $val = $date_pay[$column_count - 1] ;
|
|
# $val_min = $val ;
|
|
# } else {
|
|
# $val = "$now_year-$now_mm-$now_dd" ;
|
|
# &common_min_form_input_col("date_$id\_$row_cnt","$now_year-$now_mm-$now_dd") ;
|
|
# $val_min = $val ;
|
|
# "$now_year-$now_mm-$now_dd" ;
|
|
# }
|
|
} elsif ($_ eq 'amount_paid') {
|
|
# if ($amount_pay[$column_count - 1]) {
|
|
# $val = $amount_pay[$column_count - 1] ; # &common_min_form_input_col("amount_payble_$id\_$row_cnt",$amount_pay[$column_count - 1]) ;
|
|
# $val_min = $val ;
|
|
# } elsif ($amnt_work[$column_count - 1]) {
|
|
# $val = $amnt_work[$column_count - 1] ; # &common_min_form_input_col("amount_payble_$id\_$row_cnt",$amnt_work[$column_count - 1]) ;
|
|
# $val_min = $val ;
|
|
# }
|
|
}
|
|
# elsif ($_ eq 'paid') {
|
|
# if ($amount_pay[$column_count - 1]) {
|
|
# $val = &common_min_form_checkbox_col("paid_$id\_$row_cnt",1) ;
|
|
# $val_min = "Yes" ;
|
|
# } else {
|
|
# $val = &common_min_form_checkbox_col("paid_$id\_$row_cnt",0) ;
|
|
# $val_min = "No" ;
|
|
# }
|
|
# }
|
|
|
|
elsif ($_ eq 'event_name') {
|
|
# $len = length($db{$table}{$id}{ref}) ;
|
|
$val = "$db{$table}{$id}{ref}" ;
|
|
} elsif ($_ eq 'description') {
|
|
$val = $db{event_cost_items}{$description[$column_count - 1]}{name} ;
|
|
}
|
|
|
|
if ($_ ne 'event_quote_nr' and $_ ne 'availablity' and $_ ne 'qty' and $_ ne 'date_paid' and $_ ne 'amount_paid' and $_ ne 'paid') {
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, $val, $format_management_report_data) ;
|
|
} elsif ($_ eq 'event_quote_nr') {
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, $id, $format_management_report_data_ref_nr) ;
|
|
} elsif ($_ eq 'availablity') {
|
|
if ($availability{$id}{$db{$table}{$id}{$field}}) {
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, $availability{$id}{$db{$table}{$id}{$field}}, $format_management_report_data) ;
|
|
} else {
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, "No Response", $format_management_report_data) ;
|
|
}
|
|
} elsif ($_ eq 'qty'){
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, $val, $format_management_report_data_ref_nr) ;
|
|
} elsif ($_ eq 'date_paid' or $_ eq 'amount_paid' or $_ eq 'paid') {
|
|
# &xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol, $val_min, $format_management_report_data) ;
|
|
}
|
|
$xlscol++;
|
|
# if ($_ eq 'ref_nr' or $_ eq 'camera_nr') { $val = &common_camera_links($table,$id,$val) ;}
|
|
$print_tbody .= qq~<td $align>$val</td>~ ;
|
|
|
|
if ($_ eq 'date_paid') {
|
|
|
|
# my $amnt_ownd = $amnt_tot{$op_id} ; my $dates = qq~~ ; my $amnts = qq~~ ;
|
|
# foreach my $date (sort keys %{$operator_paid_details{$op_id}}) {
|
|
# foreach my $ct (keys %{$operator_paid_details{$op_id}{$date}}) {
|
|
# $dates .= qq~<br >~ if $dates ; $dates .= qq~$dates~ ;
|
|
# $amnts .= qq~<br>~ if $amnts ; $amnts .= qq~$operator_paid_details{$op_id}{$date}{$ct}~ ;
|
|
# $amnt_ownd -= $operator_paid_details{$op_id}{$date}{$ct} ;
|
|
# }
|
|
# }
|
|
# $amnt_ownd = sprintf("%.2f",$amnt_ownd) ;
|
|
# $print_tbody .= qq~<td $align>$dates</td><td $align>$amnts</td><td $align>$amnt_ownd</td>~ ;
|
|
}
|
|
}
|
|
$print_tbody .= qq~</tr>~ ;
|
|
$xlsrow++ ;
|
|
}
|
|
|
|
$row_cnt++ ;
|
|
# $print_tbody .= qq~<tr><td style="background-color:#71919b;color:white;font-weight:bold;font-size:100%;"><span style="display:none;">$row_cnt</span>Total</td>~ ;
|
|
# for (1 .. $table_colspan-1) {
|
|
# # $print_tbody .= qq~<td style="background-color:white;"> </td>~ ;
|
|
# $print_tbody .= qq~<td style="background-color:#71919b;"> </td>~ ;
|
|
# }
|
|
# $print_tbody .= qq~</tr>~ ;
|
|
|
|
my $dates = qq~~ ; my $amnts = qq~~ ;
|
|
|
|
my $amnt_ownd = $amnt_tot{$op_id} ;
|
|
|
|
foreach my $date (sort keys %{$operator_paid_details{$op_id}}) {
|
|
foreach my $ct (keys %{$operator_paid_details{$op_id}{$date}}) {
|
|
$row_cnt++ ;
|
|
$dates .= qq~<br>~ if $dates ; $dates .= qq~$date~ ;
|
|
$amnts .= qq~<br>~ if $amnts ; $amnts .= qq~$operator_paid_details{$op_id}{$date}{$ct}~ ;
|
|
$amnt_ownd -= $operator_paid_details{$op_id}{$date}{$ct} ;
|
|
}
|
|
}
|
|
$row_cnt = sprintf("%03d",$row_cnt) ;
|
|
|
|
$print_tbody .= qq~<tr>~ ;
|
|
|
|
local $top_row = $xlsrow ;
|
|
|
|
foreach my $tot_row (split("<br>",$dates)) {
|
|
for (0 .. $xlscol-1) {
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $_,"", $total_format_1) ;
|
|
}
|
|
$xlsrow++ ;
|
|
}
|
|
|
|
$xlsrow = $top_row ;
|
|
|
|
$xlscol-- ; $xlscol-- ;
|
|
|
|
foreach (@sql_col_display) {
|
|
|
|
if ($_ eq 'event_quote_nr') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;"><span style="display:none;">$row_cnt</span></td>~ ;
|
|
} elsif ($_ eq 'operator_names') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;"><span style="display:none;">$casual_names_from_ids{$op_id}</span></td>~ ;
|
|
} elsif ($_ eq 'event_name') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;"><span style="display:none;">$db{$table}{$id}{ref}</span></td>~ ;
|
|
} elsif ($_ eq 'event_date_from') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;"><span style="display:none;">$db{$table}{$id}{date_from}</span></td>~ ;
|
|
} elsif ($_ eq 'event_date_to') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;"><span style="display:none;">$db{$table}{$id}{date_to}</span></td>~ ;
|
|
} elsif ($_ eq 'description') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;font-weight:bold;font-size:100%;color:white;" class="dt-right"><span style="display:none;">$row_cnt</span>Total</td>~ ;
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol-2, "Total", $total_format_2) ;
|
|
} elsif ($_ eq 'amount') {
|
|
$amnt_tot{$op_id} = &common_commify(sprintf("%.2f",$amnt_tot{$op_id})) ;
|
|
$print_tbody .= qq~<td style="background-color:#71919b;color:white;" class="dt-center"><b>$amnt_tot{$op_id}</b></td>~ ;
|
|
&xlsxcreator_write_xlsx($ws, $xlsrow, $xlscol-1, $amnt_tot{$op_id}, $total_format_1) ;
|
|
} elsif ($_ eq 'date_paid') {
|
|
$print_tbody .= qq~<td style="background-color:#71919b;color:white;" class="dt-center"><b>$dates</b></td>~ ;
|
|
$top_row = $xlsrow ;
|
|
foreach (split("<br>",$dates)) {
|
|
&xlsxcreator_write_xlsx($ws,$xlsrow,$xlscol,$_,$total_format_1) ;
|
|
$xlsrow++ ;
|
|
}
|
|
$xlsrow = $top_row ;
|
|
$xlscol++;
|
|
} elsif ($_ eq 'amount_paid') {
|
|
$top_row = $xlsrow ;
|
|
local $new_amnt = 0 ;
|
|
local $new_amnt_str = qq~~ ;
|
|
foreach (split("<br>",$amnts)) {
|
|
&xlsxcreator_write_xlsx($ws,$xlsrow,$xlscol,$_,$total_format_1) ;
|
|
$xlsrow++ ;
|
|
$new_amnt = &common_commify(sprintf("%.2f",$_)) ;
|
|
$new_amnt_str .= qq~$new_amnt<br>~ ;
|
|
}
|
|
$new_amnt_str = substr($new_amnt_str,0,-4) if $new_amnt_str ;
|
|
# $xlsrow = $top_row ;
|
|
$xlscol++;
|
|
$print_tbody .= qq~<td style="background-color:#71919b;color:white;" class="dt-center"><b>$new_amnt_str</b></td>~ ;
|
|
} elsif ($_ eq 'outstanding_amount') {
|
|
$amnt_ownd = sprintf("%.2f",$amnt_ownd) ;
|
|
$print_tbody .= qq~<td style="background-color:#71919b;color:white;" class="dt-center"><b>$amnt_ownd</b></td>~ ;
|
|
}
|
|
|
|
}
|
|
# $xlsrow++ ;
|
|
|
|
# for (0 .. $table_colspan-6) {
|
|
# # $print_tbody .= qq~<td style="background-color:white;"> </td>~ ;
|
|
# $print_tbody .= qq~<tr><td style="background-color:#71919b;"><span style="display:none;">$row_cnt</span></td>~ unless $_ ;
|
|
# $print_tbody .= qq~<td style="background-color:#71919b;"> </td>~ if $_ ;
|
|
# }
|
|
|
|
|
|
|
|
$print_tbody .= qq~</tr>~ ;
|
|
}
|
|
|
|
# $print_tbody .= qq~<tr><td style="background-color:#71919b;color:white;font-weight:bold;font-size:100%;"><span style="display:none;">$id/2</span>Total</td>~ ;
|
|
# for (1 .. $table_colspan-1) {
|
|
# # $print_tbody .= qq~<td style="background-color:white;"> </td>~ ;
|
|
# $print_tbody .= qq~<td style="background-color:#71919b;"> </td>~ ;
|
|
# }
|
|
# $print_tbody .= qq~</tr>~ ;
|
|
|
|
}
|
|
# $print_tbody .= qq~<tr>~ ;
|
|
# $print_tbody .= qq~</tr>~ ;
|
|
$worksheet{$ws} -> set_column(1, 3, 20) ;
|
|
$worksheet{$ws} -> set_column(10, 10, 25) ;
|
|
$worksheet{$ws} -> set_row(0, 30) ;
|
|
$worksheet{$ws} -> set_row(2, 20) ;
|
|
|
|
$box_icon .= qq~<div class="box-icon" title='View Invoice PDF' data-toggle="tooltip" data-placement="left"><a class="btn btn-default btn-round" href="javascript:dlgMdl('$useropts{'scripts'}/pdf/operators_invoice_pdf.pl?$i{date_from}&$i{date_to}&$i{operator_id}&$i{event_quote_id}','OPERATORS INVOICE','','waybill-dialog');" style="padding-top:1px;"><i class="glyphicon glyphicon-print icon-white"></i></a></div>~ if $i{operator_id} ;
|
|
|
|
# $box_icon .= qq~<div class="box-icon" title='Set All To Paid' data-toggle="tooltip" data-placement="left"><a class="btn btn-default btn-round" href="javascript:payAllInvoices('1');" style="padding-top:1px;"><i class="glyphicon glyphicon-usd icon-white"></i></a></div>~ ;
|
|
|
|
# $box_icon .= qq~<div class="box-icon" title='Toggle all Selected' data-toggle="tooltip" data-placement="left"><a class="btn btn-default btn-round" href="javascript:selectAll();" style="padding-top:1px;"><i class="glyphicon glyphicon-usd icon-white"></i></a></div>~ ;
|
|
|
|
&report_xls_export_footer('L',15,'operators_report') ;
|
|
|
|
# $box_icon = $box_icon . '' . $box_icon_pdf . '' . $box_icon_paid ;
|
|
|
|
|
|
# $fnsortcol = 3 ;
|
|
# $fnsortorder = 'asc' ;
|
|
$fnsortcol = 0;
|
|
$fnsortorder = 'asc' ;
|
|
$print_more_boxes .= qq~<br><button type="button" class="btn btn-default" onclick="history.go(-1);">Back</button><br><br>~ ;
|
|
&common_min_extra_crumb("$lcpage-report","Search Screen") ;
|
|
|
|
# $trigger_jquery_raw .= qq~
|
|
|
|
# function selectAll() {
|
|
|
|
# var row_cnt = $row_cnt ; var id_1 = $first_id ; var id_2 = $last_id ; var found_id = 0 ;
|
|
|
|
# console.log("row_cnt : "+row_cnt+" , id_1 : "+id_1+" , id_2 : "+id_2) ;
|
|
|
|
# // var filteredRows = \$("#itv-table").dataTable().rows({ filter: "applied" }).nodes();
|
|
|
|
# var filteredRows = \$("#itv-table").dataTable()._('tr', {"filter":"applied"}) ;
|
|
|
|
# var filteredRows2 = \$("#itv-table").dataTable().fnGetNodes() ;
|
|
|
|
# console.log("filteredRows : "+filteredRows) ;
|
|
|
|
# console.log("filteredRows2 : "+filteredRows2) ;
|
|
|
|
# // if (!filteredRows) {
|
|
# // filteredRows = \$("#itv-table").dataTable() ;
|
|
# // }
|
|
|
|
# if (row_cnt) {
|
|
# for (let i = 1; i <= row_cnt; i++) {
|
|
# found_id = 0 ;
|
|
# for (let j = id_1; j <= id_2; j++) {
|
|
# // \$(\$("#itv-table").dataTable().fnGetNodes()).find(\$("input[name=paid_"+j+"_"+i+"]")).each(function () {
|
|
# \$(\$("#itv-table").dataTable().fnGetNodes()).find(\$("input[name=paid_"+j+"_"+i+"]")).each(function () {
|
|
# id_1 = j ;
|
|
# found_id = 1 ;
|
|
# if(\$(this).is(':checked')) {
|
|
# \$(this).prop('checked',false);
|
|
# } else {
|
|
# \$(this).prop('checked',true);
|
|
# }
|
|
# }) ;
|
|
# if (found_id) {
|
|
# break ;
|
|
# }
|
|
# }
|
|
# }
|
|
# }
|
|
|
|
|
|
# // \$(filteredRows).each(function() {
|
|
# // var rowId = \$(this).attr("id");
|
|
# // console.log("Row ID: " + rowId);
|
|
# // });
|
|
|
|
# // console.log("filteredRows : "+filteredRows) ;
|
|
# // \$(\$("#itv-table").dataTable().fnGetNodes()).find(\$("input[name=input_array]")).each(function () {
|
|
# // if(\$(this).is(':checked')) {
|
|
# // \$(this).prop('checked',false);
|
|
# // } else {
|
|
# // \$(this).prop('checked',true);
|
|
# // }
|
|
# // });
|
|
# }
|
|
|
|
# // function payAllInvoices (id)
|
|
# // {
|
|
# // BootstrapDialog.confirm({
|
|
# // title: 'Confirm',
|
|
# // message: 'Are you sure you want to confirm all as paid?',
|
|
# // type: BootstrapDialog.TYPE_PRIMARY, // <-- Default value is BootstrapDialog.TYPE_PRIMARY <-- Default value is BootstrapDialog.TYPE_WARNING
|
|
# // callback: function(result) {
|
|
# // if(result) {
|
|
# // document.paid_min_form.$id.value = id ;
|
|
# // \$('#paid-form').submit();
|
|
# // }
|
|
# // }
|
|
# // });
|
|
# // }
|
|
|
|
# // function payAllInvoices() {
|
|
|
|
# // var list = [];
|
|
|
|
# // var filteredrows = \$("#itv-table").dataTable()._('tr', {"filter": "applied"});
|
|
|
|
# // // var lastclient = '' ;
|
|
|
|
# // for ( var i = 0; i < filteredrows.length; i++ ) {
|
|
# // // if ((lastclient) && (filteredrows[i][1] != lastclient)) { noty({text:'Error : Please select jobs from one client only!',layout:"center",type:"error",timeout:3000}); return ; }
|
|
# // list.push(filteredrows[i][0]);
|
|
# // // lastclient=filteredrows[i][1];
|
|
# // };
|
|
|
|
# // var params = list.join("&");
|
|
# // var conf = list.join(", ");
|
|
|
|
# // if (!params) { noty({text:'Error : No operators selected!',layout:"center",type:"error",timeout:3000}); return ; }
|
|
|
|
# // var reply = '' ;
|
|
|
|
# // BootstrapDialog.confirm({
|
|
# // title: 'Confirm Pay Invoices',
|
|
# // message: 'Are you sure you want to pay these invoices?',
|
|
# // type: BootstrapDialog.TYPE_SUCCESS, // <-- Default value is BootstrapDialog.TYPE_PRIMARY
|
|
# // callback: function(result) {
|
|
# // if(result) {
|
|
# // noty({text:'Pay these: '+params,layout:"center",type:"success",timeout:3000});
|
|
# // // var url = "$useropts{'scripts'}/get/get_db_pay_invoices.pl?" + params ;
|
|
# // // \$.get(url, function(json) {
|
|
# // // \$.each(json, function(key, data) {
|
|
# // // reply = data.inv_id ;
|
|
# // // // alert (reply) ;
|
|
# // // if ((reply) && (reply != 'error')) {
|
|
# // // noty({text:'Invoices succesfully paid!',layout:"center",type:"success",timeout:3000});
|
|
|
|
# // // for ( var i = 0; i < filteredrows.length; i++ ) {
|
|
# // // \$('#' + filteredrows[i][0]).hide(); // hide row by id
|
|
# // // };
|
|
|
|
# // // }
|
|
# // // else
|
|
# // // {
|
|
# // // noty({text:'Error paying invoices!',layout:"center",type:"error",timeout:3000}); return ;
|
|
# // // }
|
|
# // // });
|
|
# // // },
|
|
# // // 'json');
|
|
# // } else {
|
|
# // // do nothing
|
|
# // }
|
|
# // }
|
|
# // });
|
|
# // }
|
|
|
|
# ~;
|
|
|
|
# $trigger_jquery_raw .= qq~\$("#savebutt").click(function() {
|
|
|
|
# \$('#invoice-form').submit();
|
|
|
|
# });
|
|
|
|
# ~ ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub set_tick {
|
|
|
|
my ($color,$tooltip) = @_ ;
|
|
|
|
$tick{green} = qq~<span style="display:none;">2</span><span class="label label-success"><i $tooltip class="glyphicon glyphicon-ok"></i></span>~ ;
|
|
$tick{orange} = qq~<span style="display:none;">1</span><span class="label label-warning"><i $tooltip class="glyphicon glyphicon-ok"></i></span>~ ;
|
|
$tick{red} = qq~<span style="display:none;">0</span><span class="label label-danger"><i $tooltip class="glyphicon glyphicon-ok"></i></span>~ ;
|
|
|
|
return ($tick{$color}) ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub set_cross {
|
|
|
|
my ($color,$tooltip) = @_ ;
|
|
|
|
$tick{green} = qq~<span style="display:none;">2</span><span class="label label-success"><i $tooltip class="glyphicon glyphicon-remove"></i></span>~ ;
|
|
$tick{orange} = qq~<span style="display:none;">1</span><span class="label label-warning"><i $tooltip class="glyphicon glyphicon-remove"></i></span>~ ;
|
|
$tick{red} = qq~<span style="display:none;">0</span><span class="label label-danger"><i $tooltip class="glyphicon glyphicon-remove"></i></span>~ ;
|
|
|
|
return ($tick{$color}) ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub load_list_vars {
|
|
|
|
my ($where,$where_2,$where_3) = @_ ;
|
|
|
|
# our %ref_nr = () ;
|
|
# &db_min_ro('quotes','id,camera_system_id, quote_nr','','','') ;
|
|
# foreach my $id (keys %{$db{quotes}}) {
|
|
# $ref_nr{$db{quotes}{$id}{camera_system_id}} = $db{quotes}{$id}{quote_nr} ;
|
|
# }
|
|
|
|
# my %casual
|
|
|
|
# my @sql_casuals_where = () ;
|
|
# my $string = "" ;
|
|
# for (1 .. 15) {
|
|
# $string = " description_$_" ;
|
|
# $string .= "_workings_casual_users not like '' " ;
|
|
# push (@sql_casuals_where, $string)
|
|
# }
|
|
# my $sql_casuals_where_string = join("and", @sql_casuals_where)
|
|
|
|
# &db_min_ro('event_quotes','*',"$sql_casuals_where_string",'','') ;
|
|
|
|
# &common_load_quote_vars('>0');
|
|
# &common_load_quote_vars("cameras.quote_nr>0 AND cameras.quote_nr=quotes.quote_nr");
|
|
|
|
our %quote_status = () ;
|
|
|
|
# &db_min_ro('event_quotes',"*",'','','');
|
|
|
|
# foreach my $id (keys %{$db{event_quotes}}) {
|
|
|
|
# foreach my $col (sort keys %{$db{event_quotes}{$id}}) {
|
|
|
|
|
|
|
|
# }
|
|
# last ;
|
|
# }
|
|
# &db_min_ro('event_quotes_min',"*",'','','');
|
|
|
|
# foreach my $id (keys %{$db{event_quotes_min}}) {
|
|
|
|
# foreach my $col (sort keys %{$db{event_quotes_min}{$id}}) {
|
|
|
|
|
|
|
|
# }
|
|
# last ;
|
|
# }
|
|
|
|
&db_min_ro('event_quotes',"id, quote_cancelled, quote_accepted, if(concat(quote_expiry, ' 00:00:00') < now(), 1, 0) as 'expired', quote_pending","$where",'','');
|
|
|
|
foreach my $id (keys %{$db{event_quotes}}) {
|
|
if ($db{event_quotes}{$id}{quote_cancelled} == 1){
|
|
$quote_status{$id} = 1 ;
|
|
} elsif ($db{event_quotes}{$id}{quote_accepted} == 1){
|
|
$quote_status{$id} = 2 ;
|
|
} elsif ($db{event_quotes}{$id}{quote_pending} == 1) {
|
|
$quote_status{$id} = 4 ;
|
|
}
|
|
if ($db{event_quotes}{$id}{expired} == 1) {
|
|
$quote_status{$id} = 3 unless $db{event_quotes}{$id}{quote_accepted} == 1;
|
|
}
|
|
}
|
|
|
|
# &db_min_raw("
|
|
# select id, quote_cancelled, quote_accepted, if(concat(quote_expiry, ' 00:00:00') < now(), 1, 0) as 'expired', quote_pending from event_quotes ;
|
|
# " ) ;
|
|
|
|
|
|
# foreach $row (@$rows_array_ref) {
|
|
# if (@$row[1] == 1){
|
|
# $quote_status{@$row[0]} = 1 ;
|
|
# } elsif (@$row[2] == 1){
|
|
# $quote_status{@$row[0]} = 2 ;
|
|
# } elsif (@$row[4] == 1) {
|
|
# $quote_status{@$row[0]} = 4 ;
|
|
# }
|
|
# if (@$row[3] == 1) {
|
|
# $quote_status{@$row[0]} = 3 unless @$row[2] == 1;
|
|
# }
|
|
# }
|
|
|
|
our %availability = () ;
|
|
|
|
&db_min_raw("
|
|
select e.event_quote_nr, e.user_id, e.category from events e
|
|
left join (
|
|
select id, name, user_type from users where user_type like '%casual%'
|
|
) u on u.id = e.user_id ;
|
|
") ;
|
|
|
|
foreach $row (@$rows_array_ref) {
|
|
if (@$row[2] eq 'available') {
|
|
$availability{@$row[0]}{@$row[1]} = "Available" ;
|
|
} elsif (@$row[2] ne 'available' and @$row[2]) {
|
|
$availability{@$row[0]}{@$row[1]} = "Not Available" ;
|
|
}
|
|
}
|
|
|
|
our %type_a_users = () ;
|
|
our %type_b_users = () ;
|
|
our %casual_names_from_ids = () ;
|
|
|
|
&db_min_ro('users','id,name,user_type',"user_type = 'casual_a' or user_type = 'casual_b'",'','') ;
|
|
foreach my $id (keys %{$db{'users'}}){
|
|
$type_a_users{$id} = "A" if $db{'users'}{$id}{user_type} eq "casual_a" ;
|
|
$type_b_users{$id} = "B" if $db{'users'}{$id}{user_type} eq "casual_b" ;
|
|
$casual_names_from_ids{$id} = $db{'users'}{$id}{name} ;
|
|
}
|
|
|
|
my @event_quote_ids = () ;
|
|
|
|
&db_min_ro($table,'*',"$where",'','') ;
|
|
|
|
foreach (keys %{$db{$table}}) {
|
|
|
|
}
|
|
|
|
our %operator_all_paid = () ;
|
|
|
|
&db_min_ro('event_quotes_min','*',"$where_2$where_3",'','') ;
|
|
|
|
foreach (keys %{$db{event_quotes_min}}) {
|
|
|
|
$operator_all_paid{$db{event_quotes_min}{$_}{quote_id}} = 1 ;
|
|
|
|
}
|
|
|
|
&db_min_ro('event_cost_items','id,name','','','') ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
sub thead {
|
|
|
|
&common_min_thead ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub page_opts {
|
|
|
|
our $glyphicon = 'list' ;
|
|
our $lcpage = 'operators' ;
|
|
|
|
&common_page_name ;
|
|
|
|
our $table = 'event_quotes' ;
|
|
$page_title = 'Operators' ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub report_screen {
|
|
|
|
our $lcol = 3 ;
|
|
our $fcol = 5 ;
|
|
|
|
$print_box_content_rows .= &common_min_forms_start('report') ;
|
|
|
|
# &common_camera_opts ;
|
|
|
|
# &common_min_select_opts('client_id','customers','name',$i{client_id},'') ;
|
|
|
|
&common_min_select_opts('operator_id','users',"name",$i{operator_id},'','',"user_type LIKE 'casual%'") ;
|
|
&common_min_select_opts('event_quote_id','event_quotes',"ref",$i{event_quote_id},'','',"") ;
|
|
|
|
my $current_day_of_week = Day_of_Week($now_year,$now_mm,$now_dd);
|
|
my $days_to_subtract = $current_day_of_week - 1 ;
|
|
my ($first_day_year,$first_day_month,$first_day) = Add_Delta_Days($now_year,$now_mm,$now_dd,-$days_to_subtract);
|
|
|
|
$first_day_month = sprintf("%02d",$first_day_month) ; $first_day = sprintf("%02d",$first_day) ;
|
|
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_from',"$i{date_from}") if $i{date_from} ;
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_from',"$first_day_year-$first_day_month-$first_day") unless $i{date_from} ;
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_to',"$i{date_to}") if $i{date_to} ;
|
|
$print_box_content_rows .= &common_min_form_datepicker('date_to',"$now_year-$now_mm-$now_dd") unless $i{date_to} ;
|
|
|
|
# our %type_a_users = () ;
|
|
# our %type_b_users = () ;
|
|
|
|
# &db_min_ro('users','id, name, user_type',"user_type = 'casual_a' or user_type = 'casual_b'",'','') ;
|
|
# foreach my $id (keys %{$db{'users'}}){
|
|
# $opts{$field} .= qq(<option value="$id" $selected $selected_multi{$val}>$db{$table}{$id}{$dispfield}$disp_addfield$disp_addmore</option>) if $db{'users'}{$id}{user_type} eq "casual_a" ;
|
|
# $opts{$field} .= qq(<option value="$id" $selected $selected_multi{$val}>$db{$table}{$id}{$dispfield}$disp_addfield$disp_addmore</option>) if $db{'users'}{$id}{user_type} eq "casual_b" ;
|
|
# }
|
|
|
|
# $print_box_content_rows .= &common_min_form_select('client_id','') ;
|
|
|
|
$print_box_content_rows .= &common_min_form_select('operator_id','') ;
|
|
$print_box_content_rows .= &common_min_form_select('event_quote_id','') ;
|
|
# $print_box_content_rows .= &common_min_form_checkbox('operators_paid','') ;
|
|
$print_box_content_rows .= &common_min_forms_end('','','report') ;
|
|
|
|
&common_min_search_screen ;
|
|
|
|
} #-------------------------------------------------------------------------------
|
|
|
|
sub screen3 {
|
|
|
|
&thead;
|
|
|
|
if ($isaved) { $alert = &common_min_alert('success',"$ucpage $isaved!",'ok') ; } else { &common_min_alert_type ; }
|
|
|
|
# my $page = "$lcpage\s" ;
|
|
|
|
my $page = "event-quotes" ;
|
|
|
|
if ($s{no}) { $page = $lcpage ; }
|
|
|
|
&common_min_table('id',$page,'list') ;
|
|
|
|
our $savjqy = 1 ;
|
|
|
|
# &common_min_extra_crumb("manage-$lcpage\s","Manage $ucfirstpage\s") ;
|
|
|
|
# $print_box_content_rows .= &common_min_forms_end('','','save') ;
|
|
|
|
require _blank ;
|
|
|
|
exit ;
|
|
|
|
} #------------------------------------------------------------------------------------------
|
|
|
|
use common ;
|
|
use report ;
|
|
use xlsxcreator ;
|
|
use today ;
|
|
|
|
1; |