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

(-)a/C4/Acquisition.pm (+20 lines)
Lines 1665-1670 sub CancelReceipt { Link Here
1665
1665
1666
    }
1666
    }
1667
1667
1668
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
1669
        my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceiptIsCancelled");
1670
        if ( @affects ) {
1671
            my @itemnumbers = GetItemnumbersFromOrder( $parent_ordernumber );
1672
            for my $in ( @itemnumbers ) {
1673
                my $biblionumber = C4::Biblio::GetBiblionumberFromItemnumber( $in );
1674
                my $frameworkcode = GetFrameworkCode($biblionumber);
1675
                my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber', $frameworkcode );
1676
                my $item = C4::Items::GetMarcItem( $biblionumber, $in );
1677
                for my $affect ( @affects ) {
1678
                    my ( $sf, $v ) = split q{=}, $affect, 2;
1679
                    foreach ( $item->field($itemfield) ) {
1680
                        $_->update( $sf => $v );
1681
                    }
1682
                }
1683
                C4::Items::ModItemFromMarc( $item, $biblionumber, $in );
1684
            }
1685
        }
1686
    }
1687
1668
    return $parent_ordernumber;
1688
    return $parent_ordernumber;
1669
}
1689
}
1670
1690
(-)a/t/db_dependent/Acquisition/CancelReceipt.t (-2 / +5 lines)
Lines 2-8 Link Here
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
4
5
use Test::More tests => 2;
5
use Test::More tests => 3;
6
use C4::Context;
6
use C4::Context;
7
use C4::Acquisition;
7
use C4::Acquisition;
8
use C4::Biblio;
8
use C4::Biblio;
Lines 70-75 my $order = GetOrder( $ordernumber ); Link Here
70
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 0, "Create items on receiving: 0 item exist after cancelling a receipt");
70
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 0, "Create items on receiving: 0 item exist after cancelling a receipt");
71
71
72
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
72
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
73
t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9'); # notforloan is mapped with 952$7
73
( undef, $ordernumber ) = C4::Acquisition::NewOrder(
74
( undef, $ordernumber ) = C4::Acquisition::NewOrder(
74
    {
75
    {
75
        basketno => $basketno1,
76
        basketno => $basketno1,
Lines 95-98 CancelReceipt($ordernumber); Link Here
95
$order = GetOrder( $ordernumber );
96
$order = GetOrder( $ordernumber );
96
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "Create items on ordering: items are not deleted after cancelling a receipt");
97
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "Create items on ordering: items are not deleted after cancelling a receipt");
97
98
99
my $item = C4::Items::GetItem( $itemnumber );
100
is( $item->{notforloan}, 9, "The notforloan value has been updated with '9'" );
101
98
$dbh->rollback;
102
$dbh->rollback;
99
- 

Return to bug 12557