X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FTransactions.pm;h=6c602b39dbfa2434420ddb63acde06ca1f5ea2a7;hp=0b977c623ac9e35f6700bc1acafd2816752ba70f;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;hpb=75162bb14b3e38d66617077843f4dfdcaf09d5c4 diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 0b977c623..6c602b39d 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -2,7 +2,7 @@ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) @@ -46,78 +46,98 @@ # # END BPS TAGGED BLOCK }}} -# Autogenerated by DBIx::SearchBuilder factory (by ) -# 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;