aisa/scripts/pocs.pl
2025-11-26 11:31:54 +02:00

316 lines
9.0 KiB
Perl

#!/usr/bin/perl
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
require cfg ;
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
use CGI::Carp qw(fatalsToBrowser);
use CGI;
&today;
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ARGV = split(/\\*\&/, $ENV{'QUERY_STRING'});
$action = $ARGV[0] ;
our ($q) = CGI -> new() ;
our $iaction = $q -> param('iaction') || $action ;
our $isaved = $q -> param('isaved') || '' ;
# our $debug = 1 ;
our $open_new_tab = qq~target="_blank"~ ; # opens booking page in a new tab
#-------- page opts --------------------------------------------------------------------------------------------------------------------------------------------------
&page_opts ;
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------
print "Content-type: text/html\n\n";
&common_min_action;
exit;
#------------------------------------------------------------------------------------------
sub validate {
my $exists = '' ;
$i{name} = &common_fix_str($i{name}) ;
&db_min_ro($table,'*',"name='$i{name}'",'name','') ;
foreach my $id (keys %{$db{$table}}) { if (lc $db{$table}{$id}{name} eq lc $i{name}) { $exists = 1 ; } }
if ($exists) {
$alert = &common_min_alert('warning',"POC NAME ALREADY EXISTS!",'ok') ;
%col_name = () ;
&common_min_add_screen ;
&common_min_screen1 ;
}
# REMOVE LATER -----------------
&db_min_ro('regions','id,code',"id='$i{region_id}'",'','') if $i{region_id} ;
$i{region_code} = $db{regions}{$i{region_id}}{code} if $i{region_id} ;
# REMOVE LATER -----------------
} #------------------------------------------------------------------------------------------
sub insert {
&add_db_fields ;
$i{id} = &db_min_get_max($table,'id') ;
$i{contact_nr} = &process_number($i{contact_nr}) ;
&db_min_insert($table) ;
} #------------------------------------------------------------------------------------------
sub update {
unless ($i{id}) { $error = qq(NO ID) ; return ; }
&edit_db_fields ;
$i{contact_nr} = &process_number($i{contact_nr}) ;
&db_min_upd($table,"id='$i{id}'") ;
} #------------------------------------------------------------------------------------------
sub process_number {
my ($number) = @_ ;
$number =~ s/ //g ;
$number =~ s/\+//g ;
return $number ;
} #------------------------------------------------------------------------------------------
sub list_screen {
our %poc_is_used = () ;
&db_min_ro('event_quotes',"id,poc_id","`poc_id` <> '0'",'','') ;
foreach my $_id (keys %{$db{event_quotes}}) {
$poc_is_used{aisa}{$db{event_quotes}{$_id}{poc_id}} .= qq~$_id;~ ;
}
&db_switch_conn('sss') ;
&db_min_ro('event_quotes',"id,poc_id","`poc_id` <> '0'",'','') ;
foreach my $_id (keys %{$db{event_quotes}}) {
$poc_is_used{sss}{$db{event_quotes}{$_id}{poc_id}} .= qq~$_id;~ ;
}
&db_switch_conn('aisa') ;
&db_min_ro($table,'*','','','') ;
foreach my $id (keys %{$db{$table}}) {
my $edit_butt = qq~&nbsp;<a class="btn btn-default btn-xs" href="#" title="Request user rights in order to edit." data-toggle="tooltip"><i class="glyphicon glyphicon-edit icon-white"></i></a>~ ;
my $del_butt = qq~&nbsp;<a class="btn btn-default btn-xs" href="#" title="Request user rights in order to delete." data-toggle="tooltip"><i class="glyphicon glyphicon-trash icon-white"></i></a>~ ;
if ($glod_user_level >= 3) {
$edit_butt = qq~&nbsp;<a class="btn btn-info btn-xs" href="javascript:editMinItem('$db{$table}{$id}{id}','pocs');"><i class="glyphicon glyphicon-edit icon-white"></i></a>~ ;
}
if ($glod_user_level >= 3) {
$del_butt = qq~&nbsp;<a class="btn btn-danger btn-xs" href="javascript:deleteMinItem('$db{$table}{$id}{name}','$db{$table}{$id}{id}')"><i class="glyphicon glyphicon-trash icon-white"></i></a>~ ;
}
if (($poc_is_used{aisa}{$id} || $poc_is_used{sss}{$id}) && $db{$table}{$id}{name} && $db{$table}{$id}{contact_nr}) {
$edit_butt = qq~~ ;
}
if ($poc_is_used{aisa}{$id} || $poc_is_used{sss}{$id}) {
# $edit_butt = qq~&nbsp;<a class="btn btn-default btn-xs" href="#" title="In system use!" data-toggle="tooltip"><i class="glyphicon glyphicon-edit icon-white"></i></a>~ ;
$del_butt = qq~&nbsp;<a class="btn btn-default btn-xs" href="#" title="In system use!" data-toggle="tooltip"><i class="glyphicon glyphicon-trash icon-white"></i></a>~ ;
if ($poc_is_used{aisa}{$id}) {
my $row_cnt = 1 ; my $flag_cnt = 0 ;
foreach (split(/\;/,$poc_is_used{aisa}{$id})) {
next unless $_ ;
$flag_cnt++ ;
if (($flag_cnt == 20 && $row_cnt == 1 && $edit_butt) || ($flag_cnt == 22 && $row_cnt == 1 && !$edit_butt) || ($flag_cnt == 23 && $row_cnt > 1 && $edit_butt) || ($flag_cnt == 23 && $row_cnt > 1 && !$edit_butt)) {
$del_butt .= qq~<br>~ ;
$row_cnt++ ;
$flag_cnt = 0 ;
}
$del_butt .= qq~<span title="Event Quote : $_" data-toggle="tooltip" data-placement="top"><a href="javascript:editMinItem('$_','event-quotes');" style="color:black;"><i class="glyphicons glyphicons-pin-flag icon-white"></i></a></span>~ ;
}
}
}
my $disp_nr = $db{$table}{$id}{contact_nr} ;
if (length($disp_nr) == 11) {
$disp_nr = substr($disp_nr,0,2) . ' ' . substr($disp_nr,2,2) . ' ' . substr($disp_nr,4,3) . ' ' . substr($disp_nr,7,4) ;
$disp_nr = '+' . $disp_nr if $disp_nr =~ /^27/ ;
}
$print_tbody .= qq~
<tr id="$id">
<td>$id</td>
<td>$db{$table}{$id}{name}</td>
<td>$disp_nr</td>
<td>
$edit_butt
$del_butt
</td>
</tr>
~ ;
}
} #------------------------------------------------------------------------------------------
sub add_db_fields {
&sort_fields;
&hidden_db_fields;
# $ignore{id} = 1 ;
} #------------------------------------------------------------------------------------------
sub edit_db_fields {
&hidden_db_fields;
&sort_fields;
$hidden{id} = 1 ; # 1 = bypass for db update
} #------------------------------------------------------------------------------------------
sub hidden_db_fields {
$ignore{iaction} = 1 ;
$required{name} = 1 ;
$required{contact_nr} = 1 ;
} #------------------------------------------------------------------------------------------
sub sort_fields {
our %poc_is_used = () ;
&db_min_ro('event_quotes',"id,poc_id","`poc_id` <> '0'",'','') ;
foreach my $_id (keys %{$db{event_quotes}}) {
$poc_is_used{aisa}{$db{event_quotes}{$_id}{poc_id}} .= qq~$_id;~ ;
}
&db_switch_conn('sss') ;
&db_min_ro('event_quotes',"id,poc_id","`poc_id` <> '0'",'','') ;
foreach my $_id (keys %{$db{event_quotes}}) {
$poc_is_used{sss}{$db{event_quotes}{$_id}{poc_id}} .= qq~$_id;~ ;
}
&db_switch_conn('aisa') ;
%sort_field = () ;
$sort_field{1} = 'name' ;
$sort_field{2} = 'contact_nr' ;
if ($poc_id_used{aisa}{$i{id}} || $poc_id_used{sss}{$i{id}}) {
$required{name} = 0 ;
$required{contact_nr} = 0 ;
$readonly{contact_nr} = "READONLY" ;
$readonly{name} = "READONLY" ;
} else {
$required{name} = 1 ;
$required{contact_nr} = 1 ;
}
if ($db{$table}{$i{id}}{name} && !$db{$table}{$i{id}}{contact_nr}) {
$readonly{name} = "READONLY" ;
$readonly{contact_nr} = "" ;
} elsif ($db{$table}{$i{id}}{name} && $db{$table}{$i{id}}{contact_nr}) {
$readonly{contact_nr} = "READONLY" ;
$readonly{name} = "READONLY" ;
} else {
$readonly{contact_nr} = "" ;
$readonly{name} = "" ;
}
my $disp_nr = $db{$table}{$i{id}}{contact_nr} ;
if (length($disp_nr) == 11) {
$disp_nr = substr($disp_nr,0,2) . ' ' . substr($disp_nr,2,2) . ' ' . substr($disp_nr,4,3) . ' ' . substr($disp_nr,7,4) ;
$disp_nr = '+' . $disp_nr if $disp_nr =~ /^27/ ;
}
$db{$table}{$i{id}}{contact_nr} = $disp_nr ;
} #-------------------------------------------------------------------------------
sub add_screen {
# called from common_add_screen
&select_opts ;
} #------------------------------------------------------------------------------------------
sub edit_screen {
&select_opts ;
} #------------------------------------------------------------------------------------------
sub select_opts {
} #------------------------------------------------------------------------------------------
sub thead {
$print_thead = qq~
<THEAD>
<TR>
<TH>ID</TH>
<TH>NAME</TH>
<TH>CONTACT NUMBER</TH>
<TH>&nbsp;</TH>
</TR>
</THEAD>
~ ;
} #-------------------------------------------------------------------------------
sub page_opts {
our $glyphicon = 'map-marker' ;
our $lcpage = 'pocs' ; $ucpage = uc $lcpage ; $ucfirstpage = ucfirst $lcpage ;
our $table = 'event_quotes_poc' ;
$s{no} = 1 ;
&common_min_add_extras ;
} #-------------------------------------------------------------------------------
use common ;
use today ;
1;