From dffc9542de2ae3c7f6b86cd6d58980ccff063e92 Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 23 Jul 2008 17:38:43 +0000 Subject: [PATCH] added companion method for setting local_attr values on a lineitem git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10099 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Acq/Lineitem.pm | 27 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm index 65524a5127..0cfa9a217b 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm @@ -663,7 +663,7 @@ sub receive_lineitem_detail_impl { __PACKAGE__->register_method( - method => 'set_lineitem_usr_attr', + method => 'set_lineitem_attr', api_name => 'open-ils.acq.lineitem_usr_attr.set', signature => { desc => 'Sets a lineitem_usr_attr value', @@ -677,16 +677,35 @@ __PACKAGE__->register_method( } ); -sub set_lineitem_usr_attr { +__PACKAGE__->register_method( + method => 'set_lineitem_attr', + api_name => 'open-ils.acq.lineitem_local_attr.set', + signature => { + desc => 'Sets a lineitem_local_attr value', + params => [ + {desc => 'Authentication token', type => 'string'}, + {desc => 'Lineitem ID', type => 'number'}, + {desc => 'Attr name', type => 'string'}, + {desc => 'Attr value', type => 'string'} + ], + return => {desc => '1 on success, Event on error'} + } +); + + +sub set_lineitem_attr { my($self, $conn, $auth, $li_id, $attr_name, $attr_value) = @_; my $e = new_editor(xact=>1, authtoken=>$auth); return $e->die_event unless $e->checkauth; # XXX perm + my $attr_type = $self->api_name =~ /local_attr/ ? + 'lineitem_local_attr_definition' : 'lineitem_usr_attr_definition'; + my $attr = $e->search_acq_lineitem_attr({ lineitem => $li_id, - attr_type => 'lineitem_usr_attr_definition', + attr_type => $attr_type, attr_name => $attr_name})->[0]; if($attr) { @@ -695,7 +714,7 @@ sub set_lineitem_usr_attr { } else { $attr = Fieldmapper::acq::lineitem_attr->new; $attr->lineitem($li_id); - $attr->attr_type('lineitem_usr_attr_definition'); + $attr->attr_type($attr_type); $attr->attr_name($attr_name); $attr->attr_value($attr_value); $e->create_acq_lineitem_attr($attr) or return $e->die_event; -- 2.11.0