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

(-)a/C4/Items.pm (+61 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
return a table of items not moved
1704
1705
=cut
1706
1707
sub MoveItemsFromBiblio {
1708
    my ($items_number, $frombiblio, $tobiblio) = @_;
1709
    my $dbh = C4::Context->dbh;
1710
1711
    my $nb_items = $dbh->selectrow_array(q|
1712
        SELECT COUNT(itemnumber)
1713
        FROM items
1714
        WHERE biblionumber = ?
1715
    |, undef, $frombiblio );
1716
1717
    #if items are not already moved
1718
    if ($nb_items){
1719
        my $tobiblioitem = $dbh->selectrow_array(q|
1720
            SELECT biblioitemnumber
1721
            FROM biblioitems
1722
            WHERE biblionumber = ?
1723
        |, undef, $tobiblio );
1724
1725
        $dbh->do(q|
1726
            UPDATE items
1727
            SET biblioitemnumber = ?,
1728
                biblionumber = ?
1729
            WHERE biblionumber = ?
1730
        |, undef, $tobiblioitem, $tobiblio, $frombiblio );
1731
1732
        ModZebra( $tobiblio, "specialUpdate", "biblioserver" );
1733
        ModZebra( $frombiblio, "specialUpdate", "biblioserver" );
1734
1735
        require C4::Acquisition;
1736
        my $where;
1737
        foreach my $item_number (@$items_number){
1738
            my $order = C4::Acquisition::GetOrderFromItemnumber($item_number);
1739
            if ($order) {
1740
                $order->{'biblionumber'} = $tobiblio;
1741
                C4::Acquisition::ModOrder($order);
1742
            }
1743
            $where .= " itemnumber = " . $item_number . " OR";
1744
        }
1745
        $where .= " itemnumber = " . @$items_number[0];
1746
1747
        # Update reserves, hold_fill_targets, tmp_holdsqueue and linktracker tables
1748
        for my $table_name ( qw( reserves hold_fill_targets tmp_holdsqueue linktracker ) ) {
1749
            $dbh->do( qq|
1750
                UPDATE $table_name
1751
                SET biblionumber = $tobiblio
1752
                WHERE $where | );
1753
        }
1754
    }
1755
    return;
1756
}
1757
1697
=head2 ItemSafeToDelete
1758
=head2 ItemSafeToDelete
1698
1759
1699
   ItemSafeToDelete( $biblionumber, $itemnumber);
1760
   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