aisa/libs/modules/_FromProd/v1.0/logistics.pm
2026-02-03 14:35:43 +02:00

710 lines
38 KiB
Perl

sub logistics_load_db_vars {
&db_min_ro('organisations','*',"",'','') ;
&db_min_ro('logistics_locations','*',"",'','') ;
&db_min_ro('logistics_suppliers','*',"active = '1'",'','') ;
&db_min_ro('logistics_items','*',"",'','') ;
&db_min_ro('event_systems','id,logistics_location_id',"(`system_type` = 'mobile' OR `system_type` = 'solo' OR `description` lIKE 'cricket%')",'','') ;
foreach (keys %i) {
local @abc = split("_",$_) ;
if (substr($_,0,7) eq 'update_') {
$seen_event_id{$abc[-1]} = 1 ;
}
}
# create_waybill_out_5136
local @event_ids = () ;
foreach (keys %seen_event_id) {
push @event_ids , "`id` = '$_'" ;
}
local $e_q_sql = join (" OR ",@event_ids) ;
&db_min_ro($table,'id,event_system_id_multiple,logistics_suppliers,logistics_waybill_nrs,logistics_status_ids,logistics_venue_id,logistics_item_ids,poc_id,recipient_id,logistics_special_instructions,logistics_complete,logistics_dcb_waybill,date_from,date_to,logistics_delivery_datetime,logistics_received_by,logistics_location_other,logistics_system_location_id,logistics_last_changed_by,logistics_dcb_comments,logistics_shipment_operator_id',"$e_q_sql",'','') ;
} #------------------------------------------------------------------------------------------
sub logistics_dates {
my ($from_to,$id) = @_ ;
$nowrap = 'nowrap' ;
my ($year1,$month1,$day1) = split(/\-/,substr($db{$table}{$id}{date_from},0,10)) ;
my ($year2,$month2,$day2) = split(/\-/,substr($db{$table}{$id}{date_to},0,10)) ;
$val = qq~~ ;
if ($year1 ne $year2 && $month1 ne $month2 && $day1 ne $day2) {
$val = qq~ $day1 $month_names[$month1] $year1 -<br>$day2 $month_names[$month2] $year2~ ;
} elsif ($year1 eq $year2 && $month1 ne $month2) {
$val = qq~ $day1 $month_names[$month1] -<br>$day2 $month_names[$month2] $year2~ ;
} elsif ($year1 eq $year2 && $month1 eq $month2 && $day1 ne $day2) {
$val = qq~ $day1 - $day2 $month_names[$month2] $year2~ ;
} elsif ($year1 eq $year2 && $month1 eq $month2 && $day1 eq $day2) {
$val = qq~ $day2 $month_names[$month2] $year2~ ;
}
my $stime = substr($db{$table}{$id}{date_from},11,5) ;
my $etime = substr($db{$table}{$id}{date_to},11,5) ;
$valxlsx = $val ;
$valxlsx =~ s/<br>//g ;
# $val = qq~<a href='#' title data-toggle="tooltip" data-placement="top" data-original-title="Start Time : $stime<br>End Time : $etime">$val</a>~ ;
# &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol+1,$stime,$formatting) ;
# &xlsxcreator_write_xlsx($ws,$xlsxrow,$xlsxcol+2,$etime,$formatting) ;
} #------------------------------------------------------------------------------------------
sub logistics_venue {
my ($from_to,$id) = @_ ;
$val = '' ; $nowrap = 'nowrap' ;
foreach my $_oid (@venue_ids) {
$val .= qq~$db{organisations}{$_oid}{name}~ ;
$val .= qq~ [$db{organisations}{$_oid}{region_code}]~ if $db{organisations}{$_oid}{region_code} ;
$val .= ',' ;
}
$val = substr($val,0,-1) if $val ;
$valxlsx = $val ;
$valxlsx =~ s/\,/\;/g ;
if (length($val) > 30) {
$val =~ s/\,/\<br>/g ;
$val = substr($val,0,27) . qq~<i class="glyphicons glyphicons-more" title data-toggle="tooltip" data-placement="top" data-original-title="$val"></i>~ ;
} else {
$val =~ s/\,/\<br>/g ;
}
} #------------------------------------------------------------------------------------------
sub logistics_system {
my ($from_to,$id) = @_ ;
$val = '' ; my $tooltip = '' ;
foreach my $event_sys_id (@system_name_ids) {
next unless $event_sys_id ;
next unless $db{event_systems}{$event_sys_id}{system_type} ;
$system_count++ ;
$tooltip .= qq~<br>$db{event_systems}{$event_sys_id}{name}~ ;
$tooltip .= qq~ [$db{event_systems}{$event_sys_id}{description}]~ if $db{event_systems}{$event_sys_id}{description} ;
}
$tooltip = substr($tooltip,4) if $tooltip ;
$val = $tooltip ;
# $val = ($system_count > 1) ? qq~<i class="glyphicons glyphicons-laptop" title data-toggle="tooltip" data-placement="top" data-original-title="$tooltip"></i>~ : ($system_count == 1) ? qq~<i class="glyphicons glyphicons-facetime-video" title data-toggle="tooltip" data-placement="top" data-original-title="$tooltip"></i>~ : "" ;
$valxlsx = $tooltip ;
$valxlsx =~ s/\<br>/\;/g ;
} #------------------------------------------------------------------------------------------
sub logistics_from_to {
my ($from_to,$id) = @_ ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$found_editable = 1 ;
$trigger_jquery_raw .= qq~\$("#$ucfirstfield{1},#$ucfirstfield{2}").chosen({allow_single_deselect:true}) ; ~ ;
my $col_venue = ($from_to eq 'to') ? 10 : 11 ;
my $col_log_loc = ($from_to eq 'to') ? 11 : 10 ;
if (($_ eq 'to' && $from_to eq 'to') || ($_ eq 'from' && $iaction eq 'report_from')) { # && $iaction eq 'report') || ($_ eq 'from' && $_ eq 'report_from')
$val = qq~
<select class="form-control" name="$field{1}" id="$ucfirstfield{1}" data-placeholder="Select $preferred_title{$field{1}}" data-rel="chosen">
<option value=""></option>
$opts{venue_location}{$db{$table}{$id}{region_id}}
</select>
~ ;
$trigger_jquery_raw .= qq~
\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child($col_venue)").css("z-index","$cali_cnt") ;
~ ;
if ($db{$table}{$id}{logistics_venue_id}) {
$valxlsx = "$db{organisations}{$db{$table}{$id}{logistics_venue_id}}{name} [$db{organisations}{$db{$table}{$id}{logistics_venue_id}}{region_code}]" if $db{organisations}{$db{$table}{$id}{logistics_venue_id}}{region_code} ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{1}").val("$db{$table}{$id}{logistics_venue_id}") ;
~ ;
push @selects_with_default_ids,"#$ucfirstfield{1}" if $ucfirstfield{1} ;
push @table_with_default_ids,"#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child($col_venue)" ;
$default_javascript .= qq~"$field{1}":"$db{$table}{$id}{logistics_venue_id}",~ ;
} elsif ($venue_ids[0]) {
$valxlsx = "$db{organisations}{$venue_ids[0]}{name} [$db{organisations}{$venue_ids[0]}{region_code}]" if $db{organisations}{$venue_ids[0]}{region_code} ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{1}").val("$venue_ids[0]") ;
~ ;
push @selects_with_default_ids,"#$ucfirstfield{1}" if $ucfirstfield{1} ;
$default_javascript .= qq~"$field{1}":"$venue_ids[0]",~ ;
} else {
$default_javascript .= qq~"$field{1}":"",~ ;
}
} else {
$val = qq~
<select class="form-control" name="$field{2}" id="$ucfirstfield{2}" data-placeholder="Select $preferred_title{$field{2}}" data-rel="chosen">
<option value=""></option>
$opts{system_location}
</select>
~ ;
my $found_loc = 0 ;
$trigger_jquery_raw .= qq~
\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child($col_log_loc)").css("z-index","$cali_cnt") ;
~ ;
foreach my $event_sys_id (@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} ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{2}").val("$db{event_systems}{$event_sys_id}{logistics_location_id}") ;
~ ;
$found_loc = 1 ;
push @selects_with_default_ids,"#$ucfirstfield{2}" if $ucfirstfield{2} ;
push @table_with_default_ids,"#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child($col_log_loc)" ;
$default_javascript .= qq~"$field{2}":"$db{event_systems}{$event_sys_id}{logistics_location_id}",~ ;
}
last ;
}
if (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Johannesburg/) {
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{2}").val("1") ;
~ ;
$default_javascript .= qq~"$field{2}":"1",~ ;
push @selects_with_default_ids,"#$ucfirstfield{2}" if $ucfirstfield{2} ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Cape Town/) {
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{2}").val("2") ;
~ ;
$default_javascript .= qq~"$field{2}":"2",~ ;
push @selects_with_default_ids,"#$ucfirstfield{2}" if $ucfirstfield{2} ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Durban/) {
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{2}").val("3") ;
~ ;
push @selects_with_default_ids,"#$ucfirstfield{2}" if $ucfirstfield{2} ;
$default_javascript .= qq~"$field{2}":"3",~ ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Bloemfontein/) {
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{2}").val("4") ;
~ ;
push @selects_with_default_ids,"#$ucfirstfield{2}" if $ucfirstfield{2} ;
$default_javascript .= qq~"$field{2}":"4",~ ;
} elsif (!$found_loc) {
$default_javascript .= qq~"$field{2}":"",~ ;
}
}
push @dropdown_chosen_ids,"#$ucfirstfield{1}\_chosen,#$ucfirstfield{2}\_chosen" if $ucfirstfield{1} && $ucfirstfield{2} ;
} else {
if (($_ eq 'to' && $from_to eq 'to') || ($_ eq 'from' && $iaction eq 'report_from')) {
if ($db{$table}{$id}{logistics_venue_id}) {
$val = qq~$db{organisations}{$db{$table}{$id}{logistics_venue_id}}{name}~ ;
$val .= qq~ [$db{organisations}{$db{$table}{$id}{logistics_venue_id}}{region_code}]~ if $db{organisations}{$db{$table}{$id}{logistics_venue_id}}{region_code} ;
} elsif ($venue_ids[0]) {
$val = qq~$db{organisations}{$venue_ids[0]}{name}~ ;
$val .= qq~ [$db{organisations}{$venue_ids[0]}{region_code}]~ if $db{organisations}{$venue_ids[0]}{region_code} ;
}
} else {
my $found_loc = 0 ;
foreach my $event_sys_id (@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 ;
}
}
if (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Johannesburg/) {
$val = $db{logistics_locations}{1}{location} ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Cape Town/) {
$val = $db{logistics_locations}{2}{location} ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Durban/) {
$val = $db{logistics_locations}{3}{location} ;
} elsif (!$found_loc && $db{cities}{$db{$table}{$id}{city_id}}{name} =~ /Bloemfontein/) {
$val = $db{logistics_locations}{4}{location} ;
}
}
$valxlsx = $val ;
}
} #------------------------------------------------------------------------------------------
sub logistics_supplier {
my ($from_to,$id) = @_ ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$found_editable = 1 ;
$preferred_title{$field{supplier}} = "Supplier" ;
$opts{$field{supplier}} = $opts{logistics_supplier} ;
$trigger_jquery_raw .= qq~\$("#$ucfirstfield{supplier}").chosen({ allow_single_deselect:true });~ ;
$val = qq~<select class="form-control" name="$field{supplier}" id="$ucfirstfield{supplier}" data-placeholder="Select $preferred_title{$field{supplier}}" data-rel="chosen">
<option value=""></option>
$opts{$field{supplier}}
</select>~ ;
$trigger_jquery_raw .= qq~
\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(9)").css("z-index","$cali_cnt") ;
~ ;
if ($logistics_supplier_ids_hash{$id}{$from_to}) {
$valxlsx = $db{logistics_suppliers}{$logistics_supplier_ids_hash{$id}{$from_to}}{supplier} ;
push @selects_with_default_ids,"#$ucfirstfield{supplier}" if $ucfirstfield{supplier} ;
push @table_with_default_ids,"#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(9)" ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{supplier}").val("$logistics_supplier_ids_hash{$id}{$from_to}") ;
// \$("#$ucfirstfield{supplier}").trigger("chosen:updated") ;
// \$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(9)").css("background-color","#424949") ;
~ ;
}
push @dropdown_chosen_ids,"#$ucfirstfield{supplier}\_chosen" if $ucfirstfield{supplier} ;
} elsif ($logistics_supplier_ids_hash{$id}{$from_to}) {
$val = $db{logistics_suppliers}{$logistics_supplier_ids_hash{$id}{$from_to}}{supplier} ;
$valxlsx = $val ;
}
} #------------------------------------------------------------------------------------------
sub logistics_status {
my ($from_to,$id) = @_ ;
local %status_hash = (1 =>"Booked",2 => "Pending",3=>"In Transit",4 =>"Delivered") ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
# 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)) {
$found_editable = 1 ;
$preferred_title{$field{status}} = "Status" ;
$opts{$field{status}} = $opts{status} ;
$trigger_jquery_raw .= qq~\$("#$ucfirstfield{status}").chosen({ allow_single_deselect:true });~ ;
$val = qq~<select class="form-control" name="$field{status}" id="$ucfirstfield{status}" data-placeholder="Select $preferred_title{$field{status}}" data-rel="chosen">
<option value=""></option>
$opts{$field{status}}
</select>~ ;
$trigger_jquery_raw .= qq~
\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(8)").css("z-index","$cali_cnt") ;
~ ;
$val = &common_min_form_select_col($field{status},'') ; ########### >= OR >
if ($logistics_status_ids_hash{$id}{$from_to}) {
$valxlsx = $status_hash{$logistics_status_ids_hash{$id}{$from_to}} ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{status}").val("$logistics_status_ids_hash{$id}{$from_to}") ;
// \$("#$ucfirstfield{status}").trigger("chosen:updated") ;
~ ;
$default_javascript .= qq~"$field{status}":"$logistics_status_ids_hash{$id}{$from_to}",~ ;
push @selects_with_default_ids,"#$ucfirstfield{status}" if $ucfirstfield{status} ;
if ($logistics_status_ids_hash{$id}{$from_to} eq '1') { #Booked
$trigger_jquery_raw .= qq~\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(8)").css("background-color","rgb(81,203,242)") ; ~ ;
} elsif ($logistics_status_ids_hash{$id}{$from_to} eq '2') { #Pending
$trigger_jquery_raw .= qq~\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(8)").css("background-color","rgb(66,73,73)") ; ~ ;
} elsif ($logistics_status_ids_hash{$id}{$from_to} eq '3') { #In Transit
$trigger_jquery_raw .= qq~\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(8)").css("background-color","rgb(255,165,0) ") ; ~ ;
} elsif ($logistics_status_ids_hash{$id}{$from_to} eq '4') { #Delivered
$trigger_jquery_raw .= qq~\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(8)").css("background-color","rgb(46,204,113)") ; ~ ;
}
} else {
$default_javascript .= qq~"$field{status}":"2",~ ;
}
push @dropdown_chosen_ids,"#$ucfirstfield{status}\_chosen" if $ucfirstfield{status} ;
} elsif ($logistics_status_ids_hash{$id}{$from_to}) {
$val = $logistics_status_ids_hash{$logistics_status_ids_hash{$id}{$from_to}} ;
$valxlsx = $status_hash{$logistics_status_ids_hash{$id}{$from_to}} ;
}
} #------------------------------------------------------------------------------------------
sub logistics_waybill_nr {
my ($from_to,$id) = @_ ;
my $fname = 'waybill_nr' ; $val = '' ; $valxlsx = 'MUSTBEBLANK' ;
my $wb_code = 'AIS' . uc substr($from_to,0,1) . '_' ;
if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$found_editable = 1 ;
my $print_field = &common_min_print_field($field{$fname}) ; $tindex++ ;
my $wb_nr = ($logistics_waybill_ids_hash{$id}{$from_to}) ? $logistics_waybill_ids_hash{$id}{$from_to} : $wb_code . $id ;
$default_javascript .= qq~"$field{$fname}":"$wb_nr",~ ;
$val = qq~<div class="control-group"><div class='controls'><input type='text' class='form-control' name='$field{$fname}' id='$ucfirstfield{$fname}' placeholder='$print_field' value="$wb_nr" tabindex="$tindex">
</div></div>~ ;
$valxlsx = $wb_nr ;
$trigger_jquery .= qq~ \$("#$ucfirstfield{$fname}").css("width","100%") ;~ ;
$trigger_jquery_raw .= qq~\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(7)").css("background-color","#424949") ; ~ if $logistics_waybill_ids_hash{$id}{$from_to} ;
} else {
$val = ($logistics_waybill_ids_hash{$id}{$from_to}) ? $logistics_waybill_ids_hash{$id}{$from_to} : (!$readlonly_row) ? $id : "" ;
print "\n logistics_waybill_nr" ;
$valxlsx = $val ;
}
} #------------------------------------------------------------------------------------------
sub logistics_item {
my ($from_to,$id) = @_ ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$all_ids .= qq~,$id~ ;
$found_editable = 1 ;
$preferred_title{$field{item}} = "Item" ;
$opts{$field{item}} = $opts{logistics_items} ;
$trigger_jquery_raw .= qq~\$("#$ucfirstfield{item}").chosen({ allow_single_deselect:true });~ ;
if ($logistics_item_ids_hash{$id}) {
push @table_with_default_ids,"#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(6)" ;
foreach my $item_id (split(/\,/,$logistics_item_ids_hash{$id})) {
next unless $item_id ;
$opts{$field{item}} =~ s/\Q"$item_id"/"$item_id" SELECTED/g ;
}
$valxlsx = join (';', map { $db{logistics_items}{$_}{name} } split /,/, $logistics_item_ids_hash{$id});
}
$val = qq~
<select class="form-control" name="$field{item}" id="$ucfirstfield{item}" multiple data-placeholder="Select $preferred_title{$field{item}}" data-rel="chosen">
<option value=""></option>
$opts{$field{item}}
</select>
~ ;
$trigger_jquery .= qq~ \$("#$ucfirstfield{item}\_chosen").css("width","100%") ;~ if $ucfirstfield{item} ;
$extra_form_fields .= qq~<input type="hidden" name="item$id" id="item-$id" value="">~;
$jquery_chosen_sel .= qq~
item_val = \$("#selectItem_$id").chosen().val() ;
\$('#item-$id').val(item_val) ;
~ ;
} elsif ($logistics_item_ids_hash{$id}) {
$val = join (',', map { $db{logistics_items}{$_}{name} } split /,/, $logistics_item_ids_hash{$id});
$valxlsx = $val ;
$valxlsx =~ s/\,/\;/g ;
}
} #------------------------------------------------------------------------------------------
sub logistics_poc {
my ($from_to,$id) = @_ ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
$found_editable = 1 ;
$preferred_title{$field{poc}} = "poc" ;
$opts{$field{poc}} = $opts{poc}{$id} ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{poc}").chosen({ allow_single_deselect:true }) ; \$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(5)").css("z-index","$cali_cnt") ;
~ ;
$val = qq~
<select class="form-control" name="$field{poc}" id="$ucfirstfield{poc}" data-placeholder="Select $preferred_title{$field{poc}}" data-rel="chosen">
<option value=""></option>
$opts{$field{poc}}
</select>
~ ;
if ($logistics_poc_hash{$id}) {
$valxlsx = $logistics_poc_hash{$id} ;
$valxlsx =~ s/\_/ \[/g ;
$valxlsx .= qq~]~ ;
push @table_with_default_ids,"#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(5)" ;
push @selects_with_default_ids,"#$ucfirstfield{poc}" ;
$trigger_jquery_raw .= qq~
\$("#$ucfirstfield{poc}").val("$logistics_poc_hash{$id}") ;
~ ;
$default_javascript .= qq~"$field{poc}":"$logistics_poc_hash{$id}",~ ;
} else {
$default_javascript .= qq~"$field{poc}":"",~ ;
}
push @dropdown_chosen_ids,"#$ucfirstfield{poc}\_chosen" if $ucfirstfield{poc} ;
} elsif ($logistics_poc_hash{$id}) {
$val = $logistics_poc_hash{$id} ;
$val =~ s/\_/\[/g ;
$val .= qq~]~ ;
$valxlsx = $val ;
}
} #------------------------------------------------------------------------------------------
sub logistics_special_instructions {
my ($from_to,$id) = @_ ;
$val = '' ; $valxlsx = 'MUSTBEBLANK' ;
# 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)) {
$found_editable = 1 ;
my $print_field = &common_min_print_field($field{special_instructions}) ;
$tindex++ ;
my $defualt = ($logistics_special_instructions_hash{$id}{$from_to}) ? $logistics_special_instructions_hash{$id}{$from_to} : "" ;
$valxlsx = $defualt if $defualt ;
$val = qq~
<div class="control-group">
<div class='controls'>
<textarea type='text' class='form-control' name='$field{special_instructions}' id='$ucfirstfield{special_instructions}' placeholder='$print_field' value="$defualt" tabindex="$tindex">$defualt</textarea>
</div>
</div>
~ ;
$trigger_jquery .= qq~
\$("#$ucfirstfield{special_instructions}").css("width","100%") ;
~ ;
$trigger_jquery_raw .= qq~
\$("#$useropts{table_id} tr:eq($cali_cnt) td:nth-last-child(4)").css("background-color","#424949") ;
~ if $logistics_special_instructions_hash{$id}{$from_to} ;
} elsif ($logistics_special_instructions_hash{$id}{$from_to}) {
$val = $logistics_special_instructions_hash{$id}{$from_to} ;
$valxlsx = $val ;
}
} #------------------------------------------------------------------------------------------
sub logistics_create_waybill {
my ($from_to,$id) = @_ ;
# if (($from_to eq 'to' && $current_date <= $start_date) || ($from_to eq 'from' && $current_date <= $end_date)) {
if (!$readlonly_row) {
$ignore{"$_\_$id"} = 1 ;
$valxlsx = '' ;
# if ($_ eq 'process_complete') {
# $val = qq~<input name="$_\_$from_to\_$id" data-no-uniform="true" type="checkbox" id="$_\_$from_to\_$id" value="1" tabindex="$tindex">~ ;
# } elsif (!$dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to} && $items && $supp{$from_to} == 2) { # 2 = DCB Logistics
if ($logistics_waybill_ids_hash{$id}{$from_to} && $db{$table}{$id}{logistics_item_ids} && $supp{$from_to} == 2) {
# if ($waybill_nr_default_val && $item_default_val && $supplier_default_val == 2) {
if ($dcb_waybill_nr{$from_to}) {
my $arrow_class = ($dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to}) ? 'success' : 'danger' ;
my $arrow_direction = ($from_to eq 'to') ? 'right' : 'left' ;
my $dlg = qq~javascript:dlgMdl('$useropts{'scripts'}/dialog/dcb_trackntrace.pl?debug=1&waybillnr~;
my $uc_from_to = uc $from_to ;
$val = qq~<a class="btn btn-$arrow_class btn-round btn-xs" href="$dlg=$logistics_waybill_ids_hash{$id}{$from_to}','DCB&nbsp;Track&nbsp;&amp;&nbsp;Trace','','medium-dialog');" data-title='DCB Track &amp; Trace $uc_from_to Venue' data-toggle='tooltip' data-placement='top'><i class="glyphicon glyphicon-arrow-$arrow_direction"></i></a>~ ;
$nowrap = 'nowrap' ;
} else {
$val = qq~<input name="$_\_$from_to\_$id" data-no-uniform="true" type="checkbox" id="$_\_$from_to\_$id" value="1" tabindex="$tindex">~ ;
}
} elsif ($waybill_nr_default_val && $item_default_val && $supplier_default_val == 2) {
$val = qq~<input name="$_\_$from_to\_$id" data-no-uniform="true" type="checkbox" id="$_\_$from_to\_$id" value="1" tabindex="$tindex">~ ;
} else {
my $tool_tip = qq~~ ;
$tool_tip .= qq~<br><b>- Add WayBillNr</b>~ unless $waybill_nr_default_val ;
$tool_tip .= qq~<br><b>- Add Item(s)</b>~ unless $item_default_val ;
$tool_tip .= qq~<br><b>- Set Supplier to DCB</b>~ if $supplier_default_val != 2 ;
$val = qq~<i class="glyphicon glyphicon-remove" data-toggle='tooltip' data-placement='left' data-title='Before sending to DCB:$tool_tip'></i>~ ;
}
# # # if (!$dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to} && $db{$table}{$id}{logistics_item_ids} && $supp{$from_to} == 2) { # 2 = DCB Logistics
# # # $val = qq~<input name="$_\_$from_to\_$id" data-no-uniform="true" type="checkbox" id="$_\_$from_to\_$id" value="1" tabindex="$tindex">~ ;
# # # } elsif ($dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to} && $db{$table}{$id}{logistics_item_ids} && $supp{$from_to} == 2) { # 2 = DCB Logistics
# # # my $arrow_class = ($dcb_waybill_nr{$from_to} && $logistics_waybill_ids_hash{$id}{$from_to}) ? 'success' : 'danger' ;
# # # # my $to_arrow_class = ($dcb_waybill_nr{to} && $logistics_waybill_ids_hash{$id}{to}) ? 'success' : 'danger' ;
# # # # my $from_arrow_class = ($dcb_waybill_nr{from} && $logistics_waybill_ids_hash{$id}{from}) ? 'success' : 'danger' ;
# # # my $arrow_direction = ($from_to eq 'to') ? 'rigth' : 'left' ;
# # # my $dlg = qq~javascript:dlgMdl('$useropts{'scripts'}/dialog/dcb_trackntrace.pl?debug=1&waybillnr~;
# # # my $uc_from_to = uc $from_to ;
# # # $val = qq~<a class="btn btn-$arrow_class btn-round btn-xs" href="$dlg=$logistics_waybill_ids_hash{$id}{$from_to}','DCB&nbsp;Track&nbsp;&amp;&nbsp;Trace','','medium-dialog');" data-title='DCB Track &amp; Trace $uc_from_to Venue' data-toggle='tooltip' data-placement='top'><i class="glyphicon glyphicon-arrow-$arrow_direction"></i></a>~ ;
# # # # $val = qq~<a class="btn btn-$to_arrow_class btn-round btn-xs" href="$dlg=$logistics_waybill_ids_hash{$id}{to}','DCB&nbsp;Track&nbsp;&amp;&nbsp;Trace','','medium-dialog');" data-title='DCB Track &amp; Trace TO Venue' data-toggle='tooltip' data-placement='top'><i class="glyphicon glyphicon-arrow-right"></i></a>
# # # # <a class="btn btn-$from_arrow_class btn-round btn-xs" href="$dlg=$logistics_waybill_ids_hash{$id}{from}','DCB&nbsp;Track&nbsp;&amp;&nbsp;Trace','','medium-dialog');" data-title='DCB Track &amp; Trace FROM Venue' data-toggle='tooltip' data-placement='top'><i class="glyphicon glyphicon-arrow-left"></i></a>~ ;
# # # $nowrap = 'nowrap' ;
# # # } else {
# # # $val = qq~<i class="glyphicon glyphicon-remove" data-toggle='tooltip' data-placement='left' data-title='Before sending to DCB:<br><b>- Add WayBillNr</b><br><b>- Add Item(s)</b><br><b>- Set Supplier to DCB</b>'></i>~ ;
# # # }
}
} #------------------------------------------------------------------------------------------
sub logistics_jquery {
my ($from_to) = @_ ;
foreach my $system_id (keys %seen_system_cnt) {
chop $all_location_ids_per_system{$system_id} if $all_location_ids_per_system{$system_id} ;
}
my $update_ids_str = join(',',@update_ids) ;
my $selects_with_default_ids_str = join(',',@selects_with_default_ids) ;
my $table_with_default_ids_str = join(',',@table_with_default_ids) ;
my $dropdown_chosen_ids_str = join(',',@dropdown_chosen_ids) ;
# <span title data-toggle="tooltip" data-original-title="System in use!">
my $plus_item = ($is_dcb_partner) ? qq~<span title='' data-toggle='tooltip' data-placement='top' data-original-title='Deselect saved items to see all options once the page is saved again!'>ITEM</span>~ : qq~<span title='' data-toggle='tooltip' data-placement='top' data-original-title='Deselect saved items to see all options once the page is saved!'>ITEM</span><a href=javascript:dlgMdl('$useropts{'scripts'}/dialog/add_logistics_item.pl?add&$all_ids&$from_to','Add&nbsp;Item','','medium-dialog'); class='btn btn-primary btn-xs' style='padding:0px 2px 0px 3px;margin-top:0px;margin-left:75%;' title='Add Item' data-toggle='tooltip' data-placement='top'><i class='glyphicon glyphicon-plus' style='padding:0;margin-top:0px;top:0px;'></i></a>~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child($last_child{item})").html("$plus_item") ;
\$("#$useropts{table_id} tr th:nth-last-child($last_child{from})").html("<span title='' data-toggle='tooltip' data-placement='top' data-original-title='Deselect saved venues to see all options once the page is saved again!'>FROM</span>") ;
\$("#$useropts{table_id} tr th:nth-last-child($last_child{to})").html("<span title='' data-toggle='tooltip' data-placement='top' data-original-title='Deselect saved venues to see all options once the page is saved again!'>TO</span>") ;
\$('[data-toggle="tooltip"]').tooltip({
container: 'body'
});
~ ;
my $plus_poc = ($is_dcb_partner) ? 'POC' : qq~POC<a href=javascript:dlgMdl('$useropts{'scripts'}/dialog/add_poc.pl?add&$i{date_from}&$i{date_to}&$i{client_id}&$i{organisation_ids}&$i{supplier_id}&$i{status_id}&$i{region_id}&$from_to','Add&nbsp;POC','','medium-dialog'); class='btn btn-primary btn-xs' style='padding:0px 2px 0px 3px;margin-top:0px;margin-left:50%;' title='Add POC' data-toggle='tooltip' data-placement='top'><i class='glyphicon glyphicon-plus' style='padding:0;margin-top:0px;top:0px;'></i></a>~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child($last_child{poc})").html("$plus_poc") ;
~ ;
my $icon = qq~~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id}_wrapper").css("overflow","scroll");
\$("#$useropts{table_id}_wrapper").css("height","60vh");
// \$("#$useropts{table_id}_wrapper").css("overflow-y","hidden");
\$("#$useropts{table_id}").css("width","175%") ;
\$("#$useropts{table_id}").css("max-width","175%");
\$("#$useropts{table_id} tr th").slice(-3, -1).css("width","0%");
\$("#$useropts{table_id} tr th:nth-last-child(1)").css("width","0%");
~ ;
# if ($from_to eq 'to') {
# $icon = qq~<a href=javascript:selectAll(1); style='color:black;'><i class='glyphicons glyphicons-disk-open' title data-toggle='tooltip' data-placement='top' data-original-title='Create Waybill Out'></i></a>~ ;
# $trigger_jquery .= qq~
# \$("#$useropts{table_id} tr th:nth-last-child(3)").html("$icon") ;
# \$("#$useropts{table_id} tr th:nth-last-child(3) .glyphicons-disk-open").tooltip();
# ~ ;
# $trigger_jquery .= qq~
# \$("#$useropts{table_id} tr th").slice(-7, -3).css("width","7.5%");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{item})").css("width","13%");
# \$("#$useropts{table_id} tr th").slice(-15, -10).css("width","7.5%");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").css("width","4%");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").css("width","4.5%");
# ~ ;
# $icon = qq~<a href=javascript:selectAll(4); style='color:black;'><i class='glyphicons glyphicons-disk-saved' title data-toggle='tooltip' data-placement='top' data-original-title='Process Complete'></i></a>~ ;
# } else {
# $icon = qq~<a href=javascript:selectAll(2); style='color:black;'><i class='glyphicons glyphicons-disk-save' title data-toggle='tooltip' data-placement='top' data-original-title='Create Waybill In'></i></a>~ ;
# $icon = qq~<a href=javascript:selectAll(2); style='color:black;'><i class='glyphicons glyphicons-disk-save' title data-toggle='tooltip' data-placement='top' data-original-title='Create Waybill'></i></a>~ ;
# $trigger_jquery .= qq~
# \$("#$useropts{table_id} tr th:nth-last-child(3)").html("$icon") ;
# \$("#$useropts{table_id} tr th:nth-last-child(3) .glyphicons-disk-save").tooltip();
# ~ ;
# foreach (keys %last_child) { $trigger_jquery .= qq~\$("#$useropts{table_id} tr th:nth-last-child($last_child{$_})").css("width","7.5%");~ ; }
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child($last_child{other_from})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{other_to})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{system})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{from})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{to})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{supplier})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{poc})").css("width","7%");
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{item})").css("width","16%");
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").css("width","4%");
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").css("width","4.5%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{special_instructions})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{other_special_instructions})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{waybill_nr})").css("width","7%");
\$("#$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 th:nth-last-child($last_child{dcb_comments})").css("width","7%");
\$("#$useropts{table_id} tr th:nth-last-child($last_child{shipment_operator})").css("width","7%");
~ ;
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{other_from})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{other_to})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{system})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{from})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{to})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{supplier})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{poc})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{item})").css("min-width","320px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{item})").css("max-width","320px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").css("min-width","105px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").css("max-width","105px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").css("max-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{special_instructions})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{other_special_instructions})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{waybill_nr})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{status})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{received_by})").css("min-width","120px");
# \$("#$useropts{table_id} tr th:nth-last-child($last_child{dcb_comments})").css("min-width","120px");
# ~ ;
# $icon = qq~<a href=javascript:selectAll(3); style='color:black;'><i class='glyphicons glyphicons-disk-saved' title data-toggle='tooltip' data-placement='top' data-original-title='Process Complete'></i></a>~ ;
# }
# $icon = ($from_to eq 'from') ? qq~<a href=javascript:selectAll(3); style='color:black;'><i class='glyphicons glyphicons-disk-saved' title data-toggle='tooltip' data-placement='top' data-original-title='Process Complete'></i></a>~ : qq~<a href=javascript:selectAll(4); style='color:black;'><i class='glyphicons glyphicons-disk-saved' title data-toggle='tooltip' data-placement='top' data-original-title='Process Complete'></i></a>~ ;
$icon = qq~<a href=javascript:selectAll(2); style='color:black;'><i class='glyphicons glyphicons-disk-open' title data-toggle='tooltip' data-placement='top' data-original-title='Create Waybill'></i></a>~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child(2)").html("$icon").trigger("chosen:updated") ;
\$("#$useropts{table_id} tr th:nth-last-child(2) .glyphicons-disk-open").tooltip();
~ ;
$icon = qq~<i class='glyphicons glyphicons-ok' title data-toggle='tooltip' data-placement='top' data-original-title='Update'></i>~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child(1)").html("$icon") ;
\$("#$useropts{table_id} tr th:nth-last-child(1) .glyphicons-ok").tooltip() ;
~ ;
chop $quote_and_ops_ids if $quote_and_ops_ids ;
$trigger_jquery_raw .= qq~
function selectAll(col) {
let from_to = \$("#from_to").text() ;
let col_id = "" ;
if (col == '1') {
col_id = "create_waybill_out_" ;
} else if (col == '2') {
col_id = "create_waybill_in_" ;
}
// else if (col == '3') {
// col_id = "process_complete_from_" ;
// } else if (col == '4') {
// col_id = "process_complete_to_" ;
// }
let jsObject = {
$quote_and_ops_ids
};
for (let key in jsObject) {
let event_id = key ;
\$(\$("#$useropts{table_id}").dataTable().fnGetNodes()).find(\$("input[name='"+col_id+""+event_id+"']")).each(function () {
if(!\$(this).is(':checked')) {
\$(this).prop('checked',true);
} else {
\$(this).prop('checked',false);
}
}) ;
}
}
~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").html("DELIVERY DATE BY") ;
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date})").html("$icon") ;
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_date}) .glyphicons-calendar").tooltip() ;
~ ;
$trigger_jquery .= qq~
\$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").html("DELIVERY TIME BY") ;
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time})").html("$icon") ;
// \$("#$useropts{table_id} tr th:nth-last-child($last_child{delivery_time}) .glyphicon-time").tooltip() ;
~ ;
} #------------------------------------------------------------------------------------------
1 ;