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

(-)a/C4/Items.pm (+59 lines)
Lines 1694-1699 sub MoveItemFromBiblio { Link Here
1694
    return;
1694
    return;
1695
}
1695
}
1696
1696
1697
=head2 MoveItemsFromBiblio
1698
1699
  MoveItemsFromBiblio($items_number, $frombiblio, $tobiblio);
1700
1701
Moves all items from a biblio record to another
1702
1703
=cut
1704
1705
sub MoveItemsFromBiblio {
1706
    my ($items_number, $frombiblio, $tobiblio) = @_;
1707
    my $dbh = C4::Context->dbh;
1708
1709
    my $nb_items = $dbh->selectrow_array(q|
1710
        SELECT COUNT(itemnumber)
1711
        FROM items
1712
        WHERE biblionumber = ?
1713
    |, undef, $frombiblio );
1714
1715
    #if items are not already moved
1716
    if ($nb_items){
1717
        my $tobiblioitem = $dbh->selectrow_array(q|
1718
            SELECT biblioitemnumber
1719
            FROM biblioitems
1720
            WHERE biblionumber = ?
1721
        |, undef, $tobiblio );
1722
1723
        $dbh->do(q|
1724
            UPDATE items
1725
            SET biblioitemnumber = ?,
1726
                biblionumber = ?
1727
            WHERE biblionumber = ?
1728
        |, undef, $tobiblioitem, $tobiblio, $frombiblio );
1729
1730
        ModZebra( $tobiblio, "specialUpdate", "biblioserver" );
1731
        ModZebra( $frombiblio, "specialUpdate", "biblioserver" );
1732
1733
        require C4::Acquisition;
1734
        my $where;
1735
        foreach my $item_number (@$items_number){
1736
            my $order = C4::Acquisition::GetOrderFromItemnumber($item_number);
1737
            if ($order) {
1738
                $order->{'biblionumber'} = $tobiblio;
1739
                C4::Acquisition::ModOrder($order);
1740
            }
1741
            $where .= " itemnumber = " . $item_number . " OR";
1742
        }
1743
        $where .= " itemnumber = " . @$items_number[0];
1744
1745
        # Update reserves, hold_fill_targets, tmp_holdsqueue and linktracker tables
1746
        for my $table_name ( qw( reserves hold_fill_targets tmp_holdsqueue linktracker ) ) {
1747
            $dbh->do( qq|
1748
                UPDATE $table_name
1749
                SET biblionumber = $tobiblio
1750
                WHERE $where | );
1751
        }
1752
    }
1753
    return;
1754
}
1755
1697
=head2 ItemSafeToDelete
1756
=head2 ItemSafeToDelete
1698
1757
1699
   ItemSafeToDelete( $biblionumber, $itemnumber);
1758
   ItemSafeToDelete( $biblionumber, $itemnumber);
(-)a/cataloguing/merge.pl (-10 / +4 lines)
Lines 81-87 if ($merge) { Link Here
81
    $record->leader(GetMarcBiblio({ biblionumber => $ref_biblionumber })->leader());
81
    $record->leader(GetMarcBiblio({ biblionumber => $ref_biblionumber })->leader());
82
82
83
    my $frameworkcode = $input->param('frameworkcode');
83
    my $frameworkcode = $input->param('frameworkcode');
84
    my @notmoveditems;
85
84
86
    # Modifying the reference record
85
    # Modifying the reference record
87
    ModBiblio($record, $ref_biblionumber, $frameworkcode);
86
    ModBiblio($record, $ref_biblionumber, $frameworkcode);
Lines 89-105 if ($merge) { Link Here
89
    # Moving items from the other record to the reference record
88
    # Moving items from the other record to the reference record
90
    foreach my $biblionumber (@biblionumbers) {
89
    foreach my $biblionumber (@biblionumbers) {
91
        my $items = Koha::Items->search({ biblionumber => $biblionumber });
90
        my $items = Koha::Items->search({ biblionumber => $biblionumber });
91
        my @items_number;
92
92
        while ( my $item = $items->next) {
93
        while ( my $item = $items->next) {
93
            my $res = MoveItemFromBiblio( $item->itemnumber, $biblionumber, $ref_biblionumber );
94
            push @items_number, $item->itemnumber;
94
            if ( not defined $res ) {
95
                push @notmoveditems, $item->itemnumber;
96
            }
97
        }
95
        }
98
    }
96
        C4::Items::MoveItemsFromBiblio(\@items_number, $biblionumber, $ref_biblionumber);
99
    # If some items could not be moved :
100
    if (scalar(@notmoveditems) > 0) {
101
        my $itemlist = join(' ',@notmoveditems);
102
        push @errors, { code => "CANNOT_MOVE", value => $itemlist };
103
    }
97
    }
104
98
105
    my $sth_subscription = $dbh->prepare("
99
    my $sth_subscription = $dbh->prepare("
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tt (-2 / +1 lines)
Lines 212-218 div#result { margin-top: 1em; } Link Here
212
                    'subfields': []
212
                    'subfields': []
213
                };
213
                };
214
                for (tag in tagslib) {
214
                for (tag in tagslib) {
215
                    if (tag == '000' || tag == '001')
215
                    if (tag == '000' || tag == '001' || tag == '801')
216
                        continue;
216
                        continue;
217
                    if (tagslib[tag].mandatory == 1) {
217
                    if (tagslib[tag].mandatory == 1) {
218
                        if ($("#resultul span.field:contains("+ tag +")").length == 0) {
218
                        if ($("#resultul span.field:contains("+ tag +")").length == 0) {
219
- 

Return to bug 22690