X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FNote.pm;fp=SL%2FDB%2FNote.pm;h=477ae3c81812e6378bdf31510a79b6ccc500796b;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=c539d6a0510c4367a248f519b2ac76f5ffec0a11;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44;p=kivitendo-erp.git diff --git a/SL/DB/Note.pm b/SL/DB/Note.pm index c539d6a05..477ae3c81 100644 --- a/SL/DB/Note.pm +++ b/SL/DB/Note.pm @@ -1,10 +1,9 @@ -# This file has been auto-generated only because it didn't exist. -# Feel free to modify it at will; it will not be overwritten automatically. - package SL::DB::Note; use strict; +use Carp; + use SL::DB::MetaSetup::Note; @@ -21,5 +20,76 @@ __PACKAGE__->meta->initialize; # Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. __PACKAGE__->meta->make_manager_class; +sub trans_object { + my $self = shift; + + croak "Method is not a setter" if @_; + + return undef if !$self->trans_id || !$self->trans_module; + + if ($self->trans_module eq 'fu') { + require SL::DB::FollowUp; + return SL::DB::Manager::FollowUp->find_by(id => $self->trans_id); + } + + if ($self->trans_module eq 'ct') { + require SL::DB::Customer; + require SL::DB::Vendor; + return SL::DB::Manager::Customer->find_by(id => $self->trans_id) + || SL::DB::Manager::Vendor ->find_by(id => $self->trans_id); + } + + return undef; +} 1; +__END__ + +=pod + +=encoding utf8 + +=head1 NAME + +SL::DB::Note - Notes + +=head1 FUNCTIONS + +=over 4 + +=item C + +A note object is always attached to another database entity. Which one +is determined by the columns C and C. This +function looks at both, retrieves the corresponding object from the +database and returns it. + +Currently the following three types are supported: + +=over 2 + +=item * C for C + +=item * C or C for C (which class is used depends on the value of C; +customers are looked up first) + +=back + +The method returns C in three cases: if no C or no +C has been assigned yet; if C is unknown; +if the referenced object doesn't exist. + +This method is a getter only, not a setter. + +=back + +=head1 BUGS + +Nothing here yet. + +=head1 AUTHOR + +Moritz Bunkus Em.bunkus@linet-services.deE + +=cut