ImageUpload: erste Version
[kivitendo-erp.git] / SL / Controller / ImageUpload.pm
1 package SL::Controller::ImageUpload;
2
3 use strict;
4 use parent qw(SL::Controller::Base);
5
6 use SL::DB::Part;
7 use SL::DB::Order;
8 use SL::DB::DeliveryOrder;
9
10 use Rose::Object::MakeMethods::Generic
11 (
12   scalar => [ qw() ],
13   'scalar --get_set_init' => [ qw(object_type object) ],
14 );
15
16 my %object_loader = (
17   part            => [ "SL::DB::Part" ],
18   sales_order     => [ "SL::DB::Order", [ sales => 1, quotation => 0 ] ],
19   sales_quotation => [ "SL::DB::Order", [ sales => 1, quotation => 1 ] ],
20   purchase_order  => [ "SL::DB::Order", [ sales => 0, quotation => 1 ] ],
21   sales_delivery_order => [ "SL::DB::DeliveryOrder", [ is_sales => 1 ] ],
22 );
23
24
25 ################ actions #################
26
27 sub action_upload_image {
28   my ($self) = @_;
29
30   $::request->layout->add_javascripts('kivi.File.js');
31
32   $self->render('image_upload/form');
33 }
34
35 ################# internal ###############
36
37 sub init_object_type {
38   $::form->{object_type} or die "need object type"
39 }
40
41 sub init_object {
42   my ($self) = @_;
43
44   return unless $self->object_type;
45
46   my $loader = $object_loader{ $self->object_type } or die "unknown object type";
47   my $manager = $loader->[0]->_get_manager_class;
48
49   return $manager->find_by(id => $::form->{object_id}*1) if $::form->{object_id};
50
51   return $manager->find_by(donumber => $::form->{object_number}, @{ $loader->[1] // [] }) if $::form->{object_number};
52 }
53
54
55 1;
56
57