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

(-)a/C4/Acquisition.pm (+20 lines)
Lines 1680-1685 sub CancelReceipt { Link Here
1680
1680
1681
    }
1681
    }
1682
1682
1683
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
1684
        my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceiptIsCancelled");
1685
        if ( @affects ) {
1686
            my @itemnumbers = GetItemnumbersFromOrder( $parent_ordernumber );
1687
            for my $in ( @itemnumbers ) {
1688
                my $biblionumber = C4::Biblio::GetBiblionumberFromItemnumber( $in );
1689
                my $frameworkcode = GetFrameworkCode($biblionumber);
1690
                my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber', $frameworkcode );
1691
                my $item = C4::Items::GetMarcItem( $biblionumber, $in );
1692
                for my $affect ( @affects ) {
1693
                    my ( $sf, $v ) = split q{=}, $affect, 2;
1694
                    foreach ( $item->field($itemfield) ) {
1695
                        $_->update( $sf => $v );
1696
                    }
1697
                }
1698
                C4::Items::ModItemFromMarc( $item, $biblionumber, $in );
1699
            }
1700
        }
1701
    }
1702
1683
    return $parent_ordernumber;
1703
    return $parent_ordernumber;
1684
}
1704
}
1685
1705
(-)a/t/db_dependent/Acquisition/CancelReceipt.t (-1 / +74 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
use Modern::Perl;
4
5
use Test::More tests => 2;
6
use C4::Context;
7
use C4::Acquisition;
8
use C4::Biblio;
9
use C4::Items;
10
use C4::Bookseller;
11
use C4::Budgets;
12
use t::lib::Mocks;
13
14
use Koha::DateUtils;
15
use MARC::Record;
16
17
my $dbh = C4::Context->dbh;
18
$dbh->{RaiseError} = 1;
19
$dbh->{AutoCommit} = 0;
20
21
my $booksellerid1 = C4::Bookseller::AddBookseller(
22
    {
23
        name => "my vendor 1",
24
        address1 => "bookseller's address",
25
        phone => "0123456",
26
        active => 1
27
    }
28
);
29
30
my $basketno1 = C4::Acquisition::NewBasket(
31
    $booksellerid1
32
);
33
34
my $budgetid = C4::Budgets::AddBudget(
35
    {
36
        budget_code => "budget_code_test_transferorder",
37
        budget_name => "budget_name_test_transferorder",
38
    }
39
);
40
41
my $budget = C4::Budgets::GetBudget( $budgetid );
42
43
my ($biblionumber, $biblioitemnumber) = AddBiblio(MARC::Record->new, '');
44
my $itemnumber = AddItem({}, $biblionumber);
45
my ( $ordernumber, $order );
46
47
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
48
t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9'); # notforloan is mapped with 952$7
49
( undef, $ordernumber ) = C4::Acquisition::NewOrder(
50
    {
51
        basketno => $basketno1,
52
        quantity => 2,
53
        biblionumber => $biblionumber,
54
        budget_id => $budget->{budget_id},
55
    }
56
);
57
58
ModReceiveOrder(
59
    {
60
        biblionumber     => $biblionumber,
61
        ordernumber      => $ordernumber,
62
        quantityreceived => 2,
63
        datereceived     => dt_from_string
64
    }
65
);
66
67
NewOrderItem($itemnumber, $ordernumber);
68
69
CancelReceipt($ordernumber);
70
71
$order = GetOrder( $ordernumber );
72
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "Create items on ordering: items are not deleted after cancelling a receipt");
73
my $item = C4::Items::GetItem( $itemnumber );
74
is( $item->{notforloan}, 9, "The notforloan value has been updated with '9'" );

Return to bug 12557