#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
# <sales@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
#
# END BPS TAGGED BLOCK }}}
-# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>)
-# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST.
-#
-# !! DO NOT EDIT THIS FILE !!
-#
-
-use strict;
-
-
=head1 NAME
- RT::Transactions -- Class Description
-
+ RT::Transactions - a collection of RT Transaction objects
+
=head1 SYNOPSIS
- use RT::Transactions
+ use RT::Transactions;
+
=head1 DESCRIPTION
=head1 METHODS
-=cut
-package RT::Transactions;
+=cut
-use RT::SearchBuilder;
-use RT::Transaction;
-use vars qw( @ISA );
-@ISA= qw(RT::SearchBuilder);
+package RT::Transactions;
+use strict;
+use warnings;
-sub _Init {
- my $self = shift;
- $self->{'table'} = 'Transactions';
- $self->{'primary_key'} = 'id';
+use base 'RT::SearchBuilder';
+use RT::Transaction;
- return ( $self->SUPER::_Init(@_) );
+sub Table { 'Transactions'}
+
+# {{{ sub _Init
+sub _Init {
+ my $self = shift;
+
+ $self->{'table'} = "Transactions";
+ $self->{'primary_key'} = "id";
+
+ # By default, order by the date of the transaction, rather than ID.
+ $self->OrderByCols( { FIELD => 'Created',
+ ORDER => 'ASC' },
+ { FIELD => 'id',
+ ORDER => 'ASC' } );
+
+ return ( $self->SUPER::_Init(@_));
}
+=head2 LimitToTicket TICKETID
-=head2 NewItem
+Find only transactions for the ticket whose id is TICKETID.
-Returns an empty new RT::Transaction item
+This includes tickets merged into TICKETID.
-=cut
+Repeated calls to this method will intelligently limit down to that set of tickets, joined with an OR
-sub NewItem {
- my $self = shift;
- return(RT::Transaction->new($self->CurrentUser));
-}
-RT::Base->_ImportOverlays();
-
-=head1 SEE ALSO
-This class allows "overlay" methods to be placed
-into the following files _Overlay is for a System overlay by the original author,
-_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations.
+=cut
-These overlay files can contain new subs or subs to replace existing subs in this module.
-Each of these files should begin with the line
+sub LimitToTicket {
+ my $self = shift;
+ my $tid = shift;
+
+ unless ( $self->{'tickets_table'} ) {
+ $self->{'tickets_table'} ||= $self->Join(
+ ALIAS1 => 'main',
+ FIELD1 => 'ObjectId',
+ TABLE2 => 'Tickets',
+ FIELD2 => 'id'
+ );
+ $self->Limit(
+ FIELD => 'ObjectType',
+ VALUE => 'RT::Ticket',
+ );
+ }
+ $self->Limit(
+ ALIAS => $self->{tickets_table},
+ FIELD => 'EffectiveId',
+ OPERATOR => '=',
+ ENTRYAGGREGATOR => 'OR',
+ VALUE => $tid,
+ );
- no warnings qw(redefine);
+}
-so that perl does not kick and scream when you redefine a subroutine or variable in your overlay.
-RT::Transactions_Overlay, RT::Transactions_Vendor, RT::Transactions_Local
+sub AddRecord {
+ my $self = shift;
+ my ($record) = @_;
-=cut
+ return unless $record->CurrentUserCanSee;
+ return $self->SUPER::AddRecord($record);
+}
+RT::Base->_ImportOverlays();
1;