diff options
-rwxr-xr-x | lib/RHRD/rddb.pm | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm index 3a6bf21..48aed35 100755 --- a/lib/RHRD/rddb.pm +++ b/lib/RHRD/rddb.pm @@ -264,6 +264,8 @@ sub create_log_table $sth->execute(RD_FADE_DEPTH, RD_FADE_DEPTH, RD_FADE_DEPTH) or return (undef, 'ERROR', "Database Error: " . $sth->errstr); + $sth->finish(); + return (1, 'OK', 'success'); } @@ -274,15 +276,26 @@ sub fill_log_table my @carts = @_; $logname = get_log_table_name($ctx, $logname); - my $sql = qq{insert into $logname (ID, COUNT, START_TIME, CART_NUMBER, TRANS_TYPE) values (?, ?, ?, ?, ?);}; + my $sql_log = qq{insert into $logname (ID, COUNT, TYPE, START_TIME, CART_NUMBER, TRANS_TYPE) values (?, ?, ?, ?, ?, ?);}; + my $sql_cart_type = qq{select TYPE from CART where NUMBER = ?;}; - my $sth = $ctx->{'dbh'}->prepare($sql) + my $sth_log = $ctx->{'dbh'}->prepare($sql_log) + or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); + + my $sth_cart_type = $ctx->{'dbh'}->prepare($sql_cart_type) or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); my $cnt = 0; for my $cart (@carts) { - $sth->execute($cnt + 1, $cnt, $cart->{'START_TIME'}, $cart->{'NUMBER'}, $cart->{'TRANS_TYPE'}) - or return (undef, 'ERROR', "Database Error: " . $sth->errstr); + $sth_cart_type->execute($cart->{'NUMBER'}) + or return (undef, 'ERROR', "Database Error: " . $sth_log->errstr); + + my ($type) = $sth_cart_type->fetchrow_array; + $type = 0 unless(defined($type) && $type == 2); + + $sth_log->execute($cnt + 1, $cnt, $type, $cart->{'START_TIME'}, $cart->{'NUMBER'}, $cart->{'TRANS_TYPE'}) + or return (undef, 'ERROR', "Database Error: " . $sth_log->errstr); + $sth_log->finish(); $cnt++; } @@ -861,6 +874,7 @@ sub get_dropboxes my ($title, $log, $status, $errorstring) = get_show_title_and_log($ctx, $to_cart); unless (defined $title && defined $log) { + $sth->finish(); return (undef, $status, $errorstring); } $entry->{'SHOWTITLE'} = $title; @@ -934,6 +948,7 @@ sub list_shows $entry->{'ID'} = $to_cart; my ($title, $log, $status, $errorstring) = get_show_title_and_log($ctx, $to_cart); unless (defined $title && defined $log) { + $sth->finish(); return (undef, $status, $errorstring); } $entry->{'TITLE'} = $title; @@ -1017,6 +1032,8 @@ sub get_show_group or return (undef, 'ERROR', "Database Error: " . $sth->errstr); my ($groupname) = $sth->fetchrow_array(); + $sth->finish(); + unless(defined($groupname)) { return (undef, 'ERROR', "Show not found"); } @@ -1035,6 +1052,8 @@ sub get_show_group_cart_range or return (undef, undef, 'ERROR', "Database Error: " . $sth->errstr); my ($group_low_cart, $group_high_cart) = $sth->fetchrow_array(); + $sth->finish(); + unless(defined($group_low_cart) && defined($group_high_cart)) { return (undef, undef, 'ERROR', "Show not found"); } @@ -1337,8 +1356,8 @@ sub remove_show my $cnt = 0; for my $cart (@show_carts) { $cnt += ($sth->execute($cart) or return (undef, 'ERROR', "Database Error: " . $sth->errstr)); + $sth->finish(); } - $sth->finish(); push @actions, { name => 'audio carts', cnt => $cnt }; } |