use Modern::Perl;
-use Carp;
use Koha::Database;
use Koha::DateUtils qw( dt_from_string );
use Koha::Acquisition::Order;
+use Koha::Exceptions::Exception;
use base qw(Koha::Objects);
=head1 API
-=head2 Class Methods
+=head2 Class methods
=head3 filter_by_lates
);
}
+=head3 filter_by_active
+
+ my $new_rs = $orders->filter_by_active;
+
+Returns a new resultset filtering orders that are not active.
+
+=cut
+
+sub filter_by_active {
+ my ($self) = @_;
+ return $self->search(
+ {
+ '-or' => [
+ { 'basket.is_standing' => 1,
+ 'orderstatus' => [ 'new', 'ordered', 'partial' ] },
+ { 'orderstatus' => [ 'ordered', 'partial' ] }
+ ]
+ },
+ { join => 'basket' }
+ );
+}
+
=head3 filter_by_current
$orders->filter_by_current
);
}
+=head3 filter_by_id_including_transfers
+
+ my $orders = $orders->filter_by_id_including_transfers(
+ {
+ ordernumber => $ordernumber
+ }
+ );
+
+When searching for orders by I<ordernumber>, include the aqorders_transfers table
+so we can find orders that have changed their ordernumber as the result of a transfer
+
+=cut
+
+sub filter_by_id_including_transfers {
+ my ( $self, $params ) = @_;
+
+ Koha::Exceptions::MissingParameter->throw( "The ordernumber param is mandatory" )
+ unless $params->{ordernumber};
+
+ return $self->search(
+ {
+ -or => [
+ { 'me.ordernumber' => $params->{ordernumber} },
+ { 'aqorders_transfers_ordernumber_to.ordernumber_from' => $params->{ordernumber} }
+ ]
+ },
+ { join => 'aqorders_transfers_ordernumber_to' }
+ );
+}
+
=head2 Internal methods
-=head3 _type (internal)
+=head3 _type
=cut
return 'Aqorder';
}
-=head3 object_class (internal)
+=head3 object_class
=cut