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

(-)a/C4/Acquisition.pm (-1 / +2 lines)
Lines 1605-1610 sub CancelReceipt { Link Here
1605
1605
1606
    my $parent_ordernumber = $order->{'parent_ordernumber'};
1606
    my $parent_ordernumber = $order->{'parent_ordernumber'};
1607
1607
1608
    my @itemnumbers = GetItemnumbersFromOrder( $ordernumber );
1609
1608
    if($parent_ordernumber == $ordernumber || not $parent_ordernumber) {
1610
    if($parent_ordernumber == $ordernumber || not $parent_ordernumber) {
1609
        # The order line has no parent, just mark it as not received
1611
        # The order line has no parent, just mark it as not received
1610
        $query = qq{
1612
        $query = qq{
Lines 1668-1674 sub CancelReceipt { Link Here
1668
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
1670
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
1669
        my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceiptIsCancelled");
1671
        my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceiptIsCancelled");
1670
        if ( @affects ) {
1672
        if ( @affects ) {
1671
            my @itemnumbers = GetItemnumbersFromOrder( $parent_ordernumber );
1672
            for my $in ( @itemnumbers ) {
1673
            for my $in ( @itemnumbers ) {
1673
                my $biblionumber = C4::Biblio::GetBiblionumberFromItemnumber( $in );
1674
                my $biblionumber = C4::Biblio::GetBiblionumberFromItemnumber( $in );
1674
                my $frameworkcode = GetFrameworkCode($biblionumber);
1675
                my $frameworkcode = GetFrameworkCode($biblionumber);
(-)a/t/db_dependent/Acquisition/CancelReceipt.t (-12 / +16 lines)
Lines 2-8 Link Here
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
4
5
use Test::More tests => 3;
5
use Test::More tests => 4;
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 69-75 CancelReceipt($ordernumber); Link Here
69
my $order = GetOrder( $ordernumber );
69
my $order = GetOrder( $ordernumber );
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
$itemnumber = AddItem({}, $biblionumber);
72
my $itemnumber1 = AddItem({}, $biblionumber);
73
my $itemnumber2 = AddItem({}, $biblionumber);
73
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
74
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
74
t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9'); # notforloan is mapped with 952$7
75
t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9'); # notforloan is mapped with 952$7
75
( undef, $ordernumber ) = C4::Acquisition::NewOrder(
76
( undef, $ordernumber ) = C4::Acquisition::NewOrder(
Lines 81-103 t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9 Link Here
81
    }
82
    }
82
);
83
);
83
84
84
ModReceiveOrder(
85
NewOrderItem($itemnumber1, $ordernumber);
86
NewOrderItem($itemnumber2, $ordernumber);
87
88
my ( undef, $new_ordernumber ) = ModReceiveOrder(
85
    {
89
    {
86
        biblionumber     => $biblionumber,
90
        biblionumber     => $biblionumber,
87
        ordernumber      => $ordernumber,
91
        ordernumber      => $ordernumber,
88
        quantityreceived => 2,
92
        quantityreceived => 1,
89
        datereceived     => dt_from_string
93
        datereceived     => dt_from_string,
94
        received_items   => [ $itemnumber1 ],
90
    }
95
    }
91
);
96
);
92
97
93
NewOrderItem($itemnumber, $ordernumber);
98
CancelReceipt($new_ordernumber);
94
99
95
CancelReceipt($ordernumber);
100
is(scalar( GetItemnumbersFromOrder($ordernumber) ), 2, "Create items on ordering: items are not deleted after cancelling a receipt");
96
101
97
$order = GetOrder( $ordernumber );
102
my $item1 = C4::Items::GetItem( $itemnumber1 );
98
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "Create items on ordering: items are not deleted after cancelling a receipt");
103
is( $item1->{notforloan}, 9, "The notforloan value has been updated with '9'" );
99
104
100
my $item = C4::Items::GetItem( $itemnumber );
105
my $item2 = C4::Items::GetItem( $itemnumber2 );
101
is( $item->{notforloan}, 9, "The notforloan value has been updated with '9'" );
106
is( $item2->{notforloan}, 0, "The notforloan value has been updated with '9'" );
102
107
103
$dbh->rollback;
108
$dbh->rollback;
104
- 

Return to bug 12557