projects
/
kivitendo-erp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5bf0359
)
CustomerVendor-Presenter: croaken, wenn Parameter fehlen oder falsch sind
author
Moritz Bunkus
<m.bunkus@linet-services.de>
Tue, 25 Nov 2014 12:52:27 +0000
(13:52 +0100)
committer
Moritz Bunkus
<m.bunkus@linet-services.de>
Tue, 25 Nov 2014 12:52:27 +0000
(13:52 +0100)
SL/Presenter/CustomerVendor.pm
patch
|
blob
|
history
diff --git
a/SL/Presenter/CustomerVendor.pm
b/SL/Presenter/CustomerVendor.pm
index
2bf5ebc
..
4a37029
100644
(file)
--- a/
SL/Presenter/CustomerVendor.pm
+++ b/
SL/Presenter/CustomerVendor.pm
@@
-39,7
+39,14
@@
sub _customer_vendor {
sub customer_vendor_picker {
my ($self, $name, $value, %params) = @_;
sub customer_vendor_picker {
my ($self, $name, $value, %params) = @_;
- $value = SL::DB::Manager::Customer->find_by(id => $value) if $value && !ref $value;
+ croak 'Unknown "type" parameter' unless $params{type} =~ m{^(?:customer|vendor)$};
+ croak 'Unknown value class' if $value && (ref($value) !~ m{^SL::DB::(?:Customer|Vendor)$});
+
+ if ($value && !ref $value) {
+ my $class = $params{type} eq 'customer' ? 'SL::DB::Manager::Customer' : 'SL::DB::Manager::Vendor';
+ $value = $class->find_by(id => $value);
+ }
+
my $id = delete($params{id}) || $self->name_to_id($name);
my $fat_set_item = delete $params{fat_set_item};
my $id = delete($params{id}) || $self->name_to_id($name);
my $fat_set_item = delete $params{fat_set_item};