&ModReceiveOrder &CancelReceipt
&GetCancelledOrders
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
- &NewOrderItem &ModOrderItem &ModItemOrder
+ &NewOrderItem &ModItemOrder
&GetParcels &GetParcel
&GetContracts &GetContract
&ModInvoice
&CloseInvoice
&ReopenInvoice
+ &DelInvoice
&GetItemnumbersFromOrder
#------------------------------------------------------------#
-=head3 ModOrderItem
-
- &ModOrderItem(\%hashref);
-
-Modifies the itemnumber in the aqorders_items table. The input hash needs three entities:
-
-=over
-
-=item - itemnumber: the old itemnumber
-=item - ordernumber: the order this item is attached to
-=item - newitemnumber: the new itemnumber we want to attach the line to
-
-=back
-
-=cut
-
-sub ModOrderItem {
- my $orderiteminfo = shift;
- if (! $orderiteminfo->{'ordernumber'} || ! $orderiteminfo->{'itemnumber'} || ! $orderiteminfo->{'newitemnumber'}){
- die "Ordernumber, itemnumber and newitemnumber is required";
- }
-
- my $dbh = C4::Context->dbh;
-
- my $query = "UPDATE aqorders_items set itemnumber=? where itemnumber=? and ordernumber=?";
- my @params = ($orderiteminfo->{'newitemnumber'}, $orderiteminfo->{'itemnumber'}, $orderiteminfo->{'ordernumber'});
- my $sth = $dbh->prepare($query);
- $sth->execute(@params);
- return 0;
-}
-
=head3 ModItemOrder
ModItemOrder($itemnumber, $ordernumber);
$order->{'rrp'} = $rrp;
$order->{ecost} = $ecost;
$order->{'orderstatus'} = 3; # totally received
- $new_ordernumber = NewOrder($order);
+ my $basketno;
+ ( $basketno, $new_ordernumber ) = NewOrder($order);
if ($received_items) {
foreach my $itemnumber (@$received_items) {
$sth->execute($invoiceid);
}
+=head3 DelInvoice
+
+ DelInvoice($invoiceid);
+
+Delete an invoice if there are no items attached to it.
+
+=cut
+
+sub DelInvoice {
+ my ($invoiceid) = @_;
+
+ return unless $invoiceid;
+
+ my $dbh = C4::Context->dbh;
+ my $query = qq{
+ SELECT COUNT(*)
+ FROM aqorders
+ WHERE invoiceid = ?
+ };
+ my $sth = $dbh->prepare($query);
+ $sth->execute($invoiceid);
+ my $res = $sth->fetchrow_arrayref;
+ if ( $res && $res->[0] == 0 ) {
+ $query = qq{
+ DELETE FROM aqinvoices
+ WHERE invoiceid = ?
+ };
+ my $sth = $dbh->prepare($query);
+ return ( $sth->execute($invoiceid) > 0 );
+ }
+ return;
+}
+
1;
__END__