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

(-)a/C4/Acquisition.pm (-20 / +27 lines)
Lines 1615-1620 sub CancelReceipt { Link Here
1615
        };
1615
        };
1616
        $sth = $dbh->prepare($query);
1616
        $sth = $dbh->prepare($query);
1617
        $sth->execute(0, undef, undef, $ordernumber);
1617
        $sth->execute(0, undef, undef, $ordernumber);
1618
        _cancel_items_receipt( $ordernumber );
1618
    } else {
1619
    } else {
1619
        # The order line has a parent, increase parent quantity and delete
1620
        # The order line has a parent, increase parent quantity and delete
1620
        # the order line.
1621
        # the order line.
Lines 1651-1675 sub CancelReceipt { Link Here
1651
                " receipt";
1652
                " receipt";
1652
            return;
1653
            return;
1653
        }
1654
        }
1654
        if(C4::Context->preference('AcqCreateItem') eq 'receiving') {
1655
        _cancel_items_receipt( $ordernumber, $parent_ordernumber );
1655
            # Remove items that were created at receipt
1656
            $query = qq{
1657
                DELETE FROM items, aqorders_items
1658
                USING items, aqorders_items
1659
                WHERE items.itemnumber = ? AND aqorders_items.itemnumber = ?
1660
            };
1661
            $sth = $dbh->prepare($query);
1662
            my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1663
            foreach my $itemnumber (@itemnumbers) {
1664
                $sth->execute($itemnumber, $itemnumber);
1665
            }
1666
        } else {
1667
            # Update items
1668
            my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1669
            foreach my $itemnumber (@itemnumbers) {
1670
                ModItemOrder($itemnumber, $parent_ordernumber);
1671
            }
1672
        }
1673
        # Delete order line
1656
        # Delete order line
1674
        $query = qq{
1657
        $query = qq{
1675
            DELETE FROM aqorders
1658
            DELETE FROM aqorders
Lines 1683-1688 sub CancelReceipt { Link Here
1683
    return $parent_ordernumber;
1666
    return $parent_ordernumber;
1684
}
1667
}
1685
1668
1669
sub _cancel_items_receipt {
1670
    my ( $ordernumber, $parent_ordernumber ) = @_;
1671
    $parent_ordernumber ||= $ordernumber;
1672
1673
    my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
1674
    if(C4::Context->preference('AcqCreateItem') eq 'receiving') {
1675
        # Remove items that were created at receipt
1676
        my $query = qq{
1677
            DELETE FROM items, aqorders_items
1678
            USING items, aqorders_items
1679
            WHERE items.itemnumber = ? AND aqorders_items.itemnumber = ?
1680
        };
1681
        my $dbh = C4::Context->dbh;
1682
        my $sth = $dbh->prepare($query);
1683
        foreach my $itemnumber (@itemnumbers) {
1684
            $sth->execute($itemnumber, $itemnumber);
1685
        }
1686
    } else {
1687
        # Update items
1688
        foreach my $itemnumber (@itemnumbers) {
1689
            ModItemOrder($itemnumber, $parent_ordernumber);
1690
        }
1691
    }
1692
}
1693
1686
#------------------------------------------------------------#
1694
#------------------------------------------------------------#
1687
1695
1688
=head3 SearchOrders
1696
=head3 SearchOrders
1689
- 

Return to bug 11744