X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f3978ea1c30d283b9d46be0766a33c568ade511c..18b1b18015503fb46e8e1201f79e968f097f66e0:/SL/Controller/RecordLinks.pm diff --git a/SL/Controller/RecordLinks.pm b/SL/Controller/RecordLinks.pm new file mode 100644 index 000000000..fd424b967 --- /dev/null +++ b/SL/Controller/RecordLinks.pm @@ -0,0 +1,35 @@ +package SL::Controller::RecordLinks; + +use strict; + +use parent qw(SL::Controller::Base); + +use SL::DB::Order; +use SL::DB::DeliveryOrder; +use SL::DB::Invoice; +use SL::DB::PurchaseInvoice; +use SL::Locale::String; + +# +# actions +# + +sub action_ajax_list { + my ($self) = @_; + + eval { + die $::locale->text("Invalid parameters") if (!$::form->{object_id} || ($::form->{object_model} !~ m/^(?:Order|DeliveryOrder|Invoice|PurchaseInvoice)$/)); + + my $model = 'SL::DB::' . $::form->{object_model}; + my $object = $model->new(id => $::form->{object_id})->load || die $::locale->text("Record not found"); + my $linked_records = $object->linked_records(direction => 'both'); + my $output = SL::Presenter->get->grouped_record_list($linked_records); + $self->render(\$output, { layout => 0, process => 0 }); + + 1; + } or do { + $self->render('generic/error', { layout => 0 }, label_error => $@); + }; +} + +1;