X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FPresenter%2FALL.pm;fp=SL%2FPresenter%2FALL.pm;h=974b1a6e4613e99dd805a7c7afaf82c34dcf7484;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=0000000000000000000000000000000000000000;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44;p=kivitendo-erp.git diff --git a/SL/Presenter/ALL.pm b/SL/Presenter/ALL.pm new file mode 100644 index 000000000..974b1a6e4 --- /dev/null +++ b/SL/Presenter/ALL.pm @@ -0,0 +1,76 @@ +package SL::Presenter::ALL; + +use strict; + +use SL::Presenter::Chart; +use SL::Presenter::CustomerVendor; +use SL::Presenter::DeliveryOrder; +use SL::Presenter::Dunning; +use SL::Presenter::EscapedText; +use SL::Presenter::FileObject; +use SL::Presenter::Invoice; +use SL::Presenter::GL; +use SL::Presenter::Letter; +use SL::Presenter::Order; +use SL::Presenter::Part; +use SL::Presenter::Project; +use SL::Presenter::Record; +use SL::Presenter::RequirementSpec; +use SL::Presenter::RequirementSpecItem; +use SL::Presenter::RequirementSpecTextBlock; +use SL::Presenter::SepaExport; +use SL::Presenter::ShopOrder; +use SL::Presenter::Text; +use SL::Presenter::Tag; +use SL::Presenter::BankAccount; +use SL::Presenter::MaterialComponents; + +our %presenters = ( + chart => 'SL::Presenter::Chart', + customer_vendor => 'SL::Presenter::CustomerVendor', + delivery_order => 'SL::Presenter::DeliveryOrder', + dunning => 'SL::Presenter::Dunning', + escaped_text => 'SL::Presenter::EscapedText', + file_object => 'SL::Presenter::FileObject', + invoice => 'SL::Presenter::Invoice', + gl => 'SL::Presenter::GL', + letter => 'SL::Presenter::Letter', + order => 'SL::Presenter::Order', + part => 'SL::Presenter::Part', + project => 'SL::Presenter::Project', + record => 'SL::Presenter::Record', + requirement_spec => 'SL::Presenter::RequirementSpec', + requirement_spec_item => 'SL::Presenter::RequirementSpecItem', + requirement_spec_text_block => 'SL::Presenter::RequirementSpecTextBlock', + sepa_export => 'SL::Presenter::SepaExport', + shop_order => 'SL::Presenter::ShopOrder', + text => 'SL::Presenter::Text', + tag => 'SL::Presenter::Tag', + bank_account => 'SL::Presenter::BankAccount', + M => 'SL::Presenter::MaterialComponents', +); + +sub wrap { + bless [ $_[0] ], 'SL::Presenter::ALL::Wrapper'; +} + +package SL::Presenter::ALL::Wrapper; + +sub AUTOLOAD { + our $AUTOLOAD; + + my ($self, @args) = @_; + + my $method = $AUTOLOAD; + $method =~ s/.*:://; + + return if $method eq 'DESTROY'; + + splice @args, -1, 1, %{ $args[-1] } if @args && (ref($args[-1]) eq 'HASH'); + + if (my $sub = $self->[0]->can($method)) { + return $sub->(@args); + } +} + +1;