]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/SIP/Transaction.pm
updated some logging, added script support to SIP for determining magnetic, etc....
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / SIP / Transaction.pm
1 #
2 # Transaction: Superclass of all the transactional status objects
3 #
4
5 package OpenILS::SIP::Transaction;
6
7 use Carp;
8 use strict; use warnings;
9 use Sys::Syslog qw(syslog);
10
11 use OpenILS::SIP;
12
13
14 my %fields = (
15               ok            => 0,
16               patron        => undef,
17               item          => undef,
18               desensitize   => 0,
19               alert         => '',
20               transation_id => undef,
21               sip_fee_type  => '01', # Other/Unknown
22               fee_amount    => undef,
23               sip_currency  => 'CAD',
24               screen_msg    => '',
25               print_line    => '',
26                         editor                  => undef,
27                         authtoken               => '',
28               );
29
30 our $AUTOLOAD;
31
32 sub new {
33     my( $class, %args ) = @_;
34
35     my $self = { _permitted => \%fields, %fields };
36
37         bless $self, $class;
38         $self->authtoken($args{authtoken});
39
40         syslog('LOG_DEBUG', "OILS: Created new transaction with authtoken %s", $self->authtoken);
41
42         my $e = OpenILS::SIP->editor();
43         $e->{authtoken} = $self->authtoken;
44
45         return $self;
46 }
47
48 sub DESTROY { 
49         # be cool
50 }
51
52 sub AUTOLOAD {
53         my $self = shift;
54         my $class = ref($self) or croak "$self is not an object";
55         my $name = $AUTOLOAD;
56
57         $name =~ s/.*://;
58
59         unless (exists $self->{_permitted}->{$name}) {
60                 croak "Can't access '$name' field of class '$class'";
61         }
62
63         if (@_) {
64                 return $self->{$name} = shift;
65         } else {
66                 return $self->{$name};
67         }
68 }
69
70 1;