item_count is now a true virtual field generated from lineitem_detail count
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 12 Jun 2008 21:33:12 +0000 (21:33 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 12 Jun 2008 21:33:12 +0000 (21:33 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9819 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/examples/fm_IDL.xml
Open-ILS/src/perlmods/OpenILS/Application/Acq/Lineitem.pm
Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm

index 7f7ad65..d19eb2a 100644 (file)
@@ -3475,9 +3475,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <field reporter:label="MARC" name="marc" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text" />
                        <field reporter:label="Evergreen Bib ID" name="eg_bib_id" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link" />
                        <field reporter:label="Source Label" name="source_label" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text" />
-                       <field reporter:label="Item Count" name="item_count" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="int" />
-                       <field reporter:label="Expected Receive Date" name="expected_recv_time" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp" />
-                       <field reporter:label="State" name="state" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text" />
+                       <field reporter:label="Expected Receive Date" name="expected_recv_time" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp" />
+                       <field reporter:label="State" name="state" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text" />
+                       <field reporter:label="Item Count" name="item_count" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="int" />
                        <field reporter:label="Descriptive Attributes" name="attributes" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link" />
                        <field reporter:label="Line Item Details" name="lineitem_details" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link" />
                        <field reporter:label="Line Item Notes" name="lineitem_notes" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link" />
index e66ff35..56ca703 100644 (file)
@@ -210,6 +210,10 @@ sub retrieve_lineitem {
         push(@{$ops->{flesh_fields}->{acqlid}}, 'fund_debit') if $$options{flesh_fund_debit};
         my $details = $e->search_acq_lineitem_detail([{lineitem => $li_id}, $ops]);
         $li->lineitem_details($details);
+        $li->item_count(scalar(@$details));
+    } else {
+        my $details = $e->search_acq_lineitem_detail({lineitem => $li_id}, {idlist=>1});
+        $li->item_count(scalar(@$details));
     }
 
     if($li->picklist) {
index 591e89d..a012536 100644 (file)
@@ -375,6 +375,8 @@ sub retrieve_pl_lineitem {
             {flesh => 1, flesh_fields => {jub => ['attributes']}} : {};
 
         $entry = $e->retrieve_acq_lineitem([$id, $flesh]);
+        my $details = $e->search_acq_lineitem_detail({lineitem => $id}, {idlist=>1});
+        $entry->item_count(scalar(@$details));
         $entry->clear_marc if $$options{clear_marc};
         $conn->respond($entry);
     }