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

97 lines
4.2 KiB
Perl

#!/usr/bin/perl
print "Content-type: text/html\n\n";
BEGIN { use lib '/usr/home/cfg' ; require push_inc ; }
require cfg ;
&today ;
#------------------------------------------------------------------------------------------
@ARGV = split(/\\*\&/, $ENV{'QUERY_STRING'});
my $event_id = $ARGV[0] ;
my $system_id = $ARGV[1] ;
my $production_seconds = $ARGV[2] ;
my $cloud_recording_seconds = $ARGV[3] ;
my $event_code = $ARGV[4] ;
#------------------------------------------------------------------------------------------
use DBI;
use CGI::Carp qw(fatalsToBrowser);
exit if !$event_id || !$system_id ;
&db_min_ro('event_production_time_unmatched','1,unmatched_line,id',"unmatched_line LIKE '%$event_code'",'','') ;
if ($db{event_production_time_unmatched}{1}{unmatched_line}) {
# print "\n DELETE FROM event_production_time_unmatched WHERE id = '$db{event_production_time_unmatched}{1}{id}'" ;
&db_min_delete('event_production_time_unmatched',"`id`='$db{event_production_time_unmatched}{1}{id}'") ;
}
&db_min_ro('event_production_time','1,event_system_production_seconds,event_system_cloud_recording_seconds,quote_id,matched_events',"quote_id='$event_id'") ;
our %i = () ; my %ii = () ;
if ($db{event_production_time}{1}{event_system_production_seconds}) {
foreach (sort split(/\|/,$db{event_production_time}{1}{event_system_production_seconds})) {
my @abc = split(/\:/,$_) ;
$ii{$event_id}{$abc[0]}{event_system_production_seconds} += $abc[1] ;
}
}
if ($db{event_production_time}{1}{event_system_cloud_recording_seconds}) {
foreach (sort split(/\|/,$db{event_production_time}{1}{event_system_cloud_recording_seconds})) {
my @abc = split(":",$_) ;
$ii{$event_id}{$abc[0]}{event_system_cloud_recording_seconds} += $abc[1] ;
}
}
$ii{$event_id}{matched_events} = $db{event_production_time}{1}{matched_events} ;
if ($ii{$i{$_}}{matched_events} !~ /$event_code/) {
$ii{$event_id}{$system_id}{event_system_production_seconds} += $production_seconds ;
$ii{$event_id}{$system_id}{event_system_cloud_recording_seconds} += $cloud_recording_seconds ;
$ii{$event_id}{matched_events} .= ($ii{$event_id}{matched_events}) ? qq~|$event_code~ : qq~$event_code~ ;
}
foreach my $sys_id (sort keys %{$ii{$event_id}}) {
next if $sys_id eq 'matched_events' ;
$i{event_system_production_seconds} .= qq~$sys_id:$ii{$event_id}{$sys_id}{event_system_production_seconds}|~ ;
$i{event_system_cloud_recording_seconds} .= qq~$sys_id:$ii{$event_id}{$sys_id}{event_system_cloud_recording_seconds}|~ ;
}
chop $i{event_system_production_seconds} if $i{event_system_production_seconds} ;
chop $i{event_system_cloud_recording_seconds} if $i{event_system_cloud_recording_seconds} ;
$i{matched_events} = $ii{$event_id}{matched_events} ;
$i{quote_id} = $event_id ;
$ignore{event_system_production_seconds} = 1 if $i{event_system_production_seconds} && $i{event_system_production_seconds} eq $db{event_production_time}{1}{event_system_production_seconds} ;
$ignore{event_system_cloud_recording_seconds} = 1 if $i{event_system_cloud_recording_seconds} && $i{event_system_cloud_recording_seconds} eq $db{event_production_time}{1}{event_system_cloud_recording_seconds} ;
$ignore{matched_events} = 1 if $i{matched_events} && $i{matched_events} eq $db{event_production_time}{1}{matched_events} ;
if ($db{event_production_time}{1}{quote_id}) {
$ignore{quote_id} = 1 ;
&db_min_upd('event_production_time',"quote_id='$event_id'") ;
# print "\n UPDATE event_production_time SET event_system_production_seconds='$i{event_system_production_seconds}',event_system_cloud_recording_seconds='$i{event_system_cloud_recording_seconds}',matched_events='$i{matched_events}' WHERE quote_id='$event_id'" ;
} else {
# print "\n INSERT INTO event_production_time (event_system_production_seconds,event_system_cloud_recording_seconds,matched_events,quote_id) VALUES ($i{event_system_production_seconds},$i{event_system_cloud_recording_seconds},$i{matched_events},$i{quote_id})" ;
$i{id} = &db_min_get_max('event_production_time','id') ;
&db_min_insert('event_production_time') ;
}
exit ;
#------------------------------------------------------------------------------------------
use db ;
use today ;
use common ;
1;