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

(-)a/C4/Acquisition.pm (-20 / +27 lines)
Lines 1548-1553 sub CancelReceipt { Link Here
1548
        };
1548
        };
1549
        $sth = $dbh->prepare($query);
1549
        $sth = $dbh->prepare($query);
1550
        $sth->execute(0, undef, undef, $ordernumber);
1550
        $sth->execute(0, undef, undef, $ordernumber);
1551
        _cancel_items_receipt( $ordernumber );
1551
    } else {
1552
    } else {
1552
        # The order line has a parent, increase parent quantity and delete
1553
        # The order line has a parent, increase parent quantity and delete
1553
        # the order line.
1554
        # the order line.
Lines 1584-1608 sub CancelReceipt { Link Here
1584
                " receipt";
1585
                " receipt";
1585
            return;
1586
            return;
1586
        }
1587
        }
1587
        if(C4::Context->preference('AcqCreateItem') eq 'receiving') {
1588
        _cancel_items_receipt( $ordernumber, $parent_ordernumber );
1588
            # Remove items that were created at receipt
1589
            $query = qq{
1590
                DELETE FROM items, aqorders_items
1591
                USING items, aqorders_items
1592
                WHERE items.itemnumber = ? AND aqorders_items.itemnumber = ?
1593
            };
1594
            $sth = $dbh->prepare($query);
1595
            my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1596
            foreach my $itemnumber (@itemnumbers) {
1597
                $sth->execute($itemnumber, $itemnumber);
1598
            }
1599
        } else {
1600
            # Update items
1601
            my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1602
            foreach my $itemnumber (@itemnumbers) {
1603
                ModItemOrder($itemnumber, $parent_ordernumber);
1604
            }
1605
        }
1606
        # Delete order line
1589
        # Delete order line
1607
        $query = qq{
1590
        $query = qq{
1608
            DELETE FROM aqorders
1591
            DELETE FROM aqorders
Lines 1616-1621 sub CancelReceipt { Link Here
1616
    return $parent_ordernumber;
1599
    return $parent_ordernumber;
1617
}
1600
}
1618
1601
1602
sub _cancel_items_receipt {
1603
    my ( $ordernumber, $parent_ordernumber ) = @_;
1604
    $parent_ordernumber ||= $ordernumber;
1605
1606
    my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1607
    if(C4::Context->preference('AcqCreateItem') eq 'receiving') {
1608
        # Remove items that were created at receipt
1609
        my $query = qq{
1610
            DELETE FROM items, aqorders_items
1611
            USING items, aqorders_items
1612
            WHERE items.itemnumber = ? AND aqorders_items.itemnumber = ?
1613
        };
1614
        my $dbh = C4::Context->dbh;
1615
        my $sth = $dbh->prepare($query);
1616
        foreach my $itemnumber (@itemnumbers) {
1617
            $sth->execute($itemnumber, $itemnumber);
1618
        }
1619
    } else {
1620
        # Update items
1621
        foreach my $itemnumber (@itemnumbers) {
1622
            ModItemOrder($itemnumber, $parent_ordernumber);
1623
        }
1624
    }
1625
}
1626
1619
#------------------------------------------------------------#
1627
#------------------------------------------------------------#
1620
1628
1621
=head3 SearchOrders
1629
=head3 SearchOrders
1622
- 

Return to bug 11744