From acec5351bc22417935841ebec6abd2f9937108bb Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 16 Jul 2008 21:03:30 +0000 Subject: [PATCH] added method for setting lineitem usr attrs git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10057 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Acq/Lineitem.pm | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm index d07ef73e27..47d7287ab9 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm @@ -661,4 +661,50 @@ sub receive_lineitem_detail_impl { return undef; } + +__PACKAGE__->register_method( + method => 'set_lineitem_usr_attr', + api_name => 'open-ils.acq.lineitem_usr_attr.set', + signature => { + desc => 'Sets a lineitem_usr_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_usr_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 = $e->search_acq_lineitem_attr({ + lineitem => $li_id, + attr_type => 'lineitem_usr_attr_definition', + attr_name => $attr_name})->[0]; + + if($attr) { + $attr->attr_value($attr_value); + $e->update_acq_lineitem_attr($attr) or return $e->die_event; + } else { + $attr = Fieldmapper::acq::lineitem_attr->new; + $attr->lineitem($li_id); + $attr->attr_type('lineitem_usr_attr_definition'); + $attr->attr_name($attr_name); + $attr->attr_value($attr_value); + $e->create_acq_lineitem_attr($attr) or return $e->die_event; + } + + $e->commit; + return 1; +} + + + 1; -- 2.11.0