X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FObject.pm;h=06596dd4f9aad706ffb444163c63ad701330db62;hb=a6ce2c7f3f7ae10f7065fb86121c8d11049617ee;hp=485fab2ceb5d0359d104d88063af79470a7661be;hpb=913348ce9a1a0285ef59ae1731a1bc7ba353f79c;p=kivitendo-erp.git diff --git a/SL/DB/Object.pm b/SL/DB/Object.pm index 485fab2ce..06596dd4f 100755 --- a/SL/DB/Object.pm +++ b/SL/DB/Object.pm @@ -12,6 +12,7 @@ use SL::DB; use SL::DB::Helper::Attr; use SL::DB::Helper::Metadata; use SL::DB::Helper::Manager; +use SL::DB::Helper::Presenter; use SL::DB::Object::Hooks; use base qw(Rose::DB::Object); @@ -148,7 +149,7 @@ sub save { SL::DB::Object::Hooks::run_hooks($self, 'after_save', $result); 1; - }) || die $self->error; + }) || die $self->db->error; return $result; } @@ -164,7 +165,7 @@ sub delete { SL::DB::Object::Hooks::run_hooks($self, 'after_delete', $result); 1; - }) || die $self->error; + }) || die $self->db->error; return $result; } @@ -238,6 +239,19 @@ sub clone_and_reset { return $clone; } +sub presenter { + my ($class_or_self) = @_; + + if (ref $class_or_self) { + my $class = ref $class_or_self; + $class =~ s{^SL::DB::}{SL::Presenter::}; + return SL::DB::Helper::Presenter->new($class, $class_or_self); + } else { + $class_or_self =~ s{^SL::DB::}{SL::Presenter::}; + return $class_or_self; + } +} + 1; __END__ @@ -361,6 +375,14 @@ The difference between Rose's and this function is that this function will also skip setting the following fields if such columns exist for C<$self>: C, C. +=item C + +Returns a proxy wrapper that will dispatch all method calls to the presenter +with the same name as the class of the involking object. + +For the full documentation about its capabilites see +L + =back =head1 AUTHOR