2025-11-26 09:31:54 +00:00
#!/usr/bin/perl
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
require cfg ;
print "Content-type: text/html\n\n" ;
# unless ($useropts{it}{$username}) { print "<<<<<<<<<<<< MAINTENANCE IN PROGRESS >>>>>>>>>" ; exit ; }
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
use CGI::Carp qw( fatalsToBrowser ) ;
use CGI ;
use Mail::Sendmail ;
use Fcntl qw( :flock ) ;
use File::Copy ;
use File::Basename ;
use Date::Calc qw( :all ) ;
use Excel::Writer::XLSX ;
use Time::Piece ;
use LWP::UserAgent ;
use XML::LibXML ;
use LWP::Simple ;
use XML::Simple ;
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' ) || '' ;
# When the “Create Waybill Out” box in the column is selected and “save"
# is clicked at the bottom of the page, each row selected talks to the
# DCB platform and waybills get created using the information linked to each row.
# The check box in that row and column should then disappear to indicate that a waybill for that step has been created.
# When the “Create Waybill In” box in the column is selected and “save” is clicked at the bottom of the page, each row selected talks to the DCB platform and waybills get created using the information linked to each row. This time, however, the “From” Venue becomes the delivery venue and the “To” venue becomes the pick up venue. These venues will still need to be able to be edited because sometimes systems aren’ t returned to where they came from originally. The check box in that row and column should then disappear to indicate that a waybill for that step has been created.
# When the “Process Complete” box in the column is selected and “save” is clicked at the bottom of the page, each row selected now gets removed from the logistics page and archived.
2026-02-03 12:35:43 +00:00
our $ debug = 1 ;
2025-11-26 09:31:54 +00:00
# our $testing = 1 ;
# our $testdcd = 1 ;
# if ($username ne 'handre') {
# print "<< MAINTENANCE IN PROGRESS >>" ; exit ;
# }
# -------- page opts --------------------------------------------------------------------------------------------------------------------------------------------------
& page_opts ;
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
our $ srchscr = 1 ;
# $is_dcb_partner = 0 ;
our $ open_new_tab = qq~target="_blank"~ ;
if ( $ iaction eq 'save' ) {
& db_open_upd ;
our $ db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
& common_min_load_params ;
& report_ifields ;
& update ;
& list_screen ;
$ db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
& db_close_conn ;
exit if ( $ username eq 'handre' || $ username eq 'rory' ) && $ testing ;
& screen3 ;
& redirect_screen ;
}
& db_open_ro ;
our $ db_ignore_open_close = 1 ; # do one open and one close instead of repeating it
& report_screen if $ iaction eq '' ;
if ( $ iaction eq 'report' ) {
& common_min_load_params ;
& report_ifields ;
& list_screen ;
& screen3 ;
}
& common_min_action ;
$ db_ignore_open_close = 0 ; # do one open and one close instead of repeating it
& db_close_conn ;
exit ;
#------------------------------------------------------------------------------------------
sub update {
& logistics_load_db_vars ;
my % AISA_supplier = ( ) ;
foreach ( keys % { $ db { logistics_suppliers } } ) {
$ AISA_supplier { $ _ } = 1 if $ db { logistics_suppliers } { $ _ } { supplier } =~ /AISA/ ;
}
our % ii = ( ) ; my % iii = % i ; my $ saved_from_to = "" ; #
my % saved_f_t = ( ) ; $ saved_f_t { "from" } = "to" ; $ saved_f_t { "to" } = "from" ; # my %process_complete_envet_ids = () ;
# my $ft = '' ;
$ ignore { 'oaction' } = 1 ; my % calulated_default_values = ( ) ;
my % iii = ( ) ;
foreach ( sort keys % i ) {
local @ field_parts = split ( /\_/ , $ _ ) ;
my $ eid = $ field_parts [ - 1 ] ;
my $ ft = $ field_parts [ - 2 ] ;
next if $ eid !~ /\d+/ || ( $ ft ne 'from' && $ ft ne 'to' ) ;
my $ upd_field_1 = "update_from_$eid" ;
my $ upd_field_2 = "update_to_$eid" ;
next if ! $ i { $ upd_field_1 } && ! $ i { $ upd_field_2 } ;
# &common_debug("$_ [eid=$eid] [ft=$ft]") ;
$ seen_create_waybill { from } { $ eid } = 1 if $ _ =~ /create_waybill_from/ && $ i { $ _ } ;
$ seen_create_waybill { to } { $ eid } = 1 if $ _ =~ /create_waybill_to/ && $ i { $ _ } ;
if ( ( ( $ _ =~ /create_waybill_from/ && $ i { $ upd_field_1 } ) || ( $ _ =~ /create_waybill_to/ && ! $ seen_create_waybill { from } { $ eid } && $ i { $ upd_field_2 } ) ) && $ i { $ _ } ) {
my $ venue_field = "venue_location_$ft\_$eid" ;
my $ venue = $ i { $ venue_field } ;
our @ items = split ( /\|/ , $ i { "item_$ft\_$eid" } ) ;
our $ items_cnt = scalar @ items || 1 ;
our ( $ suburb , $ city , $ postal_code , $ address , $ address1 , $ address2 , $ address3 , $ address4 , $ routeCode , $ dcbdate ) ; my @ add_sql_upd = ( ) ; my $ add_sql_upd = '' ;
$ city = ( $ db { organisations } { $ venue } { name } ) ? $ db { organisations } { $ venue } { name } : '' ; ### $db{organisations}{$venue}{name} ??
$ suburb = ( $ db { organisations } { $ venue } { suburb } ) ? $ db { organisations } { $ venue } { suburb } : '' ;
$ postal_code = ( $ db { organisations } { $ venue } { postal_code } ) ? $ db { organisations } { $ venue } { postal_code } : '' ;
$ address1 = ( $ db { organisations } { $ venue } { address_line_1 } ) ? $ db { organisations } { $ venue } { address_line_1 } : '' ;
$ address2 = ( $ db { organisations } { $ venue } { address_line_2 } ) ? $ db { organisations } { $ venue } { address_line_2 } : '' ;
$ address3 = ( $ db { organisations } { $ venue } { address_line_3 } ) ? $ db { organisations } { $ venue } { address_line_3 } : '' ;
$ address4 = ( $ db { organisations } { $ venue } { address_line_4 } ) ? $ db { organisations } { $ venue } { address_line_4 } : '' ;
$ routeCode = ( $ db { organisations } { $ venue } { dcb_route_code } ) ? $ db { organisations } { $ venue } { dcb_route_code } : '' ;
# $dcbdate = ($ft eq 'to') ? substr($db{$table}{$eid}{date_from},0,10) : substr($db{$table}{$eid}{date_to},0,10) ;
$ dcbdate = ( $ ft eq 'to' ) ? $ db { $ table } { $ eid } { date_from } : $ db { $ table } { $ eid } { date_to } ;
# &common_debug("1. CHECK [$_] [ft=$ft] [eid=$eid] [venue_field=$venue_field] [venue=$venue] [!$postal_code || !$suburb || !$city || !$address1]") ;
if ( ! $ postal_code || ! $ suburb || ! $ city || ! $ address1 ) {
( $ suburb , $ city , $ postal_code , $ address ) = & common_location_osm_address ( $ db { organisations } { $ venue } { name } ) if $ db { organisations } { $ venue } { name } ;
# &common_debug("($suburb,$city,$postal_code,$address) = &common_location_osm_address($db{organisations}{$venue}{name}) if $db{organisations}{$venue}{name} ;") ;
push @ add_sql_upd , qq~city = "$city"~ if $ city && ! $ db { organisations } { $ venue } { city } ;
push @ add_sql_upd , qq~suburb = "$suburb"~ if $ suburb && ! $ db { organisations } { $ venue } { suburb } ;
push @ add_sql_upd , qq~postal_code = "$postal_code"~ if $ postal_code && ! $ db { organisations } { $ venue } { postal_code } ;
if ( $ address ) {
( $ address1 , $ address2 , $ address3 , $ address4 ) = split ( /\, / , $ address ) ;
push @ add_sql_upd , qq~address_line_1 = "$address1"~ if $ address1 && ! $ db { organisations } { $ venue } { address_line_1 } ; #, address_line_2 = '$address2', address_line_3 = '$address3', address_line_4 = '$address4'
push @ add_sql_upd , qq~address_line_2 = "$address2"~ if $ address2 && ! $ db { organisations } { $ venue } { address_line_2 } ;
push @ add_sql_upd , qq~address_line_3 = "$address3"~ if $ address3 && ! $ db { organisations } { $ venue } { address_line_3 } ;
push @ add_sql_upd , qq~address_line_4 = "$address4"~ if $ address4 && ! $ db { organisations } { $ venue } { address_line_4 } ;
}
# $add_sql_upd = join(", ",@add_sql_upd) ;
# &db_min_raw("UPDATE organisations SET $add_sql_upd WHERE id='$venue'") if $venue && $add_sql_upd ;
}
# &common_debug("2. CHECK [$suburb && $postal_code && !$routeCode]") ;
if ( $ suburb && $ postal_code && ! $ routeCode ) {
& dcb_postalcode ;
if ( ! $ routeCode ) {
my $ suburb_tmp = $ suburb ; $ suburb = '' ;
& dcb_postalcode ;
$ suburb = $ suburb_tmp ;
}
push @ add_sql_upd , qq~dcb_route_code = "$routeCode"~ if $ routeCode && ! $ db { organisations } { $ venue } { dcb_route_code } ;
}
$ add_sql_upd = join ( ", " , @ add_sql_upd ) ;
& db_min_raw ( "UPDATE organisations SET $add_sql_upd WHERE id='$venue'" ) if $ venue && $ add_sql_upd ;
# &common_debug("3. CHECK [routeCode=$routeCode]") ;
# &dcb_savewabill($venue,$ft,$eid) if $routeCode ;
& dcb_upload_oms_waybill ( $ venue , $ ft , $ eid ) if $ routeCode ;
my @ dcb_waybill = split ( /\-/ , $ db { $ table } { $ eid } { logistics_dcb_waybill } ) ;
# my $dcb_waybill = ($ft eq 'to') ? "$dcb_waybill[0]-1" : "1-$dcb_waybill[1]" ;
# if ($savewabillResult =~ /Successful/iog) {
if ( $ uploadwaybillresult =~ /SUCCESS/iog ) {
# $ii{$eid}{logistics_dcb_waybill} = ($ft eq 'to') ? "$dcb_waybill[0]-1" : "1-$dcb_waybill[1]" ;
if ( $ ft eq 'from' ) {
$ ii { $ eid } { from } { logistics_dcb_waybill } = 1 ;
$ iii { $ eid } { from } { status } = 1 ;
if ( $ i { "create_waybill_to_$eid" } && $ i { $ upd_field_2 } ) {
$ ii { $ eid } { to } { logistics_dcb_waybill } = 1 ;
$ iii { $ eid } { to } { status } = 1 ;
}
} else {
$ ii { $ eid } { to } { logistics_dcb_waybill } = 1 ;
$ iii { $ eid } { to } { status } = 1 ;
}
}
$ ii { $ eid } { from } { logistics_dcb_waybill } = 1 if $ dcb_waybill [ 0 ] && ! $ ii { $ eid } { from } { logistics_dcb_waybill } ;
$ ii { $ eid } { to } { logistics_dcb_waybill } = 1 if $ dcb_waybill [ 1 ] && ! $ ii { $ eid } { to } { logistics_dcb_waybill } ;
}
# if ($_ =~ /process_complete_/) {
# if (!$i{"update_$ft\_$eid"}) { ## AND ???
# $process_complete_envet_ids{$eid} = $i{"process_complete_$ft\_$eid"} ;
# }
# }
if ( $ _ =~ /item_multi/ ) {
# my $e_id = substr($_,4) ;
next if ! $ i { "update_from_$eid" } && ! $ i { "update_to_$eid" } ;
$ ii { $ eid } { item } = $ i { $ _ } ;
next ;
} elsif ( $ _ =~ /shipment_operator_/ && $ _ !~ /shipment_operator_value_was_saved/ ) {
# my $e_id = substr($_,4) ;
next if ! $ i { "update_from_$eid" } && ! $ i { "update_to_$eid" } ;
# if ($AISA_supplier{$i{"logistics_supplier_id_to_$eid"}} && $i{"update_to_$eid"}) {
unless ( $ calulated_default_values { $ eid } { shipment_operator } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_shipment_operator_id } ) ;
$ ii { $ eid } { from } { shipment_operator } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { shipment_operator } = $ saved_field_from_to [ 1 ] ;
my $ update_field = "update_to_$eid" ; my $ sup_field = "logistics_supplier_id_to_$eid" ;
if ( $ i { $ update_field } && $ AISA_supplier { $ i { $ sup_field } } ) {
$ ii { $ eid } { to } { shipment_operator } = $ i { "shipment_operator_to_$eid" } ;
}
if ( $ i { "update_from_$eid" } && $ AISA_supplier { $ i { "logistics_supplier_id_from_$eid" } } ) {
$ ii { $ eid } { from } { shipment_operator } = $ i { "shipment_operator_from_$eid" } ;
}
$ calulated_default_values { $ eid } { shipment_operator } = 1 ;
}
next ;
} elsif ( $ _ =~ /poc/ ) {
next if ! $ i { "update_from_$eid" } && ! $ i { "update_to_$eid" } ;
$ ii { $ eid } { poc } = $ i { $ _ } ;
next ;
}
elsif ( ( $ _ =~ /other_from/ && $ _ !~ /other_from_value_was_saved/ ) || ( $ _ =~ /other_to/ && $ _ !~ /other_to_value_was_saved/ ) ) {
my $ system_location_field = "system_location_to_$eid" ;
my $ venue_location_field = "venue_location_from_$eid" ;
# my $other_field = "other_to_from\_$eid" ;
unless ( $ calulated_default_values { $ eid } { other_from_to } ) {
my @ saved_field_from_to = split ( /\:\|\:/ , $ db { $ table } { $ eid } { logistics_location_other } ) ;
my @ saved_field_from_to_2_1 = split ( /\|/ , $ saved_field_from_to [ 0 ] ) ;
my @ saved_field_from_to_2_2 = split ( /\|/ , $ saved_field_from_to [ 1 ] ) ;
$ ii { $ eid } { other_from } . = ( $ i { "update_from_$eid" } && $ i { $ venue_location_field } eq 'other' ) ? $ i { "other_from_from\_$eid" } . '|' : $ saved_field_from_to_2_1 [ 0 ] . '|' ;
$ ii { $ eid } { other_from } . = ( $ i { "update_to_$eid" } && $ i { $ system_location_field } eq '5' ) ? $ i { "other_from_to\_$eid" } : $ saved_field_from_to_2_1 [ 1 ] ;
$ system_location_field = "system_location_from_$eid" ;
$ venue_location_field = "venue_location_to_$eid" ;
$ ii { $ eid } { other_to } . = ( $ i { "update_from_$eid" } && $ i { $ system_location_field } eq '5' ) ? $ i { "other_to_from\_$eid" } . '|' : $ saved_field_from_to_2_2 [ 0 ] . '|' ;
$ ii { $ eid } { other_to } . = ( $ i { "update_to_$eid" } && $ i { $ venue_location_field } eq 'other' ) ? $ i { "other_to_to\_$eid" } : $ saved_field_from_to_2_2 [ 1 ] ;
# $ii{$eid}{other_to} .= $i{"other_to_from\_$eid"} . '|' . $i{"other_to_to\_$eid"} ;
# $ii{$eid}{other_from} = $saved_field_from_to[0] ;
# $ii{$eid}{other_to} = $saved_field_from_to[1] ;
$ calulated_default_values { $ eid } { other_from_to } = 1 ;
}
# if ($i{$upd_field}) {
# $ii{$eid}{other_from} = $i{"other_from_from\_$eid"} . '|' . $i{"other_from_to\_$eid"} ;
# $ii{$eid}{other_to} = $i{"other_to_from\_$eid"} . '|' . $i{"other_to_to\_$eid"} ;
# }
}
# elsif ($_ =~ /system_location/ && $_ !~ /changed_system_location/) {
# next if !$i{"update_from_$eid"} && !$i{"update_to_$eid"} ;
# $ii{$eid}{system_location} = $i{$_} ;
# next ;
# }
# elsif ($_ =~ /venue_location/ && $_ =~ /changed_venue_location/) {
# next if !$i{"update_from_$eid"} && !$i{"update_to_$eid"} ;
# $ii{$eid}{venue_location} = $i{$_} ;
# next ;
# }
elsif ( $ _ =~ /received_by/ ) {
next if ! $ i { "update_from_$eid" } && ! $ i { "update_to_$eid" } ;
$ ii { $ eid } { received_by } = $ i { $ _ } ;
next ;
}
my $ upd_field = "update_$ft\_$eid" ;
# next if !$i{$upd_field} ;
if ( $ _ =~ /system_location/ && $ _ !~ /changed_system_location/ ) {
# next if !$i{"update_from_$eid"} && !$i{"update_to_$eid"} ;
# $ii{$eid}{system_location} = $i{$_} ;
# next ;
unless ( $ calulated_default_values { $ eid } { system_location } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_system_location_id } ) ;
$ ii { $ eid } { from } { system_location } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { system_location } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { system_location } = 1 ;
}
$ ii { $ eid } { $ saved_f_t { $ ft } } { system_location } = $ i { $ _ } if $ i { $ upd_field } ;
} elsif ( $ _ =~ /venue_location/ && $ _ !~ /changed_venue_location/ ) {
# next if !$i{"update_from_$eid"} && !$i{"update_to_$eid"} ;
# $ii{$eid}{venue_location} = $i{$_} ;
# next ;
unless ( $ calulated_default_values { $ eid } { venue_location } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_venue_id } ) ;
$ ii { $ eid } { from } { venue_location } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { venue_location } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { venue_location } = 1 ;
}
$ ii { $ eid } { $ ft } { venue_location } = $ i { $ _ } if $ i { $ upd_field } ;
} elsif ( $ _ =~ /waybill_nr/ ) {
unless ( $ calulated_default_values { $ eid } { waybill_nr } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_waybill_nrs } ) ;
$ ii { $ eid } { from } { waybill_nr } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { waybill_nr } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { waybill_nr } = 1 ;
}
$ ii { $ eid } { $ ft } { waybill_nr } = $ i { $ _ } if $ i { $ upd_field } ;
} elsif ( $ _ =~ /logistics_supplier/ ) {
unless ( $ calulated_default_values { $ eid } { logistics_supplier } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_suppliers } ) ;
$ ii { $ eid } { from } { logistics_supplier } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { logistics_supplier } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { logistics_supplier } = 1 ;
}
$ ii { $ eid } { $ ft } { logistics_supplier } = $ i { $ _ } if $ i { $ upd_field } ;
} elsif ( $ _ =~ /status/ ) {
unless ( $ calulated_default_values { $ eid } { status } ) {
my @ saved_field_from_to = split ( /\-/ , $ db { $ table } { $ eid } { logistics_status_ids } ) ;
$ ii { $ eid } { from } { status } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { status } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { status } = 1 ;
}
$ ii { $ eid } { $ ft } { status } = $ i { $ _ } if $ i { $ upd_field } ;
$ ii { $ eid } { $ ft } { status } = $ iii { $ eid } { $ ft } { status } if $ iii { $ eid } { $ ft } { status } ;
} elsif ( $ _ =~ /special_instructions/ && $ _ !~ /other_special_instructions/ ) {
unless ( $ calulated_default_values { $ eid } { special_instructions } ) {
my @ saved_field_from_to = split ( /\-\-/ , $ db { $ table } { $ eid } { logistics_special_instructions } ) ;
# my @saved_field_from_to_2_1 = split(/\:\|\:/,$saved_field_from_to[0]) ;
# my @saved_field_from_to_2_2 = split(/\:\|\:/,$saved_field_from_to[1]) ;
my $ other_field_name = "other_special_instructions_from_$eid" ;
my $ special_field_name = "special_instructions_from_$eid" ;
my $ update_field_name = "update_from_$eid" ;
$ ii { $ eid } { from } { special_instructions } = ( $ i { $ update_field_name } ) ? $ i { $ special_field_name } . ":|:" . $ i { $ other_field_name } : $ saved_field_from_to [ 0 ] ;
$ other_field_name = "other_special_instructions_to_$eid" ;
$ special_field_name = "special_instructions_to_$eid" ;
$ update_field_name = "update_to_$eid" ;
$ ii { $ eid } { to } { special_instructions } = ( $ i { $ update_field_name } ) ? $ i { $ special_field_name } . ":|:" . $ i { $ other_field_name } : $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { special_instructions } = 1 ;
}
# if ($i{$upd_field} ) {
# my $other_field_name = "other_special_instructions_$ft\_$eid" ;
# $ii{$eid}{$ft}{special_instructions} = ($ft eq 'to') ? $i{$_} : qq~$i{$_}:|:$i{$other_field_name}~ ;
# $i{$_} =~ s/\-/ /g; $i{$other_field_name} =~ s/\-/ /g; # remove dash so as to not mess up the split
# $ii{$eid}{$ft}{special_instructions} = qq~$i{$_}:|:$i{$other_field_name}~ if $i{$upd_field} ;
# }
} elsif ( $ _ =~ /dcb_comments/ && $ _ !~ /dcb_comments_value_was_saved_/ ) {
unless ( $ calulated_default_values { $ eid } { dcb_comments } ) {
my @ saved_field_from_to = split ( /\-\-/ , $ db { $ table } { $ eid } { logistics_dcb_comments } ) ;
$ ii { $ eid } { from } { dcb_comments } = $ saved_field_from_to [ 0 ] ;
$ ii { $ eid } { to } { dcb_comments } = $ saved_field_from_to [ 1 ] ;
$ calulated_default_values { $ eid } { dcb_comments } = 1 ;
}
my $ supplier_field = "logistics_supplier_id_$ft\_$eid" ;
$ ii { $ eid } { $ ft } { dcb_comments } = $ i { $ _ } if $ i { $ upd_field } && $ i { $ supplier_field } eq '2' ;
}
# elsif ($_ =~ /other_special_instructions/) {
# my @saved_field_from_to = split(/\-/,$db{$table}{$eid}{logistics_special_instructions}) ;
# $ii{$eid}{$saved_f_t{$ft}}{special_instructions} = ($ft eq 'to') ? $saved_field_from_to[0] : $saved_field_from_to[1] ;
# $ii{$eid}{$ft}{special_instructions} = $i{$_} ;
# }
# elsif ($_ =~ /process_complete_/) {
# my @saved_field_from_to = split(/\-/,$db{$table}{$eid}{logistics_complete}) ;
# $ii{$eid}{$saved_f_t{$ft}}{logistics_complete} = ($ft eq 'to') ? $saved_field_from_to[0] : $saved_field_from_to[1] ;
# $ii{$eid}{$ft}{logistics_complete} = $i{$_} ;
# }
elsif ( $ _ =~ /delivery_time/ ) {
unless ( $ calulated_default_values { $ eid } { delivery_time } ) {
my @ saved_field_from_to = split ( /\|/ , $ db { $ table } { $ eid } { logistics_delivery_datetime } ) ;
$ ii { $ eid } { from } { delivery_time } = substr ( $ saved_field_from_to [ 0 ] , 11 ) ;
$ ii { $ eid } { to } { delivery_time } = substr ( $ saved_field_from_to [ 1 ] , 11 ) ;
$ calulated_default_values { $ eid } { delivery_time } = 1 ;
}
$ ii { $ eid } { $ ft } { delivery_time } = $ i { $ _ } if $ i { $ upd_field } ;
} elsif ( $ _ =~ /delivery_date/ ) {
unless ( $ calulated_default_values { $ eid } { delivery_date } ) {
my @ saved_field_from_to = split ( /\|/ , $ db { $ table } { $ eid } { logistics_delivery_datetime } ) ;
$ ii { $ eid } { from } { delivery_date } = substr ( $ saved_field_from_to [ 0 ] , 0 , 10 ) ;
$ ii { $ eid } { to } { delivery_date } = substr ( $ saved_field_from_to [ 1 ] , 0 , 10 ) ;
$ calulated_default_values { $ eid } { delivery_date } = 1 ;
}
$ ii { $ eid } { $ ft } { delivery_date } = $ i { $ _ } if $ i { $ upd_field } ;
}
}
my % iii = % i ;
my $ supp_field = 'logistics_suppliers' ;
my $ waybill_field = 'logistics_waybill_nrs' ;
my $ status_field = 'logistics_status_ids' ;
my $ item_field = 'logistics_item_ids' ;
my $ special_instructions_field = 'logistics_special_instructions' ;
my $ delivery_datetime_field = 'logistics_delivery_datetime' ;
my $ received_by_field = 'logistics_received_by' ;
my $ other_location = 'logistics_location_other' ;
# my $system_location = 'logistics_system_location_id' ;
my $ dcb_waybill = 'logistics_dcb_waybill' ;
my $ dcb_comments_field = 'logistics_dcb_comments' ;
my $ shipment_operator_field = 'logistics_shipment_operator_id' ;
my $ system_location_field = 'logistics_system_location_id' ;
my $ venue_field = 'logistics_venue_id' ;
my @ from_to = ( "from" , "to" ) ; my % seen_sys_id = ( ) ;
foreach my $ event_id ( keys % ii ) {
my $ upd_field_1 = "update_from_$event_id" ;
my $ upd_field_2 = "update_to_$event_id" ;
next if ! $ iii { $ upd_field_1 } && ! $ iii { $ upd_field_2 } ;
% i = ( ) ;
# if ($db{$table}{$event_id}{logistics_venue_id} ne $ii{$event_id}{venue_location}) {
# $i{logistics_venue_id} = $ii{$event_id}{venue_location} ;
# $i{logistics_venue_id} = 0 unless $i{logistics_venue_id} ;
# }
foreach my $ f_t ( @ from_to ) {
my $ add_dash = ( $ f_t eq 'from' ) ? '-' : '' ;
$ i { $ supp_field } . = "$ii{$event_id}{$f_t}{logistics_supplier}$add_dash" ;
$ i { $ waybill_field } . = "$ii{$event_id}{$f_t}{waybill_nr}$add_dash" ;
$ i { $ status_field } . = "$ii{$event_id}{$f_t}{status}$add_dash" ;
$ i { $ dcb_waybill } . = "$ii{$event_id}{$f_t}{logistics_dcb_waybill}$add_dash" ;
$ i { $ shipment_operator_field } . = "$ii{$event_id}{$f_t}{shipment_operator}$add_dash" ;
$ i { $ system_location_field } . = "$ii{$event_id}{$f_t}{system_location}$add_dash" ;
$ i { $ venue_field } . = "$ii{$event_id}{$f_t}{venue_location}$add_dash" ;
$ add_dash = ( $ f_t eq 'from' ) ? '--' : '' ;
$ i { $ special_instructions_field } . = "$ii{$event_id}{$f_t}{special_instructions}$add_dash" ;
$ i { $ dcb_comments_field } . = "$ii{$event_id}{$f_t}{dcb_comments}$add_dash" ;
# $i{logistics_complete} .= "$ii{$event_id}{$f_t}{logistics_complete}$add_dash" ;
$ add_dash = ( $ f_t eq 'from' ) ? '|' : '' ;
$ i { $ delivery_datetime_field } . = ( $ ii { $ event_id } { $ f_t } { delivery_date } && $ ii { $ event_id } { $ f_t } { delivery_time } ) ? "$ii{$event_id}{$f_t}{delivery_date}T$ii{$event_id}{$f_t}{delivery_time}$add_dash" : "$add_dash" ;
}
$ i { $ item_field } = "$ii{$event_id}{item}" ;
# $i{$delivery_datetime_field} = "$ii{$event_id}{delivery_date}T$ii{$event_id}{delivery_time}" ;
$ i { $ received_by_field } = "$ii{$event_id}{received_by}" ;
# $i{$shipment_operator_field} = "$ii{$event_id}{shipment_operator}" ;
# my @poc_details = split(/\_/,$ii{$event_id}{poc}) ;
# $i{recipient_name} = $poc_details[0] ;
# $i{recipient_nr} = $poc_details[1] ;
$ i { recipient_id } = $ ii { $ event_id } { poc } ;
# $i{logistics_dcb_waybill} = $ii{$event_id}{logistics_dcb_waybill} ;
$ i { $ other_location } = $ ii { $ event_id } { other_from } . ":|:" . $ ii { $ event_id } { other_to } ;
# $i{$system_location} = $ii{$event_id}{system_location} ;
# my $upd_field = "update_$ft\_$event_id" ;
$ i { $ item_field } = join ( "," , map { "$_" } sort { $ a <=> $ b } split ( /\,/ , $ i { $ item_field } ) ) if $ i { $ item_field } ;
$ db { $ table } { $ event_id } { logistics_item_ids } = join ( "," , map { "$_" } sort { $ a <=> $ b } split ( /\,/ , $ db { $ table } { $ event_id } { logistics_item_ids } ) ) if $ db { $ table } { $ event_id } { logistics_item_ids } ;
$ ignore { logistics_dcb_waybill } = ( ( $ i { logistics_dcb_waybill } eq $ db { $ table } { $ event_id } { logistics_dcb_waybill } ) || ! $ i { logistics_dcb_waybill } ) ? 1 : 0 ;
$ ignore { logistics_venue_id } = ( ( $ i { logistics_venue_id } eq $ db { $ table } { $ event_id } { logistics_venue_id } ) ) ? 1 : 0 ;
$ ignore { $ supp_field } = ( ( ! $ i { $ supp_field } && ! $ db { $ table } { $ event_id } { logistics_suppliers } ) || ( $ i { $ supp_field } eq $ db { $ table } { $ event_id } { logistics_suppliers } ) ) ? 1 : 0 ;
$ ignore { $ status_field } = ( ( ! $ i { $ status_field } && ! $ db { $ table } { $ event_id } { logistics_status_ids } ) || ( $ i { $ status_field } eq $ db { $ table } { $ event_id } { logistics_status_ids } ) ) ? 1 : 0 ;
$ ignore { $ waybill_field } = ( ( ! $ i { $ waybill_field } && ! $ db { $ table } { $ event_id } { logistics_waybill_nrs } ) || ( $ i { $ waybill_field } eq $ db { $ table } { $ event_id } { logistics_waybill_nrs } ) ) ? 1 : 0 ;
$ ignore { $ item_field } = ( ( ! $ i { $ item_field } && ! $ db { $ table } { $ event_id } { logistics_item_ids } ) || ( $ i { $ item_field } eq $ db { $ table } { $ event_id } { logistics_item_ids } ) ) ? 1 : 0 ;
$ ignore { $ delivery_datetime_field } = ( ( ! $ i { $ delivery_datetime_field } && ! $ db { $ table } { $ event_id } { $ delivery_datetime_field } ) || ( $ i { $ delivery_datetime_field } eq $ db { $ table } { $ event_id } { $ delivery_datetime_field } ) ) ? 1 : 0 ;
$ ignore { $ received_by_field } = ( ( ! $ i { $ received_by_field } && ! $ db { $ table } { $ event_id } { $ received_by_field } ) || ( $ i { $ received_by_field } eq $ db { $ table } { $ event_id } { $ received_by_field } ) ) ? 1 : 0 ;
$ ignore { $ shipment_operator_field } = ( ( ! $ i { $ shipment_operator_field } && ! $ db { $ table } { $ event_id } { $ shipment_operator_field } ) || ( $ i { $ shipment_operator_field } eq $ db { $ table } { $ event_id } { $ shipment_operator_field } ) ) ? 1 : 0 ;
$ ignore { $ special_instructions_field } = ( ( ! $ i { $ special_instructions_field } && ! $ db { $ table } { $ event_id } { logistics_special_instructions } ) || ( $ i { $ special_instructions_field } eq $ db { $ table } { $ event_id } { logistics_special_instructions } ) ) ? 1 : 0 ;
$ ignore { $ other_location } = ( ( $ i { $ other_location } eq $ db { $ table } { $ event_id } { $ other_location } ) || ! $ i { $ other_location } ) ? 1 : 0 ;
# $ignore{$system_location} = ($i{$system_location} && $i{$system_location} eq $db{$table}{$event_id}{$system_location}) ? 1 : 0 ;
$ ignore { $ dcb_waybill } = ( $ i { $ dcb_waybill } && $ i { $ dcb_waybill } eq $ db { $ table } { $ event_id } { $ dcb_waybill } ) ? 1 : 0 ;
$ ignore { $ dcb_comments_field } = ( $ i { $ dcb_comments_field } && $ i { $ dcb_comments_field } eq $ db { $ table } { $ event_id } { $ dcb_comments_field } ) ? 1 : 0 ;
$ ignore { $ system_location_field } = ( $ i { $ system_location_field } && $ i { $ system_location_field } eq $ db { $ table } { $ event_id } { $ system_location_field } ) ? 1 : 0 ;
$ ignore { $ venue_field } = ( $ i { $ venue_field } && $ i { $ venue_field } eq $ db { $ table } { $ event_id } { $ venue_field } ) ? 1 : 0 ;
# $ignore{$status_field} = 1 if (!$i{$status_field} && !$db{$table}{$event_id}{logistics_status_ids}) || ($i{$status_field} eq $db{$table}{$event_id}{logistics_status_ids}) || !$iii{$upd_field} ;
# recipient_name,recipient_nr
# $ignore{$poc_field} = 1 if (!$i{$poc_field} && !$db{$table}{$event_id}{logistics_poc_ids}) || $i{$poc_field} eq $db{$table}{$event_id}{logistics_poc_ids} ;
# $ignore{poc_name} = 1 if ($i{poc_name} eq $db{$table}{$event_id}{poc_name}) || ($i{poc_name} eq $db{$table}{$event_id}{recipient_name}) || !$iii{$upd_field} ;
# $ignore{poc_contact_nr} = 1 if ($i{poc_contact_nr} eq $db{$table}{$event_id}{poc_contact_nr}) || ($i{poc_name} eq $db{$table}{$event_id}{recipient_nr}) || !$iii{$upd_field} ;
# $ignore{logistics_complete} = 1 if ($i{logistics_complete} eq '-') ;
# $ignore{logistics_complete} = 1 if (!$i{logistics_complete} && !$db{$table}{$event_id}{logistics_complete}) || ($i{logistics_complete} eq $db{$table}{$event_id}{logistics_complete}) || !$iii{$upd_field} ;
$ ignore { poc_name } = 1 ;
$ ignore { poc_contact_nr } = 1 ;
$ ignore { poc_id } = 0 ;
$ ignore { recipient_name } = 1 ;
$ ignore { recipient_nr } = 1 ;
$ ignore { recipient_id } = 0 ;
if ( $ db { $ table } { $ event_id } { poc_id } && ! $ db { $ table } { $ event_id } { recipient_id } ) {
$ i { poc_id } = $ i { recipient_id } ;
$ ignore { poc_id } = 1 if $ i { poc_id } eq $ db { $ table } { $ event_id } { poc_id } ;
$ ignore { recipient_id } = 1 ;
} else {
$ ignore { poc_id } = 1 ;
$ ignore { recipient_id } = 1 if $ i { recipient_id } eq $ db { $ table } { $ event_id } { recipient_id } ;
}
$ i { recipient_id } = 0 unless $ i { recipient_id } ;
$ i { poc_id } = 0 unless $ i { poc_id } ;
# print "\n ignore poc_name : $ignore{poc_name}" ;
# print "\n ignore poc_contact_nr : $ignore{poc_contact_nr}" ;
# print "\n ignore poc_id : $ignore{poc_id}" ;
# print "\n ignore recipient_name : $ignore{recipient_name}" ;
# print "\n ignore recipient_nr : $ignore{recipient_nr}" ;
# print "\n ignore recipient_id : $ignore{recipient_id}" ;
# print "\n poc_id : $i{poc_id} , $db{$table}{$event_id}{poc_id}, $upd_field : $iii{$upd_field}" ;
# print "\n recipient_id : $i{recipient_id} , $db{$table}{$event_id}{recipient_id}" ;
# exit ;
# if ($db{$table}{$event_id}{poc_name} && !$db{$table}{$event_id}{recipient_name}) {
# $i{poc_name} = $i{recipient_name} ;
# $ignore{poc_name} = 1 if ($i{poc_name} eq $db{$table}{$event_id}{poc_name}) || !$iii{$upd_field} ;
# $ignore{recipient_name} = 1 ;
# } else {
# $ignore{poc_name} = 1 ;
# $ignore{recipient_name} = 1 if ($i{recipient_name} eq $db{$table}{$event_id}{recipient_name}) || !$iii{$upd_field} ;
# }
# if ($db{$table}{$event_id}{poc_contact_nr} && !$db{$table}{$event_id}{recipient_nr}) {
# $i{poc_contact_nr} = $i{recipient_nr} ;
# $ignore{poc_contact_nr} = 1 if ($i{poc_name} eq $db{$table}{$event_id}{poc_name}) || !$iii{$upd_field} ;
# $ignore{recipient_nr} = 1 ;
# } else {
# $ignore{poc_contact_nr} = 1 ;
# $ignore{recipient_nr} = 1 if ($i{recipient_nr} eq $db{$table}{$event_id}{recipient_nr}) || !$iii{$upd_field} ;
# }
# $process_complete_envet_ids{$event_id} = 1 if $ignore{logistics_dcb_waybill} && $ignore{logistics_complete} && $ignore{poc_name} && $ignore{poc_contact_nr} && $ignore{logistics_venue_id} && $ignore{$supp_field} && $ignore{$waybill_field} && $ignore{$status_field} && $ignore{$item_field} && $ignore{$poc_field} && $ignore{$special_instructions_field} && $sys_ids ;
# &common_debug("logistics_dcb_waybill [event_id=$event_id] [i=$i{logistics_dcb_waybill}] [db=$db{$table}{$event_id}{logistics_dcb_waybill}]") ;
# &common_debug("$status_field [ignore=$ignore{$status_field}] [event_id=$event_id] [i=$i{$status_field}] [db=$db{$table}{$event_id}{logistics_status_ids}]") ;
# user=;t_from=2025-01-24T18:14:29|user=25;d_from=2025-01-24T18:20:05|user=25;s_to=2025-01-24T18:42:29|user=25;d_from.t_from=2025-01-27T08:46:12|user=25;=2025-02-03T06:43:07
#------------------------------------------------------------------------------------------ CALCULATE THE logistics_last_changed_by COLUMN :
my ( $ saved_start , $ saved_end ) = split ( /\|/ , $ db { $ table } { $ event_id } { logistics_delivery_datetime } ) ;
my ( $ saved_start_date , $ saved_start_time ) = split ( /\T/ , $ saved_start ) ;
my ( $ saved_end_date , $ saved_end_time ) = split ( /\T/ , $ saved_end ) ;
my ( $ saved_status_from , $ saved_status_to ) = split ( /\-/ , $ db { $ table } { $ event_id } { logistics_status_ids } ) ;
my $ live_time = qq~$now_year-$now_mm-$now_dd\T$now_hour:$now_min:$now_sec~ ;
$ saved_date_col_user { $ userid } { $ live_time } { d_from } = 1 if $ ii { $ event_id } { from } { delivery_date } ne $ saved_start_date && $ iii { $ upd_field_1 } ;
$ saved_date_col_user { $ userid } { $ live_time } { t_from } = 1 if $ ii { $ event_id } { from } { delivery_time } ne $ saved_start_time && $ iii { $ upd_field_1 } ;
$ saved_date_col_user { $ userid } { $ live_time } { d_to } = 1 if $ ii { $ event_id } { to } { delivery_date } ne $ saved_end_date && $ iii { $ upd_field_2 } ;
$ saved_date_col_user { $ userid } { $ live_time } { t_to } = 1 if $ ii { $ event_id } { to } { delivery_time } ne $ saved_end_time && $ iii { $ upd_field_2 } ;
$ saved_date_col_user { $ userid } { $ live_time } { s_to } = 1 if $ ii { $ event_id } { to } { status } ne $ saved_status_to && $ iii { $ upd_field_2 } ;
my $ saved_user = 0 ; my % seen_col_date = ( ) ;
foreach my $ a ( split ( /\|/ , $ db { $ table } { $ event_id } { logistics_last_changed_by } ) ) {
if ( $ a =~ /user=(\d+)/ ) {
$ saved_user = $ 1 ;
}
foreach my $ b ( split ( /\;/ , $ a ) ) {
my @ c = split ( /\=/ , $ b ) ;
if ( $ c [ 0 ] ne 'user' ) {
foreach my $ col ( split ( /\./ , $ c [ 0 ] ) ) {
next if $ saved_date_col_user { $ userid } { $ live_time } { $ col } ;
if ( $ seen_col_date { $ col } ) {
my $ cur_date_val = $ c [ 1 ] ; $ cur_date_val =~ s/[:\-T]//g ;
my $ seen_date_val = $ seen_col_date { $ col } ; $ seen_date_val =~ s/[:\-T]//g ;
if ( $ seen_date_val < $ cur_date_val ) {
$ saved_date_col_user { $ saved_user } { $ seen_col_date { $ col } } { $ col } = 0 ;
$ saved_date_col_user { $ saved_user } { $ c [ 1 ] } { $ col } = 1 ;
}
} else {
$ saved_date_col_user { $ saved_user } { $ c [ 1 ] } { $ col } = 1 ;
}
$ seen_col_date { $ col } = $ c [ 1 ] ;
}
}
}
}
my % seen_user = ( ) ; # my %seen_col = () ;
foreach my $ user ( sort keys % saved_date_col_user ) {
# my %seen_col = () ;
foreach my $ datetime ( sort { $ b cmp $ a } keys % { $ saved_date_col_user { $ user } } ) {
my $ add_string = ( $ i { logistics_last_changed_by } ) ? qq~|~ : qq~~ ;
$ add_string . = qq~user=$user\;~ unless $ seen_user { $ user } ;
my $ d = qq~~ ; my $ cols_exists = 0 ;
foreach ( sort keys % { $ saved_date_col_user { $ user } { $ datetime } } ) {
next unless $ saved_date_col_user { $ user } { $ datetime } { $ _ } ;
# next if $seen_col{$_} ; $seen_col{$_} = 1 ;
$ d . = qq~$_\.~ ; $ cols_exists = 1 if $ _ ;
}
chop $ d ;
$ seen_user { $ user } = 1 if $ d ;
$ add_string . = qq~$d\=$datetime~ if $ d ;
$ i { logistics_last_changed_by } . = qq~$add_string~ if $ cols_exists && $ user ;
}
}
# $i{logistics_last_changed_by} .= qq~user=$userid~ if $i{logistics_last_changed_by} ;
$ ignore { logistics_last_changed_by } = ( $ i { logistics_last_changed_by } eq $ db { $ table } { $ event_id } { logistics_last_changed_by } ) ? 1 : 0 ;
#------------------------------------------------------------------------------------------
if ( $ event_id ) {
foreach ( keys % i ) {
next if $ ignore { $ _ } ;
$ line . = qq~$_='$i{$_}',~ ;
}
$ 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='$event_id'|user_id=$userid|changed_from|~ . $ line if $ line ;
chop $ line ;
# &common_log_changes("events/changes.dat",$line) ;
& db_min_upd ( $ table , "id='$event_id'" ) ;
}
# # # if ($set) {
# # # %i = () ;
# # # my $upd_set = $set ; $upd_set =~ s/\`//g ;
# # # $i{last_changed_by} = "$db{$table}{$event_id}{last_changed_by}, $username SET [$upd_set]" ;
# # # &db_min_upd($table,"id='$event_id'") if $event_id ;
# # # }
}
% i = % iii ;
} #------------------------------------------------------------------------------------------
# sub calc_changes {
# } #------------------------------------------------------------------------------------------
sub report_screen {
our $ lcol = 3 ;
our $ fcol = 5 ;
$ allow_deselect { client_id } = 1 ;
& common_min_select_opts ( 'client_id' , 'customers' , 'name' , $ i { client_id } , '' , '' , "events='1'" ) ;
& common_min_select_opts ( 'organisation_ids' , 'organisations' , 'name' , '' , '' , '' , '' , '' , '' , '' , 'name' ) ;
my $ dcb_sql = ( $ is_dcb_partner ) ? " AND id='2'" : '' ;
my $ dcb_sel = ( $ is_dcb_partner ) ? 2 : '' ;
& common_min_select_opts ( 'supplier_id' , 'logistics_suppliers' , 'supplier' , $ dcb_sel , '' , '' , "active = '1'$dcb_sql" , '' , '' , '' , 'supplier' ) ;
& common_min_select_opts ( 'region_id' , 'regions' , 'name' , '' , '' , 'code' , '' , '' , '' , '' , 'name' ) ;
% status_hash = ( $ is_dcb_partner ) ? ( 1 = > "Booked" ) : ( 1 = > "Booked" , 2 = > "Pending" , 3 = > "In Transit" , 4 = > "Delivered" ) ;
$ i { status_id } = ( $ is_dcb_partner && ! $ i { status_id } ) ? 1 : $ i { status_id } ;
$ selected { $ i { status_id } } = "SELECTED" if $ i { status_id } ;
for ( 1 .. 4 ) { $ opts { status_id } . = qq~<option value="$_" $selected{$_}>$status_hash{$_}</option>~ ; }
$ preferred_title { organisation_ids } = "Venue" ;
$ print_box_content_rows . = & common_min_forms_start ( 'report' ) ;
$ trigger_jquery . = qq ~
\ $( "#selectClient_id" ) . val ( '5' ) . trigger ( "chosen:updated" ) ;
~ ;
$ allow_deselect { organisation_ids } = 1 ;
$ allow_deselect { supplier_id } = 1 ;
$ allow_deselect { status_id } = 1 ;
$ allow_deselect { region_id } = 1 ;
$ print_box_content_rows . = & common_min_form_select ( 'client_id' , $ i { client_id } ) ;
# my ($monday,$sunday) = &common_get_this_monday_sunday ;
my ( $ now_year2 , $ now_mm2 , $ now_dd2 ) = Add_Delta_Days ( $ now_year , $ now_mm , $ now_dd , 10 ) ;
$ now_mm2 = sprintf ( "%02d" , $ now_mm2 ) ;
$ now_dd2 = sprintf ( "%02d" , $ now_dd2 ) ;
$ print_box_content_rows . = & common_min_form_datepicker ( 'date_from' , "$now_year-$now_mm-$now_dd" ) ; #unless $i{date_from} ;
$ print_box_content_rows . = & common_min_form_datepicker ( 'date_to' , "$now_year2-$now_mm2-$now_dd2" ) ; #unless $i{date_from} ;
$ print_box_content_rows . = & common_min_form_select ( 'organisation_ids' , '' ) ;
$ print_box_content_rows . = & common_min_form_select ( 'supplier_id' , '' ) ;
$ print_box_content_rows . = & common_min_form_select ( 'status_id' , '' ) ;
$ print_box_content_rows . = & common_min_form_select ( 'region_id' , '' ) ;
$ print_box_content_rows . = & common_min_forms_end ( '' , '' , 'report' ) ;
& common_min_search_screen ;
} #-------------------------------------------------------------------------------
sub report_ifields {
& load_search_vars ;
# if ($i{date_from} && !$i{date_to}) { # check dates
# push @report_sql, "`date_from` >= '$i{date_from} 00:00:00'" ; ############################################### > OR >=
# push @report_results, "(EVENT AFTER '$i{date_from}')" ;
# } elsif (!$i{date_from}) {
# $error = qq~PLEASE ENTER A START DATE!~ ;
# &report_screen;
# } elsif ($i{date_from} && $i{date_to}) { # check dates
# push @report_sql, "(
# ('$i{date_from} 00:00:00' <= `date_from` AND `date_from` <= '$i{date_to} 23:59:59') OR
# ('$i{date_from} 00:00:00' <= `date_to` AND `date_to` <= '$i{date_to} 23:59:59') OR
# ('$i{date_from} 00:00:00' <= `date_from` AND `date_to` >= '$i{date_to} 23:59:59') OR
# ('$i{date_from} 00:00:00' >= `date_from` AND `date_to` <= '$i{date_to} 23:59:59')
# )" ; ############################################### > OR >=
# push @report_results, "(EVENT BETWEEN '$i{date_from}' AND '$i{date_to}')" ;
# }
if ( $ i { date_from } && $ i { date_to } ) {
push @ report_sql , " (
( '$i{date_from} 00:00:00' <= `date_from` AND `date_from` <= '$i{date_to} 23:59:59' ) OR
( '$i{date_from} 00:00:00' <= `date_to` AND `date_to` <= '$i{date_to} 23:59:59' ) OR
( '$i{date_from} 00:00:00' >= `date_from` AND `date_to` >= '$i{date_to} 23:59:59' ) OR
( '$i{date_from} 00:00:00' <= `date_from` AND `date_to` <= '$i{date_to} 23:59:59' )
) " ; ############################################### > OR >=
push @ report_results , "(EVENT EXISTS BETWEEN '$i{date_from}' AND '$i{date_to}')" ;
} elsif ( ! $ i { date_from } && $ i { date_to } ) {
push @ report_sql , "`date_to` >= '$i{date_to} 23:59:59'" ; ############################################### > OR >=
push @ report_results , "(EVENT ENDING BEFORE '$i{date_to}')" ;
} elsif ( $ i { date_from } && ! $ i { date_to } ) {
push @ report_sql , "'$i{date_from} 00:00:00' <= `date_from`" ; ############################################### > OR >=
push @ report_results , "(EVENT STARTING AFTER '$i{date_from}')" ;
} elsif ( ! $ i { date_from } && ! $ i { date_to } ) {
$ error = qq~PLEASE ENTER AT LEAST A START OR END DATE!!!~ ;
}
if ( $ i { client_id } ) {
push @ report_sql , "(`quote_to` = '$i{client_id}')" ;
push @ report_results , "Client = $db{customers}{$i{client_id}}{name}" ;
}
if ( $ i { organisation_ids } ) {
push @ report_sql , "(FIND_IN_SET($i{organisation_ids},organisation_ids))" ;
push @ report_results , "Venue = `$db{organisations}{$i{organisation_ids}}{name}`" ;
}
if ( $ i { supplier_id } ) {
push @ report_sql , "((logistics_suppliers REGEXP '(^|;)[^-]*-$i{supplier_id}(\$\|;)') OR (logistics_suppliers REGEXP '(^|;)($i{supplier_id})-[^;]*(\$\|;)'))" ;
push @ report_results , "Supplier = `$db{logistics_suppliers}{$i{supplier_id}}{supplier}`" ;
}
if ( $ is_dcb_partner && $ i { status_id } != 1 ) { $ i { status_id } = 1 ; }
if ( $ i { status_id } ) {
local % status_hash = ( 1 = > "Booked" , 2 = > "Pending" , 3 = > "In Transit" , 4 = > "Delivered" ) ;
push @ report_results , "Status = `$status_hash{$i{status_id}}`" ;
push @ report_sql , "((logistics_status_ids REGEXP '(^|;)[^-]*-$i{status_id}(\$\|;)') OR (logistics_status_ids REGEXP '(^|;)($i{status_id})-[^;]*(\$\|;)'))" ;
}
if ( $ i { region_id } ) {
push @ report_sql , "`region_id` = '$i{region_id}'" ;
push @ report_results , "Region = `$db{regions}{$i{region_id}}{name} [$db{regions}{$i{region_id}}{code}]`" ;
}
$ report_results_msg = uc join ( ', ' , @ report_results ) ;
if ( not $ report_results_msg ) {
$ error = qq~ENTER AT LEAST ONE SEARCH PARAMETER~ ;
& report_screen ;
} else {
$ isaved = qq~SELECT WHERE $report_results_msg~ ;
}
our $ srch_where_sql = join ( ' AND ' , @ report_sql ) ;
} #------------------------------------------------------------------------------------------
sub load_search_vars {
& db_min_ro ( 'customers' , 'id,name' , "`id`='$i{client_id}'" , '' , '' ) if $ i { client_id } ;
& db_min_ro ( 'organisations' , "id,name" , "`id`='$i{organisation_ids}'" , '' , '' ) if $ i { organisation_ids } ;
& db_min_ro ( 'logistics_suppliers' , '*' , "`id`='$i{supplier_id}'" , '' , '' ) if $ i { supplier_id } ;
& db_min_ro ( 'regions' , 'id,name,code' , "`id`='$i{region_id}'" , '' , '' ) if $ i { region_id } ;
} #------------------------------------------------------------------------------------------
sub get_default_date {
my ( $ date , $ diff ) = @ _ ;
my @ sd = & common_split_sql_time ( $ date ) ;
my @ dtyp = & common_add_delta_dhms ( $ sd [ 0 ] , $ sd [ 1 ] , $ sd [ 2 ] , $ sd [ 3 ] , $ sd [ 4 ] , $ sd [ 5 ] , $ diff , 0 , 0 , 0 ) ;
return ( $ dtyp [ 0 ] ) ;
} #------------------------------------------------------------------------------------------
sub load_list_vars {
my ( $ where ) = @ _ ;
& db_min_ro ( $ table , "id,quote_to,ref,organisation_ids,quote_accepted,event_system_id_multiple,region_id,operator_ids,date_from,date_to,poc_name,poc_id,recipient_id,logistics_suppliers,logistics_waybill_nrs,logistics_address_ids,logistics_venue_id,logistics_status_ids,logistics_item_ids,city_id,sport_type_ids,logistics_special_instructions,logistics_complete,logistics_dcb_waybill,logistics_delivery_datetime,logistics_received_by,logistics_location_other,logistics_system_location_id,logistics_last_changed_by,logistics_dcb_comments,logistics_shipment_operator_id" , "$where AND `quote_accepted` = '1'" , '' , '' ) ;
& db_min_ro ( 'event_quotes_poc' , '*' , '' , '' , '' ) ;
& db_min_ro ( 'event_quotes_recipient' , '*' , '' , '' , '' ) ;
# my %seen_poc = () ; load_list_vars
foreach ( sort { $ db { $ table } { $ a } { poc_id } cmp $ db { $ table } { $ b } { poc_id } } keys % { $ db { $ table } } ) {
# next if $seen_poc{$db{$table}{$_}{poc_name}}{$db{$table}{$_}{poc_contact_nr}} || !$db{$table}{$_}{poc_name} ;
# $seen_poc{$db{$table}{$_}{poc_name}}{$db{$table}{$_}{poc_contact_nr}} = 1 ;
my $ poc_id = ( $ db { $ table } { $ _ } { recipient_id } ) ? $ db { $ table } { $ _ } { recipient_id } : $ db { $ table } { $ _ } { poc_id } ;
my $ poc_name = ( $ db { $ table } { $ _ } { recipient_id } ) ? $ db { event_quotes_recipient } { $ db { $ table } { $ _ } { recipient_id } } { name } : $ db { event_quotes_poc } { $ db { $ table } { $ _ } { poc_id } } { name } ;
my $ poc_nr = ( $ db { $ table } { $ _ } { recipient_id } ) ? $ db { event_quotes_recipient } { $ db { $ table } { $ _ } { recipient_id } } { contact_nr } : $ db { event_quotes_poc } { $ db { $ table } { $ _ } { poc_id } } { contact_nr } ;
next unless $ poc_name ;
$ poc_nr =~ s/\'//g ; $ poc_name =~ s/ $// ;
$ opts { poc } { $ _ } . = ( $ poc_name && $ poc_nr ) ? qq~<option value='$poc_id' SELECTED>$poc_name [$poc_nr]</option>~ : ( $ poc_name && ! $ poc_nr ) ? qq~<option value='$poc_name\_$poc_nr' SELECTED>$poc_name</option>~ : qq~~ ;
}
& db_min_ro ( 'event_systems' , '*' , "(`system_type` = 'solo' OR `system_type` = 'mobile' OR `description` lIKE 'cricket%')" , '' , '' ) ;
our % logistics_waybill_ids_hash = ( ) ;
our % fval = ( ) ;
our % col_database_col = ( ) ;
& db_min_ro ( 'customers' , 'id' , "events='1'" , '' , '' ) ;
foreach my $ id ( keys % { $ db { $ table } } ) {
$ fval { item } { $ id } { from } = $ db { $ table } { $ id } { logistics_item_ids } ;
$ fval { item } { $ id } { to } = $ db { $ table } { $ id } { logistics_item_ids } ;
my @ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_suppliers } ) ;
$ fval { supplier } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { supplier } { $ id } { to } = $ split_values [ 1 ] ;
@ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_waybill_nrs } ) ;
$ logistics_waybill_ids_hash { $ id } { from } = $ split_values [ 0 ] ;
$ logistics_waybill_ids_hash { $ id } { to } = $ split_values [ 1 ] ;
$ fval { waybill_nr } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { waybill_nr } { $ id } { to } = $ split_values [ 1 ] ;
@ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_status_ids } ) ;
$ fval { status } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { status } { $ id } { to } = $ split_values [ 1 ] ;
@ split_values = split ( /\-\-/ , $ db { $ table } { $ id } { logistics_dcb_comments } ) ;
$ fval { dcb_comments } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { dcb_comments } { $ id } { to } = $ split_values [ 1 ] ;
@ split_values = split ( /\-\-/ , $ db { $ table } { $ id } { logistics_special_instructions } ) ;
my @ split_from = split ( /\:\|\:/ , $ split_values [ 0 ] ) ;
my @ split_to = split ( /\:\|\:/ , $ split_values [ 1 ] ) ;
$ fval { special_instructions } { $ id } { from } = $ split_from [ 0 ] ;
$ fval { other_special_instructions } { $ id } { from } = $ split_from [ 1 ] ;
$ fval { special_instructions } { $ id } { to } = $ split_to [ 0 ] ;
$ fval { other_special_instructions } { $ id } { to } = $ split_to [ 1 ] ;
# my $def_poc_name = ($db{$table}{$id}{recipient_name}) ? $db{$table}{$id}{recipient_name} : $db{$table}{$id}{poc_name} ;
# my $def_poc_nr = ($db{$table}{$id}{recipient_nr}) ? $db{$table}{$id}{recipient_nr} : $db{$table}{$id}{poc_contact_nr} ;
my $ def_poc_id = ( $ db { $ table } { $ id } { recipient_id } ) ? $ db { $ table } { $ id } { recipient_id } : $ db { $ table } { $ id } { poc_id } ;
# $def_poc_name =~ s/ $// ;
# $fval{poc}{$id}{from} = qq~$def_poc_name\_$def_poc_nr~ if $def_poc_name || $def_poc_nr;
$ fval { poc } { $ id } { from } = qq~$def_poc_id~ if $ def_poc_id ;
$ fval { poc } { $ id } { to } = $ fval { poc } { $ id } { from } ;
my @ delivery_split = split ( /\|/ , $ db { $ table } { $ id } { logistics_delivery_datetime } ) ;
my @ delivery_from = split ( "T" , $ delivery_split [ 0 ] ) ;
my @ delivery_to = split ( "T" , $ delivery_split [ 1 ] ) ;
$ fval { delivery_date } { $ id } { to } = $ delivery_to [ 0 ] || & get_default_date ( $ db { $ table } { $ id } { date_to } , - 1 ) ;
$ fval { delivery_time } { $ id } { to } = $ delivery_to [ 1 ] || '15:00:00' ;
$ fval { delivery_date } { $ id } { from } = $ delivery_from [ 0 ] || & get_default_date ( $ db { $ table } { $ id } { date_from } , 1 ) ;
$ fval { delivery_time } { $ id } { from } = $ delivery_from [ 1 ] || '15:00:00' ;
my @ location_other_split = split ( /\:\|\:/ , $ db { $ table } { $ id } { logistics_location_other } ) ;
my @ location_other_to_split = split ( /\|/ , $ location_other_split [ 1 ] ) ;
$ fval { other_to } { $ id } { from } = $ location_other_to_split [ 0 ] ;
$ fval { other_to } { $ id } { to } = $ location_other_to_split [ 1 ] ;
my @ location_other_from_split = split ( /\|/ , $ location_other_split [ 0 ] ) ;
$ fval { other_from } { $ id } { from } = $ location_other_from_split [ 0 ] ;
$ fval { other_from } { $ id } { to } = $ location_other_from_split [ 1 ] ;
$ fval { received_by } { $ id } { to } = $ db { $ table } { $ id } { logistics_received_by } ;
$ fval { received_by } { $ id } { from } = $ fval { received_by } { $ id } { to } ;
@ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_shipment_operator_id } ) ;
$ fval { shipment_operator } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { shipment_operator } { $ id } { to } = $ split_values [ 1 ] ;
@ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_system_location_id } ) ;
$ fval { system_location } { $ id } { from } = $ split_values [ 1 ] ;
$ fval { system_location } { $ id } { to } = $ split_values [ 0 ] ;
@ split_values = split ( /\-/ , $ db { $ table } { $ id } { logistics_venue_id } ) ;
$ fval { venue_location } { $ id } { from } = $ split_values [ 0 ] ;
$ fval { venue_location } { $ id } { to } = $ split_values [ 1 ] ;
}
& db_min_ro ( 'cities' , 'id,name,city_short' , '' , '' , '' ) ;
& db_min_ro ( 'sport_types' , 'id,name' , '' , '' , '' ) ;
& db_min_ro ( 'regions' , 'code,id' , '' , '' , '' ) ;
& db_min_ro ( 'organisations' , 'id,name,region_code' , '' , '' , '' ) ;
foreach ( sort { $ db { organisations } { $ a } { name } cmp $ db { organisations } { $ b } { name } } keys % { $ db { organisations } } ) {
$ opts { venue_location } { $ db { regions } { $ db { organisations } { $ _ } { region_code } } { id } } . = qq~<option value="$_">$db{organisations}{$_}{name}</option>~ ;
# &common_debug("1. venue_location >>>>>> [<option value=$_>$db{organisations}{$_}{name}</option>]");
}
foreach ( keys % { $ opts { venue_location } } ) {
$ opts { venue_location } { $ _ } . = qq~<option value="other">OTHER</option>~ ;
}
# $opts{venue_location}{other} .= qq~<option value="5">Other</option>~ ;
& db_min_ro ( 'users' , 'id,name,user_type,username' , "`name` NOT LIKE 'Rory%'" , '' , '' ) ;
foreach ( sort { $ db { users } { $ a } { name } cmp $ db { users } { $ b } { name } } keys % { $ db { users } } ) {
$ opts { shipment_operator } . = qq~<option value="$_">$db{users}{$_}{name}</option>~ if $ db { users } { $ _ } { user_type } =~ /casual_/ ;
}
my $ dcb_sql = ( $ is_dcb_partner ) ? " AND id='2'" : '' ;
& db_min_ro ( 'logistics_suppliers' , '*' , "active = '1'$dcb_sql" , '' , '' ) ;
our % AISA_supplier = ( ) ;
foreach ( sort { $ db { logistics_suppliers } { $ a } { supplier } cmp $ db { logistics_suppliers } { $ b } { supplier } } keys % { $ db { logistics_suppliers } } ) {
$ logistics_suppliers_selected = ( $ _ == 2 ) ? 'SELECTED' : '' ; # DCB Logistics
$ opts { supplier } . = qq~<option value="$_" $logistics_suppliers_selected>$db{logistics_suppliers}{$_}{supplier}</option>~ ;
$ db { logistics_suppliers } { $ _ } { name } = $ db { logistics_suppliers } { $ _ } { supplier } ;
$ AISA_supplier { $ _ } = 1 if $ db { logistics_suppliers } { $ _ } { supplier } =~ /AISA/ ;
}
# $opts{supplier_to} = $opts{supplier_from} ;
& db_min_ro ( 'logistics_locations' , '*' , '' , '' , '' ) ;
foreach ( sort { $ db { logistics_locations } { $ a } { location } cmp $ db { logistics_locations } { $ b } { location } } keys % { $ db { logistics_locations } } ) {
$ opts { system_location } . = qq~<option value="$_">$db{logistics_locations}{$_}{location}</option>~ ;
}
# &common_debug("1. system_location >>>>>> [$opts{system_location}]");
our % status_hash = ( 1 = > "Booked" , 2 = > "Pending" , 3 = > "In Transit" , 4 = > "Delivered" ) ;
$ opts { status } . = qq~<option value="1">$status_hash{1}</option>~ ;
$ opts { status } . = qq~<option value="2" SELECTED>$status_hash{2}</option>~ ;
$ opts { status } . = qq~<option value="3">$status_hash{3}</option>~ ;
$ opts { status } . = qq~<option value="4">$status_hash{4}</option>~ ;
$ opts2 { status } = $ opts { status } ;
# $opts{status} = $opts{status_to} ;
& db_min_ro ( 'logistics_items' , '*' , '' , '' , '' ) ;
foreach ( sort { ( $ db { logistics_items } { $ a } { name } =~ /^(\d+)/ ) [ 0 ] <=> ( $ db { logistics_items } { $ b } { name } =~ /^(\d+)/ ) [ 0 ] } keys % { $ db { logistics_items } } ) {
next if lc $ db { logistics_items } { $ _ } { name } eq 'other' ;
$ opts { item } . = qq~<option value="$_">$db{logistics_items}{$_}{name}</option>~ ;
$ logistics_items_qty { $ db { logistics_items } { $ _ } { qty } } . = "$_," if ( $ db { logistics_items } { $ _ } { name } =~ /Tripod/ || $ db { logistics_items } { $ _ } { name } =~ /Extension/ || $ db { logistics_items } { $ _ } { name } =~ /Mobile System/ ) && $ db { logistics_items } { $ _ } { name } =~ / x / ;
}
foreach ( keys % logistics_items_qty ) {
chop $ logistics_items_qty { $ _ } ;
}
# foreach (keys %{$opts{item}}) {
$ opts { item } . = qq~<option value="1">Other</option>~ ;
# }
} #------------------------------------------------------------------------------------------
sub list_screen {
$ print_box_content_rows . = & common_min_forms_start ( "$lcpage" ) ;
& load_list_vars ( $ srch_where_sql ) ;
$ fcol = 12 ;
# my @from_to = ('from','to') ;
my @ from_to = ( 'to' , 'from' ) ;
our @ sql_col_display = ( "nr" , "FT" , "event" , "dates" , "stime" , "etime" , "venue" , "city" , "sport" , "system" , "from" , "other_from" , "to" , "other_to" , "supplier" , "shipment_operator" , "poc" , "dcb_comments" , "item" , "delivery_date" , "delivery_time" , "special_instructions" , "other_special_instructions" , "waybill_nr" , "status" , "received_by" ) ;
my $ report = 1 ;
our $ xlsx_title_heading = "Logistics Report" ;
our $ xlsxdir = "logistics_report" ;
our $ xlsxreportname = "Logistics_Report" ;
& report_xlsx_export_header ( "$xlsxreportname" , $ xlsxdir , '' , $ xlsx_title_heading ) ;
@ sql_col_display = ( "nr" , "FT" , "event" , "dates" , "stime" , "etime" , "venue" , "city" , "sport" , "system" , "from" , "other_from" , "to" , "other_to" , "supplier" , "shipment_operator" , "poc" , "dcb_comments" , "item" , "delivery_date" , "delivery_time" , "special_instructions" , "other_special_instructions" , "waybill_nr" , "status" , "received_by" , "create_waybill" , "update" ) ;
# $column_same_for_from_and_to{nr} = 1 ;
# $column_same_for_from_and_to{event} = 1 ;
# $column_same_for_from_and_to{dates} = 1 ;
# $column_same_for_from_and_to{stime} = 1 ;
# $column_same_for_from_and_to{etime} = 1 ;
# $column_same_for_from_and_to{venue} = 1 ;
# $column_same_for_from_and_to{city} = 1 ;
# $column_same_for_from_and_to{sport} = 1 ;
# $column_same_for_from_and_to{system} = 1 ;
# $column_same_for_from_and_to{poc} = 1 ;
# $column_same_for_from_and_to{item} = 1 ;
# $column_same_for_from_and_to{received_by} = 1 ;
my @ rev_sql_col_display = reverse @ sql_col_display ;
foreach ( @ rev_sql_col_display ) { $ lastchild + + ; $ last_child { $ _ } = $ lastchild ; } # &common_debug("last-child : $_ [$last_child{$_}]");
$ xlsxrow - - ;
my $ column_nr = scalar @ sql_col_display ;
# my ($now_year2,$now_mm2,$now_dd2) = Add_Delta_Days($now_year,$now_mm,$now_dd,-7) ;
my $ now_year2 = $ now_year ;
my $ now_mm2 = $ now_mm - 1 ;
$ now_year2 -= 1 unless $ now_mm2 ;
$ now_mm2 = 12 unless $ now_mm2 ;
$ now_mm2 = sprintf ( "%02d" , $ now_mm2 ) ;
my $ now_dd2 = "01" ;
our $ current_date = int ( "$now_year2$now_mm2$now_dd2" ) ; our $ found_editable = 0 ;
our % seen_field_id = ( ) ; our % all_location_ids_per_system = ( ) ; our $ all_ids = qq~~ ;
local @ month_names = ( "" , "Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov" , "Dec" ) ;
our @ months = @ month_names ;
our $ quote_and_ops_ids = qq~~ ;
$ fval_table { "supplier" } = "logistics_suppliers" ;
$ fval_table { "status" } = "status_hash" ;
$ db { status_hash } { 1 } { name } = "Booked" ;
$ db { status_hash } { 2 } { name } = "Pending" ;
$ db { status_hash } { 3 } { name } = "In Transit" ;
$ db { status_hash } { 4 } { name } = "Delivered" ;
$ preferred_title { status } = "Status" ;
$ preferred_title { supplier } = "Supplier" ;
$ preferred_title { item } = "Item" ;
$ preferred_title { poc } = "poc" ;
our % linked_from_and_to_fields = ( ) ; our @ from_to_field_ids = ( ) ; our @ from_to_multi_field_ids = ( ) ; our @ from_to_checkbox_field_ids = ( ) ;
our % from_to_opposite = ( ) ;
$ from_to_opposite { from } = "to" ;
$ from_to_opposite { to } = "from" ;
our $ other_from_dropdown_can_exist = 0 ;
our $ other_to_dropdown_can_exist = 0 ;
our $ other_from_text_can_exist = 0 ;
our $ other_to_text_can_exist = 0 ;
our $ dcb_supplier_is_selected = 0 ;
my $ max_z_index = 0 ;
our $ AISA_supplier_selected_somewhere = 0 ; my % skip = ( ) ;
our $ other_from_system_location_selected_somewhere = 0 ; our $ other_to_system_location_selected_somewhere = 0 ;
our $ other_from_venue_selected_somewhere = 0 ; our $ other_to_venue_selected_somewhere = 0 ;
our $ dcb_supplier_is_selected_somewhere = 0 ;
foreach my $ id ( sort { $ b <=> $ a } keys % { $ db { $ table } } ) {
next unless $ db { customers } { $ db { $ table } { $ id } { quote_to } } { id } ;
if ( $ i { organisation_ids } ) {
my @ or_ids_arr = split ( /\,/ , $ db { $ table } { $ id } { organisation_ids } ) ;
my $ cnt = 0 ;
foreach my $ or_id ( @ or_ids_arr ) {
next unless $ or_id ;
$ cnt + + if $ or_id eq $ i { organisation_ids } ;
}
unless ( $ cnt ) {
$ skip { event } { $ id } = 1 ;
next ;
}
}
my $ systems_in_event_count = 0 ; my $ system_location_ids = '' ; my $ event_venue_ids = '' ;
local @ system_name_ids = split ( /\;/ , $ db { $ table } { $ id } { event_system_id_multiple } ) ;
my $ cnt = 0 ;
foreach my $ event_sys_id ( @ system_name_ids ) {
next unless $ event_sys_id ;
next unless $ db { event_systems } { $ event_sys_id } { system_type } ;
$ cnt + + ;
}
unless ( $ cnt ) {
$ skip { event } { $ id } = 1 ;
next ;
}
my @ dcb_waybill = split ( /\-/ , $ db { $ table } { $ id } { logistics_dcb_waybill } ) ; $ dcb_waybill_nr { from } = $ dcb_waybill [ 0 ] ; $ dcb_waybill_nr { to } = $ dcb_waybill [ 1 ] ;
my @ suppliers2 = split ( /\-/ , $ db { $ table } { $ id } { logistics_suppliers } ) ;
$ supp { 'from' } = $ suppliers2 [ 0 ] ; $ supp { 'to' } = $ suppliers2 [ 1 ] ;
my $ start_date = substr ( $ db { $ table } { $ id } { date_from } , 0 , 10 ) ; $ start_date =~ s/\-//g ; $ start_date = int ( $ start_date ) ;
my $ end_date = substr ( $ db { $ table } { $ id } { date_to } , 0 , 10 ) ; $ end_date =~ s/\-//g ; $ end_date = int ( $ end_date ) ;
for my $ from_to ( sort { $ b <=> $ a } @ from_to ) {
my ( $ status_from , $ status_to ) = split ( /\-/ , $ db { $ table } { $ id } { logistics_status_ids } ) ;
my ( $ supplier_from , $ supplier_to ) = split ( /\-/ , $ db { $ table } { $ id } { logistics_suppliers } ) ;
if ( ( $ i { status_id } && ( ( $ from_to eq 'from' && $ i { status_id } ne $ status_from ) || ( $ from_to eq 'to' && $ i { status_id } ne $ status_to ) ) ) || ( $ i { supplier_id } && ( ( $ from_to eq 'from' && $ i { supplier_id } ne $ supplier_from ) || ( $ from_to eq 'to' && $ i { supplier_id } ne $ supplier_to ) ) ) ) {
$ skip { $ from_to } { $ id } = 1 ;
next ;
}
my $ readlonly_row = ( ( $ from_to eq 'to' && $ current_date > $ start_date ) || ( $ from_to eq 'from' && $ current_date > $ end_date ) || ( $ dcb_waybill_nr { $ from_to } && $ logistics_waybill_ids_hash { $ id } { $ from_to } && $ db { $ table } { $ id } { logistics_item_ids } && $ supp { $ from_to } == 2 ) ) ? 1 : 0 ;
$ max_z_index + + if ! $ readlonly_row ;
$ AISA_supplier_selected_somewhere = 1 if ( $ from_to eq 'from' && $ AISA_supplier { $ supplier_from } ) || ( $ from_to eq 'to' && $ AISA_supplier { $ supplier_to } ) ;
$ other_from_system_location_selected_somewhere = 1 if $ db { $ table } { $ id } { logistics_system_location_id } =~ /^5-/ && $ from_to eq 'from' ;
$ other_to_system_location_selected_somewhere = 1 if $ db { $ table } { $ id } { logistics_system_location_id } =~ /-5$/ && $ from_to eq 'to' ;
$ other_from_venue_selected_somewhere = 1 if $ db { $ table } { $ id } { logistics_venue_id } =~ /^other-/ && $ from_to eq 'from' ;
$ other_to_venue_selected_somewhere = 1 if $ db { $ table } { $ id } { logistics_venue_id } =~ /-other$/ && $ from_to eq 'to' ;
$ dcb_supplier_is_selected_somewhere = 1 if ( $ from_to eq 'from' && ( $ supplier_from eq '2' || ! $ supplier_from ) ) || ( ( $ supplier_to || $ supplier_to eq '2' ) && $ from_to eq 'to' ) ;
}
}
$ max_z_index = $ max_z_index * 7 ;
foreach my $ id ( sort { $ b <=> $ a } keys % { $ db { $ table } } ) {
next unless $ db { customers } { $ db { $ table } { $ id } { quote_to } } { id } ;
# next unless $id eq '9029' ;
# my @logistics_complete = split(/\-/,$db{$table}{$id}{logistics_complete}) ;
next if $ skip { event } { $ id } || ! $ id ;
our @ system_name_ids = split ( /\;/ , $ db { $ table } { $ id } { event_system_id_multiple } ) ;
our @ op_ids = split ( /\,/ , $ db { $ table } { $ id } { operator_ids } ) ;
our @ venue_ids = split ( /\,/ , $ db { $ table } { $ id } { organisation_ids } ) ;
our @ dcb_waybill = split ( /\-/ , $ db { $ table } { $ id } { logistics_dcb_waybill } ) ; $ dcb_waybill_nr { from } = $ dcb_waybill [ 0 ] ; $ dcb_waybill_nr { to } = $ dcb_waybill [ 1 ] ;
our $ items = $ db { $ table } { $ id } { logistics_item_ids } ;
our @ suppliers = split ( /\-/ , $ db { $ table } { $ id } { logistics_suppliers } ) ; $ supp { 'from' } = $ suppliers [ 0 ] ; $ supp { 'to' } = $ suppliers [ 1 ] ;
our $ start_date = substr ( $ db { $ table } { $ id } { date_from } , 0 , 10 ) ; $ start_date =~ s/\-//g ; $ start_date = int ( $ start_date ) ;
our $ end_date = substr ( $ db { $ table } { $ id } { date_to } , 0 , 10 ) ; $ end_date =~ s/\-//g ; $ end_date = int ( $ end_date ) ;
# next if ($from_to eq 'from' && $logistics_complete[0]) || ($from_to eq 'to' && $logistics_complete[1]) ;
# next if $i{supplier_id} && $i{supplier_id} ne $fval{'supplier'}{$id}{'from'} && $i{supplier_id} ne $fval{'supplier'}{$id}{'to'} ;
# next if $i{status_id} && $i{status_id} ne $fval{'status'}{$id}{'from'} && $i{status_id} ne $fval{'status'}{$id}{'to'} ;
our $ there_is_no_corresponding_TO = 0 ; our $ there_is_no_corresponding_FROM = 0 ;
our % prev_update_time = ( ) ;
my $ saved_user = 0 ;
foreach my $ a ( split ( /\|/ , $ db { $ table } { $ id } { logistics_last_changed_by } ) ) {
if ( $ a =~ /user=(\d+)/ ) {
$ prev_update_time { user } { na } = $ 1 ;
}
foreach my $ b ( split ( /\;/ , $ a ) ) {
my @ c = split ( /\=/ , $ b ) ;
if ( $ c [ 0 ] ne 'user' ) {
foreach my $ col ( split ( /\./ , $ c [ 0 ] ) ) {
$ prev_update_time { date } { $ col } = & common_min_date_as_string ( $ c [ 1 ] ) ;
$ prev_update_time { user } { $ col } = $ prev_update_time { user } { na } ;
}
}
}
}
for my $ from_to ( sort { $ b <=> $ a } @ from_to ) {
# $i{status_id}$i{supplier_id}
$ there_is_no_corresponding_TO = 1 if $ from_to eq 'from' && ( ( $ i { status_id } && $ i { status_id } ne $ status_to ) || ( $ i { supplier_id } && $ i { supplier_id } ne $ supplier_to ) ) ;
$ there_is_no_corresponding_FROM = 1 if $ from_to eq 'to' && ( ( $ i { status_id } && $ i { status_id } ne $ status_from ) || ( $ i { supplier_id } && $ i { supplier_id } ne $ supplier_from ) ) ;
next if $ skip { $ from_to } { $ id } ;
$ cali_cnt + + ;
$ xlsxcol = 0 ;
$ print_tbody . = qq~<tr id="$id$dow">~ if $ report ;
$ systems_in_event_count + + ;
& fields_row ( $ from_to , $ id ) ;
our $ default_javascript = '' ; our $ column_nr_cnt = $ column_nr + 1 ; our $ system_count = 0 ; our $ time_icon_color = 'black' ; our @ waybill = ( ) ; our $ items = qq~~ ; our @ suppliers = ( ) ;
if ( $ db { $ table } { $ id } { logistics_dcb_waybill } ) {
@ waybill = split ( /\-/ , $ db { $ table } { $ id } { logistics_dcb_waybill } ) ; $ dcb_waybill_nr { 'from' } = $ waybill [ 0 ] ; $ dcb_waybill_nr { 'to' } = $ waybill [ 1 ] ;
$ items = $ db { $ table } { $ id } { logistics_item_ids } ;
@ suppliers = split ( /\-/ , $ db { $ table } { $ id } { logistics_suppliers } ) ; $ supp { 'from' } = $ suppliers [ 0 ] ; $ supp { 'to' } = $ suppliers [ 1 ] ;
}
our $ readlonly_row = ( ( $ from_to eq 'to' && $ current_date > $ start_date ) || ( $ from_to eq 'from' && $ current_date > $ end_date ) || ( $ dcb_waybill_nr { $ from_to } && $ logistics_waybill_ids_hash { $ id } { $ from_to } && $ items && $ supp { $ from_to } == 2 ) ) ? 1 : 0 ;
our $ supplier_default_val = 0 ;
our $ item_default_val = 0 ;
our $ waybill_nr_default_val = 0 ;
our $ AISA_supplier_selected = 0 ;
our $ other_from_system_location_is_saved = 0 ;
our $ other_to_system_location_is_saved = 0 ;
our $ other_from_venue_location_is_saved = 0 ;
our $ other_to_venue_location_is_saved = 0 ;
foreach ( @ sql_col_display ) {
$ column_nr_cnt - - ;
next unless $ _ ; # blank for the buttons column
our $ formatting = $ format84 ;
our $ val = $ db { $ table } { $ id } { $ _ } ;
our $ valxlsx = '' ;
our $ align = qq~ class="dt-center"~ ;
our $ nowrap = '' ;
our $ tooltip_updated = '' ;
$ val = '' ; $ valxlsx = 'MUSTBEBLANK' ;
our $ default_val = $ fval { $ _ } { $ id } { $ from_to } ;
our $ only_display_val = '' ;
our $ background_color = '' ;
our $ default_val_is_saved = ( $ default_val && ! $ readlonly_row ) ? 1 : 0 ;
our $ cell_contains_select = 0 ;
our $ hide_cell = 0 ;
& color_row ( $ from_to , $ id , $ _ ) ;
& from_to_row ( $ from_to , $ id , $ _ ) ;
next if $ seen_event { $ id } && $ column_same_for_from_and_to { $ _ } ;
& val_row ( $ from_to , $ id , $ _ ) ;
my $ style = ( $ column_same_for_from_and_to { $ _ } && ! $ there_is_no_corresponding_TO && ! $ there_is_no_corresponding_FROM ) ? qq~rowspan="2"~ : qq~~ ;
# $style .= ($default_val_is_saved && !$background_color && !$readlonly_row) ? qq~ style="background-color:#424949;"~ : ($default_val_is_saved && $background_color && !$readlonly_row) ? qq~ style="background-color:$background_color;"~ : qq~~ ;
$ style . = ( $ default_val_is_saved && ! $ background_color && ! $ readlonly_row ) ? qq~background-color:#424949;~ : ( $ default_val_is_saved && $ background_color && ! $ readlonly_row ) ? qq~background-color:$background_color;~ : qq~~ ;
$ style . = ( $ cell_contains_select ) ? qq~z-index:$max_z_index;~ : qq~~ ;
$ style . = ( $ hide_cell ) ? qq~display:none;~ : qq~~ ;
$ style = qq~ style="$style"~ ;
if ( $ _ eq 'venue' && $ db { $ table } { $ id } { organisation_ids } !~ /\b$fval{venue_location}{$id}{$from_to}\b/ ) {
$ style = qq~style='background-color:rgb(255,0,0);'~ ;
$ tooltip_updated = qq~title data-toggle='tooltip' data-placement='top' data-original-title='Does not match with the venue to travel $from_to!'~ ;
$ val = qq~<span $tooltip_updated>$val</span>~ ;
}
$ max_z_index - - if $ cell_contains_select ;
my $ cell_id = ( $ _ eq 'create_waybill' ) ? "id='waybill_col_$from_to\_$id'" : ( $ _ eq 'dcb_comments' ) ? "id='dcb_comments_col_$from_to\_$id'" : ( $ _ eq 'shipment_operator' ) ? "id='s_o_cell_$from_to\_$id'" : ( $ _ eq 'other_from' && $ from_to eq 'to' ) ? "id='other_from_cell_$id'" : ( $ _ eq 'other_to' && $ from_to eq 'from' ) ? "id='other_to_cell_$id'" : ( $ _ eq 'other_from' && $ from_to eq 'from' ) ? "id='other_from_from_cell_$id'" : ( $ _ eq 'other_to' && $ from_to eq 'to' ) ? "id='other_to_to_cell_$id'" : "" ;
$ print_tbody . = qq~<td $align $nowrap $style $cell_id>$val</td>~ if $ report ;
# next if $_ eq 'create_waybill_out' || $_ eq 'create_waybill_in' || $_ eq 'process_complete' || $_ eq 'update' ;
# next if $_ eq 'create_waybill' || $_ eq 'process_complete' || $_ eq 'update' ;
next if $ _ eq 'create_waybill' || $ _ eq 'update' ;
& xlsxcreator_write_xlsx ( $ ws , $ xlsxrow , $ xlsxcol , $ valxlsx , $ formatting ) ;
$ xlsxcol + + ;
}
$ print_tbody . = qq~</tr>~ ;
$ xlsxrow + + ;
$ seen_event { $ id } = 1 ;
chop $ system_location_ids if $ system_location_ids ; chop $ event_venue_ids if $ event_venue_ids ;
}
}
my $ from_to_field_ids_str = join ( "," , @ from_to_field_ids ) ;
my $ from_to_multi_field_ids_str = join ( "," , @ from_to_multi_field_ids ) ;
my $ from_to_checkbox_field_ids_str = join ( "," , @ from_to_checkbox_field_ids ) ;
chop $ linked_from_and_to_fields { main } if $ linked_from_and_to_fields { main } ;
chop $ linked_from_and_to_fields { multi_selects } if $ linked_from_and_to_fields { multi_selects } ;
chop $ linked_from_and_to_fields { checkboxes } if $ linked_from_and_to_fields { checkboxes } ;
$ trigger_jquery_raw . = qq ~
function dcb_checkbox ( add_item , ft , event_id ) {
let ft_event_id = ft + "_" + event_id ;
let add_waybill = ( ! \ $( "input[name='waybill_nr_" + ft_event_id + "']" ) . val ( ) ) ? "<br><b>- Add WayBillNr</b>" : "" ;
let set_supplier = ( \ $( "#selectLogistics_supplier_id_" + ft_event_id ) . val ( ) != '2' ) ? "<br><b>- Set Supplier to DCB</b>" : "" ;
let required_fields_are_in = ( ! add_waybill && ! add_item && ! set_supplier ) ? 1 : 0 ;
let checkbox_exists = \ $( "#waybill_col_" + ft_event_id ) . find ( 'input[type="checkbox"]' ) . length ;
if ( required_fields_are_in && ! checkbox_exists ) {
\ $( "#waybill_col_" + ft_event_id ) . html ( "<input value='1' name='create_waybill_" + ft_event_id + "' type='checkbox' id='create_waybill_" + ft_event_id + "'>" ) . trigger ( "chosen:updated" ) ;
} else if ( ! required_fields_are_in ) {
\ $( "#waybill_col_" + ft_event_id ) . html ( "<i class='glyphicon glyphicon-remove' title data-toggle='tooltip' data-placement='left' data-original-title='Before sending to DCB:" + add_waybill + "" + add_item + "" + set_supplier + "'></i>" ) . trigger ( "chosen:updated" ) ;
\ $( "#waybill_col_" + ft_event_id + " [data-toggle='tooltip']" ) . tooltip ( { html:true } ) ;
}
}
function prevent_table_left_scroll ( ) {
let scrollLeft = \ $( "#$useropts{table_id}" ) . parent ( ) . scrollLeft ( ) ;
setTimeout ( ( ) = > {
\ $( "#$useropts{table_id}" ) . parent ( ) . scrollLeft ( scrollLeft ) ; // Restore scroll position after dropdown change
} , 0 ) ;
}
~ ;
$ trigger_jquery_raw_on_change_1 . = qq ~
// parent . event . preventDefault ( ) ;
prevent_table_left_scroll ( ) ;
let corresponding_drop_down_field ; let event_id = get_row_nr ( this . id , 1 ) ;
if ( this . id . includes ( "selectItem_" ) ) {
corresponding_drop_down_field = { $ linked_from_and_to_fields { multi_selects } } ;
\ $( "#" + corresponding_drop_down_field [ this . id ] ) . val ( \ $ ( this ) . val ( ) ) . trigger ( "chosen:updated" ) ;
check_whether_to_update ( corresponding_drop_down_field [ this . id ] ) ;
}
if ( this . id . includes ( "inputWaybill_nr_" ) || this . id . includes ( "selectLogistics_supplier_id_" ) || this . id . includes ( "selectItem_" ) ) {
let ft_event_id = "from_" + event_id ;
let add_item = ( \ $( "#selectItem_" + ft_event_id ) . chosen ( ) . val ( ) ) ? "" : "<br><b>- Add Item(s)</b>" ;
if ( ! \ $( "#waybill_col_" + ft_event_id ) . find ( 'a[href]' ) . length && ! \ $( '#waybill_col_' + ft_event_id ) . find ( 'i.glyphicon.glyphicon-ok' ) . length ) {
dcb_checkbox ( add_item , 'from' , event_id ) ;
}
ft_event_id = "to_" + event_id ;
if ( ! \ $( "#waybill_col_" + ft_event_id ) . find ( 'a[href]' ) . length && ! \ $( '#waybill_col_' + ft_event_id ) . find ( 'i.glyphicon.glyphicon-ok' ) . length ) {
dcb_checkbox ( add_item , 'to' , event_id ) ;
}
}
// this . id . includes ( "inputOther_" ) ||
if ( this . id . includes ( "selectPoc_" ) || this . id . includes ( "inputReceived_by_" ) && ( this . id . includes ( "selectSystem_location_" ) && ! \ $( "input[name='changed_system_location']" ) . val ( ) ) && ( this . id . includes ( "selectVenue_location_" ) && ! \ $( "input[name='changed_venue_location']" ) . val ( ) ) ) {
corresponding_drop_down_field = { $ linked_from_and_to_fields { main } } ;
\ $( "#" + corresponding_drop_down_field [ this . id ] ) . val ( \ $ ( this ) . val ( ) ) . trigger ( "chosen:updated" ) ;
check_whether_to_update ( corresponding_drop_down_field [ this . id ] ) ;
if ( this . id . includes ( "selectSystem_location_" ) && ! \ $( "input[name='changed_system_location']" ) . val ( ) ) {
\ $( "input[name='changed_system_location']" ) . val ( "1" ) ;
}
if ( this . id . includes ( "selectVenue_location_" ) && ! \ $( "input[name='changed_venue_location']" ) . val ( ) ) {
\ $( "input[name='changed_venue_location']" ) . val ( "1" ) ;
}
}
if ( this . id . includes ( "create_waybill_" ) ) {
corresponding_drop_down_field = { $ linked_from_and_to_fields { checkboxes } } ;
if ( \ $ ( this ) . is ( ":checked" ) && ! \ $( "#" + corresponding_drop_down_field [ this . id ] ) . is ( ":checked" ) ) {
\ $( "#" + corresponding_drop_down_field [ this . id ] ) . prop ( "checked" , true ) ;
} else if ( ! \ $ ( this ) . is ( ":checked" ) && \ $( "#" + corresponding_drop_down_field [ this . id ] ) . is ( ":checked" ) ) {
\ $( "#" + corresponding_drop_down_field [ this . id ] ) . prop ( "checked" , false ) ;
}
let event_id = get_row_nr ( this . id , 1 ) ;
// if ( ! \ $( "input[name='update_from_" + event_id + "']" ) . is ( ":checked" ) ) {
\ $( "input[name='update_from_" + event_id + "']" ) . prop ( "checked" , true ) ;
// }
// if ( ! \ $( "input[name='update_to_" + event_id + "']" ) . is ( ":checked" ) ) {
\ $( "input[name='update_to_" + event_id + "']" ) . prop ( "checked" , true ) ;
// }
// check_whether_to_update ( corresponding_drop_down_field [ this . id ] ) ;
}
~ ;
my $ from_venue_ids_str = join ( "," , @ from_venue_ids ) ; my $ from_venue_ids_str_jquery = $ from_venue_ids_str ; $ from_venue_ids_str_jquery =~ s/\,/\","/g ;
my $ to_venue_ids_str = join ( "," , @ to_venue_ids ) ; my $ to_venue_ids_str_jquery = $ to_venue_ids_str ; $ to_venue_ids_str_jquery =~ s/\,/\","/g ;
my $ supplier_ids_str = join ( "," , @ supplier_ids_arr ) ; my $ supplier_ids_str_jquery = $ supplier_ids_str ; $ supplier_ids_str_jquery =~ s/\,/\","/g ;
$ opts { shipment_operator } =~ s/\"/\'/g ;
$ trigger_jquery_raw . = qq ~
const shipment_operator_opts = "$opts{shipment_operator}" ;
function add_select ( field_name , field_id , placeholder , options , tindex , width ) {
return "<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>" ;
}
~ ;
$ trigger_jquery_raw_on_change_1 . = qq ~
let row_index = get_row_nr ( this . id , 2 ) ;
if ( this . id . includes ( "selectLogistics_supplier_" ) ) {
let AISA_selected_somewhere = 0 ; let AISA_selected_nowhere = 0 ; var supplierIDs = [ "$supplier_ids_str_jquery" ] ;
if ( \ $( "#" + this . id ) . val ( ) == '2' ) {
\ $( "#textareaDcb_comments_" + row_index ) . css ( "display" , "" ) ;
if ( \ $( "input[name='dcb_comments_value_was_saved_" + row_index + "']" ) . val ( ) == '1' ) {
\ $( "#dcb_comments_col_" + row_index ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
}
if ( \ $( "#" + this . id ) . val ( ) == '2' && \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})" ) . is ( ":hidden" ) ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})" ) . css ( "display" , "" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{dcb_comments})" ) . css ( "display" , "" ) ;
}
} else if ( \ $( "#" + this . id ) . val ( ) != '2' && ! \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})" ) . is ( ":hidden" ) ) {
// Check if DCB is selected anywhere else - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
let dcb_selected_somewhere_else = 0 ;
supplierIDs . forEach ( function ( selectID ) {
if ( \ $( "#" + selectID ) . val ( ) == '2' ) {
dcb_selected_somewhere_else = 1 ;
return ;
}
} ) ;
if ( ! dcb_selected_somewhere_else && ! \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})" ) . is ( ":hidden" ) ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{dcb_comments})" ) . css ( "display" , "none" ) ;
}
} else if ( ! \ $( "#textareaDcb_comments_" + row_index ) . is ( ":hidden" ) ) {
\ $( "#textareaDcb_comments_" + row_index ) . css ( "display" , "none" ) ;
if ( \ $( "input[name='dcb_comments_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#dcb_comments_col_" + row_index ) . css ( "background-color" , "" ) ; // rgb ( 66 , 73 , 73 )
}
}
}
// if ( \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && ! \ $( "#s_o_cell_" + row_index ) . html ( ) ) {
if ( \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && ! \ $( "#s_o_cell_" + row_index ) . find ( 'select' ) . length ) {
let placeholder = ( row_index . includes ( "to" ) ) ? "To" : "From" ; placeholder = placeholder + " " + get_row_nr ( row_index , 1 ) ; placeholder = "Select Shipment Operator " + placeholder ;
let select_drop_down = add_select ( "shipment_operator_" + row_index , "selectShipment_operator_" + row_index , placeholder , shipment_operator_opts , 1 , 0 ) ;
\ $( "#s_o_cell_" + row_index ) . append ( select_drop_down ) . trigger ( "chosen:updated" ) ;
\ $( "#selectShipment_operator_" + row_index ) . chosen ( { allow_single_deselect:true } ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "width" , "90%" ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "position" , "absolute" ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "left" , "5%" ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "top" , "50%" ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "transform" , "translateY(-50%)" ) ;
if ( ! \ $( "#selectShipment_operator_" + row_index ) . val ( ) && \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#selectShipment_operator_" + row_index ) . val ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) . trigger ( "chosen:updated" ) ;
}
if ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#s_o_cell_" + row_index ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . is ( ":hidden" ) ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "" ) ;
}
}
\ $( "#$useropts{table_id}" ) . on ( "change" , "#selectShipment_operator_" + row_index , function ( ) {
prevent_table_left_scroll ( ) ;
check_whether_to_update ( this . id ) ;
} ) ;
} else if ( \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && \ $( "#s_o_cell_" + row_index ) . is ( ":hidden" ) ) {
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . is ( ":hidden" ) ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "" ) ;
}
} else {
\ $( "#s_o_cell_" + row_index ) . css ( "display" , "" ) ;
}
if ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#s_o_cell_" + row_index ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
if ( ! \ $( "#selectShipment_operator_" + row_index ) . val ( ) ) {
\ $( "#selectShipment_operator_" + row_index ) . val ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) . trigger ( "chosen:updated" ) ;
}
}
} else if ( \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) ) {
if ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#s_o_cell_" + row_index ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
if ( ! \ $( "#selectShipment_operator_" + row_index ) . val ( ) ) {
\ $( "#selectShipment_operator_" + row_index ) . val ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) . trigger ( "chosen:updated" ) ;
}
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "display" , "" ) ;
}
} else if ( ! \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && ! \ $( "#s_o_cell_" + row_index ) . is ( ":hidden" ) ) {
console . log ( "1 shipment_operator" ) ;
if ( ! \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . is ( ":hidden" ) ) {
let AISA_selected_somewhere = 0 ;
supplierIDs . forEach ( function ( selectID ) {
if ( \ $( "#" + selectID + " option:selected" ) . text ( ) . includes ( 'AISA' ) ) {
AISA_selected_somewhere = 1 ;
return ;
}
} ) ;
if ( AISA_selected_somewhere ) {
// \ $( "#s_o_cell_" + row_index ) . css ( "display" , "none" ) ;
\ $( "#selectShipment_operator_" + row_index + "_chosen" ) . css ( "display" , "none" ) ;
console . log ( "2 shipment_operator : " + \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) ;
if ( \ $( "input[name='shipment_operator_value_was_saved_" + row_index + "']" ) . val ( ) ) {
\ $( "#s_o_cell_" + row_index ) . css ( "background-color" , "" ) ;
}
} else {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{shipment_operator})" ) . css ( "display" , "none" ) ;
}
}
}
}
// else if ( \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && \ $( "#s_o_cell_" + row_index ) . is ( ":hidden" ) ) {
// \ $( "#s_o_cell_" + row_index ) . css ( "display" , "" ) ;
// }
// else if ( ! \ $( 'option:selected' , this ) . text ( ) . includes ( 'AISA' ) && ! \ $( "#s_o_cell_" + row_index ) . is ( ":hidden" ) ) {
// }
// let dcb_comments_default_text_can_exist = "$dcb_comments_text_can_exist" ;
}
if ( this . id . includes ( "selectSystem_location_" ) ) {
// \ $( "$from_venue_ids_str" ) . change ( function ( ) {
// const user_type = "$db{users}{$userid}{user_type}" ;
const user_type = "$glod_user_level" ;
// if ( user_type != "casual_c" && user_type != "it" && "$userid" != "24" && "$userid" != "1" && "$userid" != "338" ) {
// if ( user_type <= 3 && user_type != "it" && "$userid" != "24" && "$userid" != "1" && "$userid" != "338" ) {
if ( user_type < 3 ) {
return ;
}
let other_from_dropdown_can_exist = "$other_from_dropdown_can_exist" ;
let other_to_dropdown_can_exist = "$other_to_dropdown_can_exist" ;
let other_from_text_can_exist = "$other_from_text_can_exist" ;
let other_to_text_can_exist = "$other_to_text_can_exist" ;
if ( \ $( "#" + this . id ) . val ( ) == '5' ) {
// \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{item})" ) . css ( "width" , "17%" ) ;
// \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{status})" ) . css ( "width" , "7%" ) ;
// \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{received_by})" ) . css ( "width" , "7%" ) ;
// \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . html ( "" ) ;
// \ $( "#$useropts{table_id} tr:eq(2) td:nth-last-child($last_child{other_to})" ) . html ( "" ) ;
if ( row_index . includes ( "to_" ) ) {
console . log ( "other to" ) ;
if ( \ $( "input[name='other_from_to_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_from_to_" + event_id + "']" ) . css ( "display" , "" ) ;
}
if ( \ $( "input[name='other_from_value_was_saved_to_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_from_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( other_from_dropdown_can_exist || other_from_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) ) {
if ( other_from_dropdown_can_exist != "0" || other_from_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . css ( "display" , "" ) ;
}
}
}
if ( other_from_dropdown_can_exist || other_from_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) ) {
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
if ( other_from_dropdown_can_exist != "0" || other_from_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_from})" ) . css ( "display" , "" ) ;
}
}
}
}
} else if ( row_index . includes ( "from_" ) ) {
console . log ( "other from" ) ;
if ( \ $( "input[name='other_to_from_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_to_from_" + event_id + "']" ) . css ( "display" , "" ) ;
}
if ( \ $( "input[name='other_to_value_was_saved_from_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_to_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( other_to_dropdown_can_exist || other_to_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . is ( ":hidden" ) ) {
if ( other_to_dropdown_can_exist != "0" || other_to_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . css ( "display" , "" ) ;
}
}
}
if ( other_to_dropdown_can_exist || other_to_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_to})" ) . is ( ":hidden" ) ) {
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
if ( other_to_dropdown_can_exist != "0" || other_to_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_to})" ) . css ( "display" , "" ) ;
}
}
}
}
}
} else if ( \ $( "#" + this . id ) . val ( ) != '5' ) {
if ( ! \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) && row_index . includes ( "to_" ) ) {
if ( ! \ $( "input[name='other_from_to_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_from_to_" + event_id + "']" ) . css ( "display" , "none" ) ;
\ $( "#other_from_cell_" + event_id ) . css ( "background-color" , "" ) ;
console . log ( "HIDE other_from_cell_" ) ;
}
var selectIDs = [ "$to_venue_ids_str_jquery" ] ;
let venues_as_other_selected = 0 ;
selectIDs . forEach ( function ( selectID ) {
if ( \ $ ( selectID ) . val ( ) == '5' || \ $ ( selectID ) . val ( ) == 'other' ) {
venues_as_other_selected = 1 ;
return ;
}
} ) ;
if ( ! venues_as_other_selected ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_from})" ) . css ( "display" , "none" ) ;
}
}
} else if ( ! \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_to})" ) . is ( ":hidden" ) && row_index . includes ( "from_" ) ) {
console . log ( "other_from" ) ;
if ( ! \ $( "input[name='other_to_from_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_to_from_" + event_id + "']" ) . css ( "display" , "none" ) ;
\ $( "#other_to_cell_" + event_id ) . css ( "background-color" , "" ) ;
}
var selectIDs = [ "$from_venue_ids_str_jquery" ] ;
let venues_as_other_selected = 0 ;
selectIDs . forEach ( function ( selectID ) {
if ( \ $ ( selectID ) . val ( ) == '5' || \ $ ( selectID ) . val ( ) == 'other' ) {
venues_as_other_selected = 1 ;
return ;
}
} ) ;
if ( ! venues_as_other_selected ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_to})" ) . css ( "display" , "none" ) ;
}
}
}
// \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{item})" ) . css ( "width" , "14%" ) ;
}
}
if ( this . id . includes ( "selectVenue_location_" ) ) {
const user_type = "$glod_user_level" ;
if ( user_type < 3 ) {
return ;
}
let other_from_dropdown_can_exist = "$other_from_dropdown_can_exist" ;
let other_to_dropdown_can_exist = "$other_to_dropdown_can_exist" ;
let other_from_text_can_exist = "$other_from_text_can_exist" ;
let other_to_text_can_exist = "$other_to_text_can_exist" ;
if ( \ $( "#" + this . id ) . val ( ) == 'other' ) {
if ( row_index . includes ( "from_" ) ) {
if ( \ $( "input[name='other_from_value_was_saved_from_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_from_from_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( \ $( "input[name='other_from_from_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_from_from_" + event_id + "']" ) . css ( "display" , "" ) ;
}
if ( \ $( "input[name='other_from_from_value_was_saved_to_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_from_from_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( other_from_dropdown_can_exist || other_from_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) ) {
if ( other_from_dropdown_can_exist != "0" || other_from_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . css ( "display" , "" ) ;
}
}
}
if ( other_from_dropdown_can_exist || other_from_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) ) {
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
if ( other_from_dropdown_can_exist != "0" || other_from_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_from})" ) . css ( "display" , "" ) ;
}
}
}
}
} else if ( row_index . includes ( "to_" ) ) {
if ( \ $( "input[name='other_to_value_was_saved_to_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_to_to_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( \ $( "input[name='other_to_to_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_to_to_" + event_id + "']" ) . css ( "display" , "" ) ;
}
if ( \ $( "input[name='other_to_to_value_was_saved_from_" + event_id + "']" ) . val ( ) ) {
\ $( "#other_to_to_cell_" + event_id ) . css ( "background-color" , "rgb(66,73,73)" ) ; // rgb ( 66 , 73 , 73 )
}
if ( other_to_dropdown_can_exist || other_to_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . is ( ":hidden" ) ) {
if ( other_to_dropdown_can_exist != "0" || other_to_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . css ( "display" , "" ) ;
}
}
}
if ( other_to_dropdown_can_exist || other_to_text_can_exist ) {
if ( \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_to})" ) . is ( ":hidden" ) ) {
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
if ( other_to_dropdown_can_exist != "0" || other_to_text_can_exist != "0" ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_to})" ) . css ( "display" , "" ) ;
}
}
}
}
}
} else if ( \ $( "#" + this . id ) . val ( ) != 'other' ) {
if ( ! \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) && row_index . includes ( "to_" ) ) {
\ $( "#other_to_to_cell_" + event_id ) . css ( "background-color" , "" ) ;
if ( ! \ $( "input[name='other_to_to_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_to_to_" + event_id + "']" ) . css ( "display" , "none" ) ;
\ $( "#other_to_to_cell_" + event_id ) . css ( "background-color" , "" ) ;
}
var selectIDs = [ "$from_venue_ids_str_jquery" ] ;
let venues_as_other_selected = 0 ;
selectIDs . forEach ( function ( selectID ) {
if ( \ $ ( selectID ) . val ( ) == '5' || \ $ ( selectID ) . val ( ) == 'other' ) {
venues_as_other_selected = 1 ;
return ;
}
} ) ;
if ( ! venues_as_other_selected ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_to})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_to})" ) . css ( "display" , "none" ) ;
}
}
} else if ( ! \ $( "#$useropts{table_id} tr:eq(1) td:nth-last-child($last_child{other_from})" ) . is ( ":hidden" ) && row_index . includes ( "from_" ) ) {
\ $( "#other_from_from_cell_" + event_id ) . css ( "background-color" , "" ) ;
if ( ! \ $( "input[name='other_from_from_" + event_id + "']" ) . is ( ":hidden" ) ) {
\ $( "input[name='other_from_from_" + event_id + "']" ) . css ( "display" , "none" ) ;
\ $( "#other_from_from_cell_" + event_id ) . css ( "background-color" , "" ) ;
}
var selectIDs = [ "$to_venue_ids_str_jquery" ] ;
let venues_as_other_selected = 0 ;
selectIDs . forEach ( function ( selectID ) {
console . log ( "selectID : " + selectID + " : " + \ $ ( selectID ) . val ( ) ) ;
if ( \ $ ( selectID ) . val ( ) == '5' || \ $ ( selectID ) . val ( ) == 'other' ) {
venues_as_other_selected = 1 ;
return ;
}
} ) ;
console . log ( "2 HIDE OTHER FROM COL : " + venues_as_other_selected ) ;
if ( ! venues_as_other_selected ) {
\ $( "#$useropts{table_id} tr th:nth-last-child($last_child{other_from})" ) . css ( "display" , "none" ) ;
for ( let i = \ $( '#$useropts{table_id}' ) . DataTable ( ) . _ ( 'tr' ) . length ; i >= 1 ; i - - ) {
\ $( "#$useropts{table_id} tr:eq(" + i + ") td:nth-last-child($last_child{other_from})" ) . css ( "display" , "none" ) ;
}
}
}
}
}
// } ) ;
~ ;
& logistics_jquery ( $ from_to ) ;
& report_xlsx_export_footer ( 'L' , 15 , $ xlsxdir ) ;
$ fnsortorder = 'desc' ;
& common_min_extra_crumb ( "$lcpage" , "Search Screen" ) ;
$ trigger_jquery_raw . = qq ~
\ $( "#savebutt" ) . click ( function ( ) {
let item_val ;
$ jquery_chosen_sel
\ $( "#$lcpage-form" ) . submit ( ) ;
} ) ;
~ ;
$ extra_form_footer = qq ~
< form role = "form" id = "logisticsform" method = "post" >
< input type = "hidden" id = "logisticsaction" name = "iaction" value = "" >
< input type = "hidden" name = "date_from" value = "$i{date_from}" >
< input type = "hidden" name = "date_to" value = "$i{date_to}" >
< input type = "hidden" name = "client_id" value = "$i{client_id}" >
< input type = "hidden" name = "organisation_ids" value = "$i{organisation_ids}" >
< input type = "hidden" name = "supplier_id" value = "$i{supplier_id}" >
< input type = "hidden" name = "status_id" value = "$i{status_id}" >
< input type = "hidden" name = "region_id" value = "$i{region_id}" >
</form>
~ ;
$ trigger_jquery_raw . = qq ~
function toggleToFrom ( ft ) {
\ $( '#logisticsaction' ) . val ( ft ) ;
\ $( '#logisticsform' ) . submit ( ) ;
}
~ ;
& common_min_table_update_checkbox_col ( 2 ) ;
& common_min_table_datepicker_jquery ;
& common_min_table_timepicker_jquery ;
my $ all_datepicker_names_str = join ( "," , @ all_datepicker_names ) ;
my $ all_timepicker_names_str = join ( "," , @ all_timepicker_names ) ;
$ trigger_jquery_raw . = qq ~
// \ $( "$all_datepicker_names_str,$all_timepicker_names_str" ) . css ( "display" , "none" ) ;
// \ $( "span" ) . removeClass ( "input-group-addon" ) ;
~ ;
$ trigger_jquery_raw . = qq ~
// setInterval ( function ( ) {
\ $( "$all_datepicker_ids_str,$all_timepicker_ids" ) . on ( 'changeDate' , function ( e ) {
// const date_live = new Date ( '$now_year-$now_mm-$now_dd\T$now_hour:$now_min:$now_sec' ) ;
const date_live = new Date ( ) ;
let row_nr = get_row_nr ( this . id , 2 ) ;
let delivery_date = \ $( "#datepickerDelivery_date_" + row_nr ) . data ( "date" ) ;
let delivery_time = \ $( "#timepickerDelivery_time_" + row_nr ) . data ( "date" ) ;
const delivery_datetime_string = delivery_date + "T" + delivery_time ;
const delivery_date_time = new Date ( delivery_datetime_string ) ;
if ( 0 < delivery_date_time - date_live && delivery_date_time - date_live < 86400000 ) {
\ $( "#datepickerDelivery_date_" + row_nr + " .glyphicon.glyphicon-calendar" ) . css ( 'color' , 'red' ) ;
\ $( "#timepickerDelivery_time_" + row_nr + " .glyphicon.glyphicon-time" ) . css ( 'color' , 'red' ) ;
} else {
\ $( "#datepickerDelivery_date_" + row_nr + " .glyphicon.glyphicon-calendar" ) . css ( 'color' , 'black' ) ;
\ $( "#timepickerDelivery_time_" + row_nr + " .glyphicon.glyphicon-time" ) . css ( 'color' , 'black' ) ;
}
// setInterval ( myFunction ( this . id ) , 5000 ) ;
} ) ;
~ ;
} #------------------------------------------------------------------------------------------
sub val_row {
my ( $ from_to , $ id , $ col_disp ) = @ _ ;
if ( $ col_disp eq 'count' ) {
$ val = $ cali_cnt ;
} elsif ( $ col_disp eq 'nr' ) {
$ val = qq~<span style="display:none;">$id\_$from_to</span>~ . & common_min_get_event_quote_button ( $ id , $ table ) ;
$ valxlsx = $ id ;
} elsif ( $ col_disp eq 'event' ) {
$ align = qq~ class="dt-left"~ ;
$ nowrap = 'nowrap' ;
$ val = "$db{$table}{$id}{ref}" ;
if ( length ( $ val ) > 30 ) {
# $val = substr($val,0,27) . qq~<i class="glyphicons glyphicons-more" title data-toggle="tooltip" data-placement="top" data-original-title="[$uc_from_to] $db{$table}{$id}{ref}"></i>~ ;
$ val = substr ( $ val , 0 , 27 ) . qq~<i class="glyphicons glyphicons-more" title data-toggle="tooltip" data-placement="top" data-original-title="$db{$table}{$id}{ref}"></i>~ ;
}
$ valxlsx = $ db { $ table } { $ id } { ref } ;
} elsif ( $ col_disp eq 'FT' ) {
$ val = uc $ from_to ;
$ val = qq~<strong>~ . $ val . qq~</strong>~ ;
} elsif ( $ col_disp eq 'dates' ) {
& logistics_dates ( $ from_to , $ id ) ;
} elsif ( $ col_disp eq 'start' ) {
my $ mon = substr ( $ db { $ table } { $ id } { date_from } , 5 , 2 ) ; $ nowrap = 'nowrap' ;
$ val = substr ( $ db { $ table } { $ id } { date_from } , 8 , 2 ) . ' ' . $ month_names [ $ mon ] . substr ( $ db { $ table } { $ id } { date_from } , 0 , 4 ) . ' @ ' . substr ( $ db { $ table } { $ id } { date_from } , 11 , 5 ) ;
} elsif ( $ col_disp eq 'start_date' ) {
$ val = substr ( $ db { $ table } { $ id } { date_from } , 0 , 10 ) ; $ nowrap = 'nowrap' ;
} elsif ( $ col_disp eq 'stime' ) {
$ valxlsx = substr ( $ db { $ table } { $ id } { date_from } , 11 , 5 ) ; $ val = $ valxlsx ;
} elsif ( $ col_disp eq 'end' ) {
my $ mon = substr ( $ db { $ table } { $ id } { date_to } , 5 , 2 ) ; $ nowrap = 'nowrap' ;
$ val = substr ( $ db { $ table } { $ id } { date_to } , 8 , 2 ) . ' ' . $ month_names [ $ mon ] . substr ( $ db { $ table } { $ id } { date_to } , 0 , 4 ) . ' @ ' . substr ( $ db { $ table } { $ id } { date_to } , 11 , 5 ) ;
} elsif ( $ col_disp eq 'end_date' ) {
$ val = substr ( $ db { $ table } { $ id } { date_to } , 0 , 10 ) ; $ nowrap = 'nowrap' ;
} elsif ( $ col_disp eq 'etime' ) {
$ valxlsx = substr ( $ db { $ table } { $ id } { date_to } , 11 , 5 ) ;
$ val = $ valxlsx ;
} elsif ( $ col_disp eq 'venue' ) {
& logistics_venue ( $ from_to , $ id ) ;
# $valxlsx = $val ;
} elsif ( $ col_disp eq 'city' ) {
$ val = ( $ db { cities } { $ db { $ table } { $ id } { city_id } } { city_short } ) ? $ db { cities } { $ db { $ table } { $ id } { city_id } } { city_short } : $ db { cities } { $ db { $ table } { $ id } { city_id } } { name } ; $ nowrap = 'nowrap' ;
$ valxlsx = $ val ;
} elsif ( $ col_disp eq 'region' ) {
$ val = $ db { regions } { $ db { $ table } { $ id } { region_id } } { code } ;
} elsif ( $ col_disp eq 'sport' ) {
# $val = '' ;
$ nowrap = 'nowrap' ;
# foreach my $s_id (split(/\,/,$db{$table}{$id}{sport_type_ids})) {
# $val .= qq~$db{sport_types}{$s_id}{name}<br>~ ;
# }
# $val = substr($val,0,-4) if $val ;
$ val = join ( "<br>" , map { "$db{sport_types}{$_}{name}" } split ( /\,/ , $ db { $ table } { $ id } { sport_type_ids } ) ) ;
$ valxlsx = $ val ;
} elsif ( $ col_disp eq 'system' ) {
$ nowrap = 'nowrap' ;
& logistics_system ( $ from_to , $ id ) ;
} elsif ( $ col_disp eq 'shipment_operator' ) {
$ opts { $ field { $ col_disp } } = $ opts { shipment_operator } ;
if ( ! $ readlonly_row ) {
# $linked_from_and_to_fields{main} .= qq~"selectShipment_operator_$from_to\_$id":"selectShipment_operator_$from_to_opposite{$from_to}\_$id",~ ;
$ cell_contains_select = 1 ;
$ opts { $ field { $ col_disp } } = qq~~ unless $ AISA_supplier_selected ;
my $ val_temp = ( $ default_val_is_saved && $ default_val ) ? qq~<input value='$default_val' name='shipment_operator_value_was_saved_$from_to\_$id' style='display:none'>~ : qq~~ ;
$ default_val_is_saved = 0 if ! $ AISA_supplier_selected ;
if ( $ default_val_is_saved && $ default_val && $ AISA_supplier_selected ) {
my $ field_id = $ field { $ col_disp } ;
$ col_disp = "s_o_$default_val" ;
$ field { $ col_disp } = $ field_id ;
$ opts { $ field { $ col_disp } } = qq~<option value='$default_val' SELECTED>$db{users}{$default_val}{name}</option>~ ;
$ default_val = '' ;
$ preferred_placeholder { $ field { $ col_disp } } = "Select Shipment Operator $from_to $id" ;
}
$ val = ( $ AISA_supplier_selected ) ? $ val_temp . & common_min_table_select ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , $ background_color , '' , $ col_disp , '' , '' ) : $ val_temp ;
# $val = &common_min_table_select($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,'','',$col_name,'','') ;
} else {
$ val = ( $ db { users } { $ default_val } { name } ) ? qq~$db{users}{$default_val}{name}~ : qq~~ ;
$ val . = ( $ db { users } { $ default_val } { username } && $ db { users } { $ default_val } { name } ) ? qq~[$db{users}{$default_val}{username}]~ : ( $ db { users } { $ default_val } { username } && ! $ db { users } { $ default_val } { name } ) ? qq~$db{users}{$default_val}{username}~ : qq~~ ;
}
$ hide_cell = 1 if ! $ AISA_supplier_selected_somewhere ;
} elsif ( $ col_disp eq 'delivery_date' ) {
$ default_val = $ fval { delivery_date } { $ id } { $ from_to } ;
# if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
my $ col = "d_$from_to" ;
$ tooltip_updated . = "Last Updated : $prev_update_time{date}{$col}" if $ prev_update_time { date } { $ col } ;
$ tooltip_updated . = " , " if $ tooltip_updated ;
$ tooltip_updated . = "Changed By : $db{users}{$prev_update_time{user}{$col}}{name}" if $ prev_update_time { user } { $ col } && $ prev_update_time { date } { $ col } ;
if ( ! $ readlonly_row ) {
$ fval { delivery_time } { $ id } { $ from_to } =~ s/\-/\:/g ;
my $ difference = & common_time_diff_seconds ( "$now_year-$now_mm-$now_dd $now_hour:$now_min:$now_sec" , "$fval{delivery_date}{$id}{$from_to} $fval{delivery_time}{$id}{$from_to}" ) ;
if ( $ difference > 0 && $ difference < 86400 ) {
$ time_icon_color = 'red' ;
}
# $val = &common_min_table_datepicker($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,$background_color,$default_val_is_saved,$col_nm,'',$time_icon_color,$update_tooltip,$tooltip_updated) ;
$ val = & common_min_table_datepicker ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , $ background_color , '' , $ col_nm , '' , $ time_icon_color , $ update_tooltip , $ tooltip_updated ) ;
} else {
$ nowrap = 'nowrap' ;
$ tooltip_updated = qq~title data-toggle='tooltip' data-placement='top' data-original-title='$tooltip_updated'~ if $ tooltip_updated ;
$ val = qq~<span $tooltip_updated>$default_val</span>~ ;
}
} elsif ( $ col_disp eq 'delivery_time' ) {
$ default_val = $ fval { delivery_time } { $ id } { $ from_to } ;
# if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
my $ col = "t_$from_to" ;
$ tooltip_updated . = "Last Updated : $prev_update_time{date}{$col}" if $ prev_update_time { date } { $ col } ;
$ tooltip_updated . = " , " if $ tooltip_updated ;
$ tooltip_updated . = "Changed By : $db{users}{$prev_update_time{user}{$col}}{name}" if $ prev_update_time { user } { $ col } && $ prev_update_time { date } { $ col } ;
if ( ! $ readlonly_row ) {
my $ col = "t_$from_to" ;
# $val = &common_min_table_timepicker($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,$background_color,$default_val_is_saved,$col_nm,'',$time_icon_color,$tooltip_updated) ;
$ val = & common_min_table_timepicker ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , $ background_color , '' , $ col_nm , '' , $ time_icon_color , $ tooltip_updated ) ;
} else {
$ nowrap = 'nowrap' ;
$ tooltip_updated = qq~title data-toggle='tooltip' data-placement='top' data-original-title='$tooltip_updated'~ if $ tooltip_updated ;
$ val = qq~<span $tooltip_updated>$default_val</span>~ ;
}
} elsif ( $ col_disp eq 'received_by' || ( substr ( $ col_disp , 0 , 5 ) eq 'other' && $ col_disp ne 'other_special_instructions' ) ) {
# $hide_cell = 1 if substr($col_disp,0,5) eq 'other' && $db{$table}{$eid}{logistics_system_location_id} ne '5' && !$other_system_location_selected_somewhere ;
my $ val_temp = qq~~ ;
if ( substr ( $ col_disp , 0 , 5 ) eq 'other' ) {
# $hide_cell = ($other_system_location_selected_somewhere && ($glod_user_level > 3 || $db{users}{$userid}{user_type} eq "it" || $userid eq "24" || $userid eq "1" || $userid eq "338")) ? 0 : 1 ;
# $default_val = $fval{system_location}{$id}{$from_to} ;
$ val_temp = ( $ default_val_is_saved && $ default_val ) ? qq~<input value='$default_val' name='$col_disp\_value_was_saved_$from_to\_$id' style='display:none'>~ : qq~~ ;
$ default_val_is_saved = 0 if ( ! $ other_from_system_location_is_saved && $ from_to eq 'to' && $ col_disp eq 'other_from' ) || ( ! $ other_to_system_location_is_saved && $ from_to eq 'from' && $ col_disp eq 'other_to' ) || ( ! $ other_from_venue_location_is_saved && $ from_to eq 'from' && $ col_disp eq 'other_from' ) || ( ! $ other_to_venue_location_is_saved && $ from_to eq 'to' && $ col_disp eq 'other_to' ) ;
$ hide_cell = ( ( ( ( $ other_from_system_location_selected_somewhere || $ other_from_venue_selected_somewhere ) && $ col_disp eq 'other_from' ) || ( ( $ other_to_system_location_selected_somewhere || $ other_to_venue_selected_somewhere ) && $ col_disp eq 'other_to' ) ) && $ glod_user_level >= 3 ) ? 0 : 1 ;
}
# $db{$table}{$id}{logistics_system_location_id}
my $ acx = ( substr ( $ col_disp , 0 , 5 ) eq 'other' ) ? "$col_disp\_$from_to\_location\_$id" : "$col_disp\_$id" ;
$ preferred_placeholder { $ field { $ col_disp } } = join " " , map { ucfirst $ _ } split "_" , $ acx ;
# if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
if ( ! $ readlonly_row ) {
$ only_display_val = 0 ; $ found_editable = 1 ;
} else {
$ only_display_val = 1 ;
}
if ( $ col_disp eq 'received_by' ) {
push @ from_to_field_ids , "#inputReceived_by_$from_to\_$id" ;
$ linked_from_and_to_fields { main } . = qq~"inputReceived_by_$from_to\_$id":"inputReceived_by_$from_to_opposite{$from_to}\_$id",~ ;
} else {
push @ from_to_field_ids , "#inputOther_$from_to_opposite{$from_to}\_$from_to\_$id" ;
$ linked_from_and_to_fields { main } . = qq~"inputOther_$from_to_opposite{$from_to}\_$from_to\_$id":"inputOther_$from_to\_$from_to_opposite{$from_to}\_$id",~ ;
}
$ preferred_placeholder { $ field { $ col_disp } } =~ s/To /System /g if $ col_disp =~ /other/ && $ from_to eq 'to' ;
$ preferred_placeholder { $ field { $ col_disp } } =~ s/From /System /g if $ col_disp =~ /other/ && $ from_to eq 'from' ;
$ val = # (($col_disp eq 'other_from' && $from_to eq 'from') || ($col_disp eq 'other_to' && $from_to eq 'to')) ? "" :
(
(
( $ db { $ table } { $ id } { logistics_system_location_id } =~ /-5$/ && $ col_disp eq 'other_to' && $ from_to eq 'from' ) ||
( $ db { $ table } { $ id } { logistics_system_location_id } =~ /^5-/ && $ col_disp eq 'other_from' && $ from_to eq 'to' ) ||
( $ db { $ table } { $ id } { logistics_venue_id } =~ /-other$/ && $ col_disp eq 'other_to' && $ from_to eq 'to' ) ||
( $ db { $ table } { $ id } { logistics_venue_id } =~ /^other-/ && $ col_disp eq 'other_from' && $ from_to eq 'from' )
) ||
$ col_disp !~ /other/
) ? $ val_temp . & common_min_table_input ( $ field { $ col_disp } , $ default_val , $ only_display_val , $ cali_cnt , $ column_nr_cnt , $ background_color , $ default_val_is_saved ) :
$ val_temp . & common_min_table_input ( $ field { $ col_disp } , $ default_val , $ only_display_val , $ cali_cnt , $ column_nr_cnt , $ background_color , $ default_val_is_saved , '' , '' , 1 ) ;
$ other_from_text_can_exist = ( $ col_disp eq 'other_from' && $ from_to eq 'to' && $ default_val ) ? 1 : 0 ;
$ other_to_text_can_exist = ( $ col_disp eq 'other_to' && $ from_to eq 'from' && $ default_val ) ? 1 : 0 ;
# if (substr($col_disp,0,5) eq 'other' && ($glod_user_level > 3 || $db{users}{$userid}{user_type} eq "it" || $userid eq "24" || $userid eq "1" || $userid eq "338")) {
# # Do Nothing
# } elsif (substr($col_disp,0,5) eq 'other') {
# $valxlsx = "" ;
# }
} elsif ( $ col_disp eq 'operator' ) {
$ val = ( $ op_ids [ $ system_count - 1 ] ) ? $ db { users } { $ op_ids [ $ system_count - 1 ] } { name } : '' ;
$ formatting = $ format92 if $ cali_cnt == 2 ;
# } elsif ($col_disp eq 'waybill_nr_from' || $col_disp eq 'waybill_nr_to') {
} elsif ( $ col_disp eq 'waybill_nr' ) {
my $ fname = 'waybill_nr' ; $ val = '' ; $ valxlsx = 'MUSTBEBLANK' ;
my $ wb_code = 'AIS' . uc substr ( $ from_to , 0 , 1 ) . '_' ;
if ( ! $ readlonly_row ) {
$ found_editable = 1 ;
my $ wb_nr = ( $ default_val ) ? $ default_val : $ wb_code . $ id ;
$ waybill_nr_default_val = ( $ wb_nr ) ? 1 : 0 ;
# $val = &common_min_table_input($field{$col_disp},$wb_nr,'',$cali_cnt,$column_nr_cnt,'',$default_val_is_saved,$col_disp) ;
$ val = & common_min_table_input ( $ field { $ col_disp } , $ wb_nr , '' , $ cali_cnt , $ column_nr_cnt , '' , '' , $ col_disp ) ;
$ valxlsx = $ wb_nr ;
} else {
$ val = ( $ logistics_waybill_ids_hash { $ id } { $ from_to } ) ? $ logistics_waybill_ids_hash { $ id } { $ from_to } : ( ! $ readlonly_row ) ? $ id : "" ;
$ valxlsx = $ val ;
}
# &logistics_waybill_nr($from_to,$id) ;
# } elsif ($col_disp eq 'special_instructions_to' || $col_disp eq 'special_instructions_from') {
} elsif ( $ col_disp eq 'special_instructions' ) {
if ( ! $ readlonly_row ) {
$ found_editable = 1 ;
$ default_val_is_saved = 1 if $ default_val ;
# $val = &common_min_table_textarea($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,'',$default_val_is_saved) ;
$ val = & common_min_table_textarea ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , '' , '' ) ;
} elsif ( $ default_val ) {
$ val = $ default_val ;
$ valxlsx = $ val ;
}
} elsif ( $ col_disp eq 'other_special_instructions' ) {
if ( $ from_to eq 'to' ) {
$ val = "" ;
return ;
}
# if ($current_date <= $end_date) {
if ( ! $ readlonly_row ) {
$ found_editable = 1 ;
$ default_val_is_saved = 1 if $ default_val ;
# $val = &common_min_table_textarea($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,'',$default_val_is_saved) ;
$ val = & common_min_table_textarea ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , '' , '' ) ;
} elsif ( $ defualt ) {
$ val = $ defualt ;
$ valxlsx = $ val ;
}
# } elsif ($col_disp eq 'create_waybill_out' || $col_disp eq 'create_waybill_in' || $col_disp eq 'process_complete') {
# } elsif ($col_disp eq 'create_waybill' || $col_disp eq 'process_complete') {
} elsif ( $ col_disp eq 'dcb_comments' ) {
if ( ! $ readlonly_row ) {
$ found_editable = 1 ;
$ default_val_is_saved = 1 if $ default_val ;
my $ hide_textarea = ( $ supplier_default_val ne '2' ) ? 1 : 0 ;
my $ val_temp = qq~<input value='$default_val_is_saved' name='dcb_comments_value_was_saved_$from_to\_$id' style='display:none'>~ ;
$ default_val_is_saved = 0 if $ hide_textarea ;
# $val = $val_temp . &common_min_table_textarea($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,'',$default_val_is_saved,'','',$hide_textarea) ;
$ val = $ val_temp . & common_min_table_textarea ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , '' , '' , '' , '' , $ hide_textarea ) ;
} elsif ( $ default_val ) {
$ val = $ default_val ;
}
$ valxlsx = $ default_val ;
$ hide_cell = 1 if ! $ dcb_supplier_is_selected_somewhere ;
} elsif ( $ col_disp eq 'create_waybill' ) {
& logistics_create_waybill ( $ from_to , $ id ) ;
push @ from_to_checkbox_field_ids , "#create_waybill_$from_to\_$id" ;
$ linked_from_and_to_fields { checkboxes } . = qq~"create_waybill_$from_to\_$id":"create_waybill_$from_to_opposite{$from_to}\_$id",~ ;
} elsif ( $ col_disp eq 'update' ) {
chop $ default_javascript if $ default_javascript ;
unless ( $ dcb_waybill_nr { $ from_to } ) {
$ default_javascript . = qq~,~ if $ default_javascript ;
$ default_javascript . = qq~"create_waybill_$from_to\_$id":""~ ;
}
# if (!$dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to} && $items && $supp{$from_to} == 2) {
# $default_javascript .= qq~,~ if $default_javascript ;
# $default_javascript .= qq~"create_waybill_$from_to\_$id":""~ ;
# }
if ( $ default_javascript ) {
push @ default_javascript_by_id , qq~"$from_to\_$id":{$default_javascript}~ ;
push @ all_update_field_ids , "#$ucfirstfield{1},#$ucfirstfield{2},#$ucfirstfield{supplier},#$ucfirstfield{status},#$ucfirstfield{waybill_nr},#$ucfirstfield{item},#$ucfirstfield{poc},#$ucfirstfield{special_instructions},#$ucfirstfield{delivery_date},#$ucfirstfield{delivery_time},#$ucfirstfield{received_by}" ;
push @ all_update_field_ids , "#$ucfirstfield{other_from}" if $ ucfirstfield { other_from } ;
push @ all_update_field_ids , "#$ucfirstfield{other_to}" if $ ucfirstfield { other_to } ; #$ucfirstfield{other_special_instructions}
push @ all_update_field_ids , "#$ucfirstfield{other_special_instructions}" if $ ucfirstfield { other_special_instructions } ne 'input' ;
push @ all_update_field_ids , "#create_waybill_$from_to\_$id" ;
push @ all_update_field_ids , "#$ucfirstfield{dcb_comments}" ;
push @ all_update_field_ids , "#$ucfirstfield{shipment_operator}" ;
}
# if (($from_to eq 'to' && $current_date <= $end_date) || ($from_to eq 'from' && $current_date <= $start_date)) {
if ( ( $ from_to eq 'to' && $ current_date <= $ start_date ) || ( $ from_to eq 'from' && $ current_date <= $ end_date ) ) {
$ quote_and_ops_ids . = qq~"$id":"1",~ ;
$ val = & common_min_table_checkbox ( $ field { update } ) ;
$ logistics_supplier_ids_hash { $ id } { $ from_to } = "" unless $ logistics_supplier_ids_hash { $ id } { $ from_to } ;
$ val = qq~<i class="glyphicon glyphicon-ok"></i>~ if $ dcb_waybill_nr { $ from_to } && $ logistics_waybill_ids_hash { $ id } { $ from_to } && $ items && $ supp { $ from_to } == 2 ;
} else {
$ val = qq~<i class="glyphicon glyphicon-remove"></i>~ ;
}
$ valxlsx = '' ;
$ formatting = $ format1 ;
}
if ( ! $ valxlsx && $ col_disp ne 'dcb_comments' && $ col_disp ne 'delivery_date' && $ col_disp ne 'delivery_time' && $ col_disp ne 'received_by' && $ col_disp ne 'item' && substr ( $ col_disp , 0 , 5 ) ne 'other' ) {
$ valxlsx = $ val ;
}
$ valxlsx =~ s/\MUSTBEBLANK//g ;
if ( $ col_disp eq 'dates' ) {
$ valxlsx =~ s/\<br>//g ;
} elsif ( $ col_disp eq 'sport' ) {
$ valxlsx =~ s/\<br>/\;/g ;
}
} #------------------------------------------------------------------------------------------
# sub last_updated_tooltip {
# my ($col) = @_ ;
# return "title data-toggle='tooltip' data-placement='top' data-original-title='Last Updated : $prev_update_time{$col}'" ;
# } #------------------------------------------------------------------------------------------
sub fields_row {
my ( $ from_to , $ id ) = @ _ ;
our % field = ( ) ;
$ field { 1 } = "venue_location_$from_to\_$id" ;
$ field { 2 } = "system_location_$from_to\_$id" ;
$ field { supplier } = "logistics_supplier_id_$from_to\_$id" ;
$ field { status } = "status_$from_to\_$id" ;
$ field { waybill_nr } = "waybill_nr_$from_to\_$id" ;
$ field { item } = "item_$from_to\_$id" ;
$ field { poc } = "poc_$from_to\_$id" ;
$ field { other_special_instructions } = ( $ from_to eq 'from' ) ? "other_special_instructions_$from_to\_$id" : "" ;
$ field { special_instructions } = "special_instructions_$from_to\_$id" ;
$ field { update } = "update_$from_to\_$id" ;
$ field { delivery_date } = "delivery_date_$from_to\_$id" ;
$ field { delivery_time } = "delivery_time_$from_to\_$id" ;
$ field { received_by } = "received_by_$from_to\_$id" ;
$ field { other_from } = "other_from_$from_to\_$id" ;
$ field { other_to } = "other_to_$from_to\_$id" ;
$ field { dcb_comments } = "dcb_comments_$from_to\_$id" ;
$ field { shipment_operator } = "shipment_operator_$from_to\_$id" ;
our % ucfirstfield = ( ) ;
foreach ( keys % field ) {
$ ucfirstfield { $ _ } = ucfirst $ field { $ _ } ;
if ( $ _ eq 'update' ) {
$ ucfirstfield { $ _ } = qq~checkbox~ . $ ucfirstfield { $ _ } ;
} elsif ( $ _ eq 'waybill_nr' || $ _ eq 'received_by' || ( substr ( $ _ , 0 , 5 ) eq 'other' && $ _ ne 'other_special_instructions' ) ) {
$ ucfirstfield { $ _ } = qq~input~ . $ ucfirstfield { $ _ } ;
} elsif ( $ _ eq 'special_instructions' || $ _ eq 'other_special_instructions' || $ _ eq 'dcb_comments' ) {
$ ucfirstfield { $ _ } = ( $ ucfirstfield { $ _ } ) ? qq~textarea~ . $ ucfirstfield { $ _ } : qq~1~ ;
} elsif ( $ _ eq 'delivery_date' ) {
$ ucfirstfield { $ _ } = qq~datepicker~ . $ ucfirstfield { $ _ } ;
} elsif ( $ _ eq 'delivery_time' ) {
$ ucfirstfield { $ _ } = qq~timepicker~ . $ ucfirstfield { $ _ } ;
} else {
$ ucfirstfield { $ _ } = qq~select~ . $ ucfirstfield { $ _ } ;
}
}
$ event_venue_ids . = qq~#$ucfirstfield{1},~ ;
$ system_location_ids . = qq~#$ucfirstfield{2},~ ;
$ all_location_ids_per_system { $ event_sys_id } . = qq~#$ucfirstfield{2},~ ;
$ seen_field_id { $ ucfirstfield { 2 } } = 1 ;
} #------------------------------------------------------------------------------------------
sub color_row {
my ( $ from_to , $ id , $ col_disp ) = @ _ ;
my $ tooltip_updated = qq~~ ;
if ( $ col_disp =~ /status/ && $ from_to eq 'to' ) {
$ tooltip_updated . = "Last Updated : $prev_update_time{date}{s_to}" if $ prev_update_time { date } { s_to } ;
$ tooltip_updated . = " , " if $ tooltip_updated ;
$ tooltip_updated . = "Changed By : $db{users}{$prev_update_time{user}{s_to}}{name}" if $ prev_update_time { user } { s_to } && $ prev_update_time { date } { s_to } ;
}
if ( $ col_disp =~ /supplier/ || $ col_disp =~ /status/ || $ col_disp eq 'item' || $ col_disp eq 'poc' ) {
my $ col_name = $ col_disp ;
# if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$ opts { $ col_disp } = $ opts2 { status } if $ col_disp =~ /status/ ;
if ( ! $ readlonly_row ) {
$ found_editable = 1 ;
$ preferred_title { $ field { $ col_disp } } = $ preferred_title { $ col_disp } ;
if ( $ default_val ) {
$ valxlsx = $ db { $ fval_table { $ col_disp } } { $ default_val } { name } ;
if ( $ col_disp =~ /status/ ) {
# $default_val_is_saved = 1 if $default_val ;
if ( $ default_val eq '1' ) { #Booked
$ background_color = "rgb(81,203,242)" ;
} elsif ( $ default_val eq '2' ) { #Pending
$ background_color = "rgb(66,73,73)" ;
} elsif ( $ default_val eq '3' ) { #In Transit
$ background_color = "rgb(255,165,0)" ;
} elsif ( $ default_val eq '4' ) { #Delivered
$ background_color = "rgb(46,204,113)" ;
} else {
$ default_val = 2 ;
}
# if ($default_val_is_saved) {
# $col_name = "status_$default_val" ;
# $opts{$col_name} = qq~<option value='$default_val' SELECTED >$db{status_hash}{$default_val}{name}</option>~ ;
# $default_val = '' ;
# }
# &common_debug(">>>> color_row : $background_color") ;
}
}
if ( $ col_disp eq 'item' ) {
$ multiple { $ field { item } } = 1 ;
$ opts { $ field { item } } = $ opts { item } ;
$ col_name = "item$system_count" ;
if ( ! $ default_val ) {
$ default_val = $ logistics_items_qty { $ system_count } ;
}
if ( $ default_val && $ default_val_is_saved ) {
$ col_name = "item_$default_val" ;
$ col_name =~ s/\,/\_/g ;
$ opts { $ field { item } } = join ( '' , map { "<option value='$_' SELECTED >$db{logistics_items}{$_}{name}</option>" } split /\,/ , $ default_val ) ;
$ default_val = '' ;
}
$ item_default_val = $ default_val ;
$ valxlsx = join ( ';' , map { $ db { logistics_items } { $ _ } { name } } split /\,/ , $ default_val ) ;
$ extra_form_fields . = qq~<input type="hidden" name="item_multi_$from_to\_$id" id="item-$from_to-$id" value="">~ ;
$ jquery_chosen_sel . = qq ~
item_val = \ $( "#selectItem_$from_to\_$id" ) . chosen ( ) . val ( ) ;
\ $( "#item-$from_to\-$id" ) . val ( item_val ) ;
~ ;
# $col_name = $col_disp ;
push @ from_to_multi_field_ids , "#selectItem_$from_to\_$id" ;
$ linked_from_and_to_fields { multi_selects } . = qq~"selectItem_$from_to\_$id":"selectItem_$from_to_opposite{$from_to}\_$id",~ ;
} elsif ( $ col_disp eq 'poc' ) {
# $col_name = $default_val ;
$ col_name = '' ;
$ opts { $ field { poc } } = $ opts { poc } { $ id } ;
push @ from_to_field_ids , "#selectPoc_$from_to\_$id" ;
$ linked_from_and_to_fields { main } . = qq~"selectPoc_$from_to\_$id":"selectPoc_$from_to_opposite{$from_to}\_$id",~ ;
$ valxlsx = $ default_val ;
# $opts{$field{poc}} =~ s/value="$default_val"/value="$default_val" SELECTED/g ;
$ default_val = '' ;
# $default_val =~ s/ /\_/g ;
}
# elsif ($col_disp eq 'status') {
# $col_name = '' ;
# $opts{$field{$col_disp}} = $opts{$col_disp} ;
# # &common_debug(">>>> color_row : $from_to,$id,$col_disp [$field{$col_disp}] [$col_name] [$opts{$field{$col_disp}}]") ;
# }
if ( $ col_disp =~ /supplier/ ) {
push @ supplier_ids_arr , $ ucfirstfield { $ col_disp } ;
$ supplier_default_val = ( $ default_val_is_saved ) ? $ default_val : 2 ;
$ AISA_supplier_selected = 1 if $ AISA_supplier { $ supplier_default_val } ;
$ dcb_supplier_is_selected = 1 if $ supplier_default_val eq '2' ;
# if ($default_val && $default_val_is_saved) {
# $col_name = "supplier_$default_val" ;
# $opts{$field{$col_disp}} = "<option value='$default_val' SELECTED >$db{logistics_suppliers}{$default_val}{supplier}</option>" ;
# $default_val = '' ;
# }
}
$ cell_contains_select = 1 ;
# $val = &common_min_table_select($field{$col_disp},$default_val,'',$cali_cnt,$column_nr_cnt,$background_color,$default_val_is_saved,$col_name,'','') ;
$ val = & common_min_table_select ( $ field { $ col_disp } , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , $ background_color , '' , $ col_name , '' , '' ) ;
if ( $ tooltip_updated ) {
$ tooltip_updated = qq~title data-toggle='tooltip' data-placement='left' data-original-title='$tooltip_updated'~ ;
$ val = qq~<div style="height:20px;" $tooltip_updated>$val</div>~ ;
}
} elsif ( $ default_val ) {
$ val = $ db { $ fval_table { $ col_disp } } { $ default_val } { name } ;
$ valxlsx = $ val ;
if ( $ col_disp =~ /status/ ) {
if ( $ default_val eq '1' ) { #Booked
$ background_color = "rgb(81,203,242)" ;
} elsif ( $ default_val eq '2' ) { #Pending
$ background_color = "rgb(66,73,73)" ;
} elsif ( $ default_val eq '3' ) { #In Transit
$ background_color = "rgb(255,165,0)" ;
} elsif ( $ default_val eq '4' ) { #Delivered
$ background_color = "rgb(46,204,113)" ;
}
if ( $ tooltip_updated ) {
$ tooltip_updated = qq~title data-toggle='tooltip' data-placement='top' data-original-title='$tooltip_updated'~ ;
$ val = qq~<span $tooltip_updated>$val</span>~ ;
}
} elsif ( $ col_disp eq 'item' ) {
$ valxlsx = join ( ',' , map { $ db { logistics_items } { $ _ } { name } } split /\,/ , $ default_val ) ;
$ val = $ valxlsx if $ default_val_is_saved ;
$ valxlsx =~ s/\,/\;/g ;
} elsif ( $ col_disp eq 'poc' ) {
$ val = $ default_val ;
}
}
}
} #------------------------------------------------------------------------------------------
sub from_to_row {
my ( $ from_to , $ id , $ col_disp ) = @ _ ;
if ( $ col_disp eq 'from' || $ col_disp eq 'to' ) {
$ default_val = '' ; my $ field_id = "" ;
my $ col_nm = $ col_disp ;
if ( ! $ readlonly_row ) {
my $ changed_val = qq~~ ;
if ( ( $ col_disp eq 'to' && $ from_to eq 'to' ) || ( $ col_disp eq 'from' && $ from_to eq 'from' ) ) { # && $iaction eq 'report') || ($col_disp eq 'from' && $col_disp eq 'report_from')
$ linked_from_and_to_fields { main } . = qq~"$ucfirstfield{1}":"selectVenue_location_$from_to_opposite{$from_to}\_$id",~ ;
push @ from_to_field_ids , "#$ucfirstfield{1}" ;
# $fval{system_location}{$id}{$from_to}
# $fval{venue_location}{$id}{$from_to}
# $default_val = $db{$table}{$id}{logistics_venue_id} ;
$ default_val = $ fval { venue_location } { $ id } { $ from_to } ;
$ default_val_is_saved = ( $ default_val ) ? 1 : 0 ;
$ field_id = $ field { 1 } ;
$ default_val = $ venue_ids [ 0 ] unless $ default_val ;
$ valxlsx = "$db{organisations}{$default_val}{name} [$db{organisations}{$default_val}{region_code}]" if $ db { organisations } { $ default_val } { region_code } ;
$ opts { $ field_id } = $ opts { venue_location } { $ db { $ table } { $ id } { region_id } } ;
$ col_nm = "$col_disp\_$db{$table}{$id}{region_id}" ;
if ( $ default_val_is_saved && $ default_val && $ default_val ne 'other' ) {
$ opts { $ field_id } = qq~<option value='$default_val' SELECTED>$db{organisations}{$default_val}{name}</option>~ ;
$ col_nm = "" ;
$ default_val = '' ;
} elsif ( $ default_val_is_saved && $ default_val && $ default_val eq 'other' ) {
$ opts { $ field_id } = qq~<option value='other' SELECTED>OTHER</option>~ ;
$ col_nm = "" ;
$ default_val = '' ;
}
$ changed_val = qq~<input name='changed_venue_location_$id' value='$default_val_is_saved'>~ unless $ seen_event { venue_location } { $ id } ;
$ seen_event { venue_location } { $ id } = 1 ;
push @ from_venue_ids , "#select" . ucfirst $ field_id if $ field_id && $ field_id =~ /_to_/ ;
push @ to_venue_ids , "#select" . ucfirst $ field_id if $ field_id && $ field_id =~ /_from_/ ;
$ other_from_venue_location_is_saved = 1 if $ db { $ table } { $ id } { logistics_venue_id } =~ /^other-/ ;
$ other_to_venue_location_is_saved = 1 if $ db { $ table } { $ id } { logistics_venue_id } =~ /-other$/ ;
} else {
$ other_from_dropdown_can_exist = 1 if $ col_disp eq 'from' && $ from_to eq 'to' ;
$ other_to_dropdown_can_exist = 1 if $ col_disp eq 'to' && $ from_to eq 'from' ;
$ linked_from_and_to_fields { main } . = qq~"$ucfirstfield{2}":"selectSystem_location_$from_to_opposite{$from_to}\_$id",~ ;
push @ from_to_field_ids , "#$ucfirstfield{2}" ;
$ field_id = $ field { 2 } ;
my $ found_loc = 0 ;
# $hide_cell = 1 if $db{$table}{$id}{logistics_system_location_id} ne '5' ;
$ other_from_system_location_is_saved = 1 if $ db { $ table } { $ id } { logistics_system_location_id } =~ /^5-/ ;
$ other_to_system_location_is_saved = 1 if $ db { $ table } { $ id } { logistics_system_location_id } =~ /-5$/ ;
# if ($db{$table}{$id}{logistics_system_location_id}) {
if ( ( $ db { $ table } { $ id } { logistics_system_location_id } =~ /^\d+-/ && $ from_to eq 'to' ) || ( $ db { $ table } { $ id } { logistics_system_location_id } =~ /-\d+$/ && $ from_to eq 'from' ) ) {
# $default_val = $db{$table}{$id}{logistics_system_location_id} ;
$ default_val = $ fval { system_location } { $ id } { $ from_to } ;
$ default_val_is_saved = 1 ;
$ found_loc = 1 ;
}
if ( ! $ found_loc ) {
foreach my $ event_sys_id ( sort @ system_name_ids ) {
next unless $ event_sys_id ;
next unless $ db { event_systems } { $ event_sys_id } { system_type } ;
if ( $ db { event_systems } { $ event_sys_id } { logistics_location_id } ) {
$ valxlsx = $ db { logistics_locations } { $ db { event_systems } { $ event_sys_id } { logistics_location_id } } { location } ;
$ default_val = $ db { event_systems } { $ event_sys_id } { logistics_location_id } ;
$ default_val_is_saved = 0 ;
$ found_loc = 1 ;
}
last ;
}
}
$ default_val_is_saved = 0 if ! $ found_loc ;
$ default_val = & check_city_match ( $ found_loc , $ db { cities } { $ db { $ table } { $ id } { city_id } } { name } ) unless $ default_val ;
$ opts { $ field_id } = $ opts { system_location } ;
push @ from_venue_ids , "#select" . ucfirst $ field_id if $ field_id && $ field_id =~ /_from_/ ;
push @ to_venue_ids , "#select" . ucfirst $ field_id if $ field_id && $ field_id =~ /_to_/ ;
# $seen_other = 1 if $default_val == 5 ;
# if ($default_val_is_saved && $default_val) {
# $opts{$field_id} = qq~<option value='$default_val' SELECTED>$db{logistics_locations}{$default_val}{location}</option>~ ;
# $col_nm = "loc_$default_val" ;
# $default_val = '' ;
# }
# $default_val_is_saved
$ changed_val = qq~<input name='changed_system_location_$id' value='$default_val_is_saved'>~ unless $ seen_event { system_location } { $ id } ;
$ seen_event { system_location } { $ id } = 1 ;
}
$ cell_contains_select = 1 ;
# $val = &common_min_table_select($field_id,$default_val,'',$cali_cnt,$column_nr_cnt,$background_color,$default_val_is_saved,$col_nm) ;
$ val = $ changed_val . & common_min_table_select ( $ field_id , $ default_val , '' , $ cali_cnt , $ column_nr_cnt , $ background_color , '' , $ col_nm ) ;
# &common_debug("2. system_location >>>>>> from_to_row : $field_id : [$db{$table}{$id}{logistics_system_location_id}] [$opts{$field_id}]");
} else {
if ( ( $ col_disp eq 'to' && $ from_to eq 'to' ) || ( $ col_disp eq 'from' && $ from_to eq 'from' ) ) {
# $default_val = $db{$table}{$id}{logistics_venue_id} ;
$ default_val = $ fval { venue_location } { $ id } { $ from_to } ;
$ default_val_is_saved = ( $ default_val ) ? 1 : 0 ;
$ default_val = $ venue_ids [ 0 ] unless $ default_val ;
if ( $ default_val ) {
$ val = qq~$db{organisations}{$default_val}{name}~ ;
$ val . = qq~ [$db{organisations}{$default_val}{region_code}]~ if $ db { organisations } { $ default_val } { region_code } ;
}
} else {
my $ found_loc = 0 ;
# $hide_cell = 1 if $db{$table}{$id}{logistics_system_location_id} ne '5' ;
if ( $ db { $ table } { $ id } { logistics_system_location_id } ) {
# $val = $db{logistics_locations}{$db{$table}{$id}{logistics_system_location_id}}{location} ;
$ val = ( $ from_to eq 'from' ) ? $ db { logistics_locations } { $ fval { system_location } { $ id } { to } } { location } : $ db { logistics_locations } { $ fval { system_location } { $ id } { from } } { location } ;
$ found_loc = 1 ;
}
$ default_val_is_saved = ( $ db { $ table } { $ id } { logistics_system_location_id } && ( ( $ from_to eq 'from' && $ fval { system_location } { $ id } { to } ) || ( $ from_to eq 'to' && $ fval { system_location } { $ id } { from } ) ) ) ? 1 : 0 ;
if ( ! $ found_loc ) {
foreach my $ event_sys_id ( sort @ system_name_ids ) {
next unless $ event_sys_id ;
next unless $ db { event_systems } { $ event_sys_id } { system_type } ;
if ( $ db { event_systems } { $ event_sys_id } { logistics_location_id } ) {
$ val = $ db { logistics_locations } { $ db { event_systems } { $ event_sys_id } { logistics_location_id } } { location } ;
$ found_loc = 1 ;
last ;
}
}
}
$ match = ( ! $ db { $ table } { $ id } { logistics_system_location_id } ) ? & check_city_match ( $ found_loc , $ db { cities } { $ db { $ table } { $ id } { city_id } } { name } ) : qq~~ ;
# $match = &check_city_match($found_loc,$db{cities}{$db{$table}{$id}{city_id}}{name}) ;
$ val = $ db { logistics_locations } { $ match } { location } if $ match ;
}
$ valxlsx = $ val ;
}
}
} #------------------------------------------------------------------------------------------
sub check_city_match {
my ( $ found_loc , $ city ) = @ _ ;
my $ match = 0 ;
if ( ! $ found_loc && $ city =~ /Johannesburg/ ) {
$ match = 1 ;
} elsif ( ! $ found_loc && $ city =~ /Cape Town/ ) {
$ match = 2 ;
} elsif ( ! $ found_loc && $ city =~ /Durban/ ) {
$ match = 3 ;
} elsif ( ! $ found_loc && $ city =~ /Bloemfontein/ ) {
$ match = 4 ;
}
& common_debug ( "check_city_match found_loc=$found_loc, city=$city >>>>>> match = $match [$db{logistics_locations}{$match}{location}]" ) ;
return ( $ match ) ;
} #------------------------------------------------------------------------------------------
sub page_opts {
our $ glyphicon = 'list' ;
our $ lcpage = 'logistics-report' ;
& common_page_name ;
# our $table = 'event_quotes' ;
our $ table = 'event_quotes' ;
$ page_title = 'Logistics Report' ;
} #-------------------------------------------------------------------------------
sub thead {
& common_min_thead ;
} #-------------------------------------------------------------------------------
sub screen3 {
our % custom_column_styles = ( ) ;
$ custom_column_styles { system } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { from } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { to } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { supplier } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { poc } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { item } = qq~style="min-width:325px;max-width:325px;"~ ;
$ custom_column_styles { delivery_time } = qq~style="min-width:105px;max-width:105px;"~ ;
$ custom_column_styles { delivery_date } = qq~style="width:4.5%;min-width:120px;"~ ;
$ custom_column_styles { special_instructions } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { other_special_instructions } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { waybill_nr } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { status } = qq~style="width:7%;min-width:120px;"~ ;
$ custom_column_styles { received_by } = qq~style="width:7%;min-width:120px;"~ ;
# if ($seen_other && ($glod_user_level > 3 || $db{users}{$userid}{user_type} eq "it" || $userid eq "24" || $userid eq "1" || $userid eq "338")) {
if ( ( $ other_from_system_location_selected_somewhere || $ other_from_venue_selected_somewhere ) && $ glod_user_level >= 3 ) {
$ custom_column_styles { other_from } = qq~style="width:7%;min-width:120px;"~ ;
} else {
$ custom_column_styles { other_from } = qq~style="width:7%;min-width:120px;display:none;"~ ;
}
if ( ( $ other_to_system_location_selected_somewhere || $ other_to_venue_selected_somewhere ) && $ glod_user_level >= 3 ) {
$ custom_column_styles { other_to } = qq~style="width:7%;min-width:120px;"~ ;
} else {
$ custom_column_styles { other_to } = qq~style="width:7%;min-width:120px;display:none;"~ ;
}
if ( ! $ dcb_supplier_is_selected_somewhere ) {
$ custom_column_styles { dcb_comments } = qq~style="width:7%;min-width:120px;display:none;"~ ;
} else {
$ custom_column_styles { dcb_comments } = qq~style="width:7%;min-width:120px;"~ ;
}
if ( $ AISA_supplier_selected_somewhere ) {
$ custom_column_styles { shipment_operator } = qq~style="width:7%;min-width:120px;"~ ;
} else {
$ custom_column_styles { shipment_operator } = qq~style="width:7%;min-width:120px;display:none;"~ ;
}
& thead ;
if ( $ isaved ) { $ alert = & common_min_alert ( 'success' , "$ucpage $isaved!" , 'ok' ) ; } else { & common_min_alert_type ; }
my $ page = "event-quotes" ;
if ( $ s { no } ) { $ page = $ lcpage ; }
our $ list = 0 ;
& common_min_table ( 'id' , $ page , 'list' ) ;
# &common_min_table_select_jquery("#$useropts{table_id} td:nth-last-child($last_child{status}),#$useropts{table_id} td:nth-last-child($last_child{poc}),#$useropts{table_id} td:nth-last-child($last_child{supplier}),#$useropts{table_id} td:nth-last-child($last_child{from}),#$useropts{table_id} td:nth-last-child($last_child{to}),#$useropts{table_id} td:nth-last-child($last_child{system})") ;
my $ datatable_field_id = "#$useropts{table_id} td:nth-last-child($last_child{status}),#$useropts{table_id} td:nth-last-child($last_child{poc}),#$useropts{table_id} td:nth-last-child($last_child{shipment_operator}),#$useropts{table_id} td:nth-last-child($last_child{supplier}),#$useropts{table_id} td:nth-last-child($last_child{from}),#$useropts{table_id} td:nth-last-child($last_child{to}),#$useropts{table_id} td:nth-last-child($last_child{system})" ;
# &common_min_table_select_jquery($datatable_field_id) ;
& common_min_table_select_fixed_width_jquery ( $ datatable_field_id ) ;
& common_min_table_select_prevent_dropdown_overlap_jquery_1 ;
& common_min_table_select_default_values_jquery ;
& common_min_table_multi_select_jquery ;
# &table_select_fixed_width_jquery($datatable_field_id) ;
# &common_min_table_select_default_values_jquery ;
# &common_min_table_multi_select_jquery ;
my $ all_multi_select_ids_str = join ( "," , @ all_multi_select_ids ) ;
$ all_multi_select_ids_str =~ s/\,/_chosen span,/g ;
$ all_multi_select_ids_str . = qq~_chosen span~ ;
$ trigger_jquery_raw . = qq ~
\ $( "$all_multi_select_ids_str" ) . css ( 'font-size' , '10px' ) ;
~ ;
our $ savjqy = 1 ;
# &common_min_extra_crumb("manage-$lcpage\s","Manage $ucfirstpage\s") ;
$ extra_form_fields . = qq ~
< input type = "hidden" name = "oaction" value = "$iaction" >
< input type = "hidden" name = "date_from" value = "$i{date_from}" >
< input type = "hidden" name = "date_to" value = "$i{date_to}" >
< input type = "hidden" name = "client_id" value = "$i{client_id}" >
< input type = "hidden" name = "organisation_ids" value = "$i{organisation_ids}" >
< input type = "hidden" name = "supplier_id" value = "$i{supplier_id}" >
< input type = "hidden" name = "status_id" value = "$i{status_id}" >
< input type = "hidden" name = "region_id" value = "$i{region_id}" >
~ ;
$ print_box_content_rows . = & common_min_forms_end ( '' , '' , 'save' ) if $ is_dcb_partner || ( $ usertype ne 'schools_manager' && $ glod_user_level >= 3 ) ;
$ useropts { 'common' } { 'css' } . = qq ~
tbody tr td {
font - size: 10 px ;
}
. tooltip - inner {
max - width: 500 px ;
white - space: normal ;
}
. tooltip {
position: fixed ; /* Ensures the tooltip is positioned relative to the viewport */
}
#itv-table thead th {
position: sticky ;
top: 0 ;
background: white ; /* Ensures the header is visible */
z - index : 1020 ; /* Keeps it above other elements */
}
. dropdown - menu {
z - index : 1100 ! important ; /* Higher than the table header */
}
~ ;
# z-index: 10000000; /* Ensures the tooltip appears on top of other elements */
$ trigger_jquery_raw . = qq ~
\ $( '[data-toggle="tooltip"]' ) . tooltip ( {
container: 'body' ,
placement: 'top' , // Or your preferred placement
} ) ;
~ ;
require _blank ;
exit ;
} #------------------------------------------------------------------------------------------
# sub table_select_fixed_width_jquery {
# my ($columns_with_selects) = @_ ;
# return unless $columns_with_selects ;
# # foreach (keys %table_select_rows) {
# # chop $table_select_rows{$_} ;
# # $trigger_jquery_raw .= qq~\$("$table_select_rows{$_}").css("z-index","$_") ; ~ ;
# # }
# $trigger_jquery_raw .= qq~
# \$("$columns_with_selects").css("position","relative") ;
# \$("$columns_with_selects").css("text-align","center") ;
# ~ ;
# my $dropdown_chosen_ids_str = join(',',@dropdown_chosen_ids) ;
# my $dropdown_multi_chosen_ids_str = join(',',@dropdown_multi_chosen_ids) ;
# $trigger_jquery .= qq~
# \$("$dropdown_multi_chosen_ids_str").css("width","100%") ;~ if $dropdown_multi_chosen_ids_str ;
# return unless $dropdown_chosen_ids_str ;
# # $trigger_jquery .= qq~
# # \$("$dropdown_chosen_ids_str").css("position","absolute") ;~ ;
# $trigger_jquery .= qq~
# \$("$dropdown_chosen_ids_str").css("width","90%") ;~ ;
# $trigger_jquery .= qq~
# \$("$dropdown_chosen_ids_str").css("left","5%") ;~ ;
# $trigger_jquery .= qq~
# \$("$dropdown_chosen_ids_str").css("top","50%") ;~ ;
# $trigger_jquery .= qq~
# \$("$dropdown_chosen_ids_str").css("transform","translateY(-50%)") ;~ ;
# } #------------------------------------------------------------------------------------------
sub redirect_screen {
& common_min_alert_type ;
print << ENDOFTEXT ;
< ! DOCTYPE html >
< html lang = "en" >
<head>
< meta charset = "utf-8" >
<title> $ useropts { title } </title>
< script src = "$useropts{'bower_components'}/jquery/jquery.min.js" > </script>
</head>
<body>
<script>
\ $ ( document ) . ready ( function ( ) { \ $( '#$lcpage-form' ) . submit ( ) ; } )
</script>
</body>
< form role = "form" id = "$lcpage-form" method = "post" action = "$lcpage" >
< input type = "hidden" name = "iaction" value = "report" >
< input type = "hidden" name = "oaction" value = "$iaction" >
< input type = "hidden" name = "date_from" value = "$i{date_from}" >
< input type = "hidden" name = "date_to" value = "$i{date_to}" >
< input type = "hidden" name = "client_id" value = "$i{client_id}" >
< input type = "hidden" name = "organisation_ids" value = "$i{organisation_ids}" >
< input type = "hidden" name = "supplier_id" value = "$i{supplier_id}" >
< input type = "hidden" name = "status_id" value = "$i{status_id}" >
< input type = "hidden" name = "region_id" value = "$i{region_id}" >
< input type = "hidden" name = "isaved" value = "$success" >
</form>
</html>
ENDOFTEXT
#
exit ;
} #------------------------------------------------------------------------------------------
use dcb ;
use today ;
use common ;
use report ;
use logistics ;
use xlsxcreator ;
1 ;