View | Details | Raw Unified | Return to bug 35104
Collapse All | Expand All

(-)a/C4/Biblio.pm (-2 / +8 lines)
Lines 319-326 sub AddBiblio { Link Here
319
            $indexer->index_records( $biblionumber, "specialUpdate", "biblioserver" );
319
            $indexer->index_records( $biblionumber, "specialUpdate", "biblioserver" );
320
        }
320
        }
321
    } catch {
321
    } catch {
322
        warn $_;
322
        my $error = $_;
323
        ( $biblionumber, $biblioitemnumber ) = ( undef, undef );
323
        if ( ref($error) eq 'Koha::Exceptions::Metadata::Invalid' ) {
324
            ( $biblionumber, $biblioitemnumber ) = ( undef, undef );
325
            $error->rethrow;
326
        } else {
327
            warn $error;
328
            ( $biblionumber, $biblioitemnumber ) = ( undef, undef );
329
        }
324
    };
330
    };
325
    return ( $biblionumber, $biblioitemnumber );
331
    return ( $biblionumber, $biblioitemnumber );
326
}
332
}
(-)a/cataloguing/addbiblio.pl (-56 / +67 lines)
Lines 20-26 Link Here
20
20
21
use Modern::Perl;
21
use Modern::Perl;
22
use CGI;
22
use CGI;
23
use POSIX     qw( strftime );
23
use POSIX     qw(strftime);
24
use Try::Tiny qw(catch try);
24
use Try::Tiny qw(catch try);
25
25
26
use C4::Output qw( output_html_with_http_headers );
26
use C4::Output qw( output_html_with_http_headers );
Lines 703-774 if ( $op eq "cud-addbiblio" ) { Link Here
703
    # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
703
    # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
704
    if ( !$duplicatebiblionumber or $confirm_not_duplicate ) {
704
    if ( !$duplicatebiblionumber or $confirm_not_duplicate ) {
705
        my $oldbibitemnum;
705
        my $oldbibitemnum;
706
        if ($is_a_modif) {
706
        my $encode_error = try {
707
            ModBiblio(
707
            if ( $is_a_modif ) {
708
                $record,
708
                ModBiblio(
709
                $biblionumber,
709
                    $record,
710
                $frameworkcode,
710
                    $biblionumber,
711
                {
711
                    $frameworkcode,
712
                    overlay_context => {
712
                    {
713
                        source       => $z3950 ? 'z3950' : 'intranet',
713
                        overlay_context => {
714
                        categorycode => $logged_in_patron->categorycode,
714
                            source       => $z3950 ? 'z3950' : 'intranet',
715
                        userid       => $logged_in_patron->userid,
715
                            categorycode => $logged_in_patron->categorycode,
716
                            userid       => $logged_in_patron->userid,
717
                        }
716
                    }
718
                    }
717
                }
719
                );
718
            );
720
            } else {
719
        } else {
721
                ( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode );
720
            ( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode );
722
            }
721
        }
723
            return 0;
722
        if ( $redirect eq "items"
724
        } catch {
723
            || ( $mode ne "popup" && !$is_a_modif && $redirect ne "view" && $redirect ne "just_save" ) )
725
            my $exception = $_;
724
        {
726
            if ( ref($exception) eq 'Koha::Exceptions::Metadata::Invalid' ) {
725
            if ( $frameworkcode eq 'FA' ) {
727
                $template->param( INVALID_METADATA => $exception );
726
                print $input->redirect( '/cgi-bin/koha/cataloguing/additem.pl?'
727
                        . 'biblionumber='
728
                        . $biblionumber
729
                        . '&frameworkcode='
730
                        . $frameworkcode
731
                        . '&circborrowernumber='
732
                        . $fa_circborrowernumber
733
                        . '&branch='
734
                        . $fa_branch
735
                        . '&barcode='
736
                        . uri_escape_utf8($fa_barcode)
737
                        . '&stickyduedate='
738
                        . $fa_stickyduedate
739
                        . '&duedatespec='
740
                        . $fa_duedatespec );
741
                exit;
742
            } else {
728
            } else {
743
                print $input->redirect(
729
                $exception->rethrow;
730
            }
731
            return 1;
732
        };
733
        if (!$encode_error && ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view" && $redirect ne "just_save"))){
734
            if ($frameworkcode eq 'FA'){
735
            print $input->redirect(
736
                '/cgi-bin/koha/cataloguing/additem.pl?'
737
                .'biblionumber='.$biblionumber
738
                .'&frameworkcode='.$frameworkcode
739
                .'&circborrowernumber='.$fa_circborrowernumber
740
                .'&branch='.$fa_branch
741
                .'&barcode='.uri_escape_utf8($fa_barcode)
742
                .'&stickyduedate='.$fa_stickyduedate
743
                .'&duedatespec='.$fa_duedatespec
744
            );
745
            exit;
746
            }
747
            else {
748
            print $input->redirect(
744
                    "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid"
749
                    "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid"
745
                );
750
            );
746
                exit;
751
            exit;
747
            }
752
            }
748
        } elsif ( ( $is_a_modif || $redirect eq "view" ) && $redirect ne "just_save" ) {
753
        } elsif(!$encode_error && (($is_a_modif || $redirect eq "view") && $redirect ne "just_save")){
749
            my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
754
            my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
750
            my $views       = {C4::Search::enabled_staff_search_views};
755
            my $views = { C4::Search::enabled_staff_search_views };
751
            if ( $defaultview eq 'isbd' && $views->{can_view_ISBD} ) {
756
            if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
752
                print $input->redirect(
757
                print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
753
                    "/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
758
            } elsif  ($defaultview eq 'marc' && $views->{can_view_MARC}) {
754
            } elsif ( $defaultview eq 'marc' && $views->{can_view_MARC} ) {
759
                print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid");
755
                print $input->redirect(
760
            } elsif  ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
756
                    "/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid"
761
                print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
757
                );
758
            } elsif ( $defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC} ) {
759
                print $input->redirect(
760
                    "/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
761
            } else {
762
            } else {
762
                print $input->redirect(
763
                print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
763
                    "/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
764
            }
764
            }
765
            exit;
765
            exit;
766
766
        }
767
        } elsif ( $redirect eq "just_save" ) {
767
        elsif ( !$encode_error && ( $redirect eq "just_save" ) ) {
768
            my $tab = $input->param('current_tab');
768
            my $tab = $input->param('current_tab');
769
            print $input->redirect(
769
            print $input->redirect(
770
                "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=$biblionumber&framework=$frameworkcode&tab=$tab&searchid=$searchid"
770
                "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=$biblionumber&framework=$frameworkcode&tab=$tab&searchid=$searchid"
771
            );
771
            );
772
        } elsif ($encode_error) {
773
            build_tabs( $template, $record, $dbh, $encoding, $input );
774
            $template->param(
775
                biblionumber   => $biblionumber,
776
                popup          => $mode,
777
                frameworkcode  => $frameworkcode,
778
                itemtype       => $frameworkcode,
779
                borrowernumber => $loggedinuser,
780
                tab            => scalar $input->param('tab')
781
            );
782
            output_html_with_http_headers $input, $cookie, $template->output;
783
            exit;
772
        } else {
784
        } else {
773
            $template->param(
785
            $template->param(
774
                biblionumber => $biblionumber,
786
                biblionumber => $biblionumber,
775
- 

Return to bug 35104