added a virtual use_count field for distrib formulas, populating value in ranged...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 12 Feb 2010 20:52:53 +0000 (20:52 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 12 Feb 2010 20:52:53 +0000 (20:52 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@15531 dcc99617-32d9-48b4-a31d-7c20da2025e4

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

index f484908..ca211a8 100644 (file)
@@ -5532,6 +5532,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <field reporter:label="Formula Name" name="name" reporter:datatype="text"/>
                        <field reporter:label="Skip Count" name="skip_count" reporter:datatype="int"/>
                        <field reporter:label="Entries" name="entries" oils_persist:virtual="true" reporter:datatype="link"/>
+                       <field reporter:label="Use Count" name="use_count" oils_persist:virtual="true" reporter:datatype="int"/>
                </fields>
                <links>
                        <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
index b49daef..5f0b5fd 100644 (file)
@@ -441,10 +441,11 @@ __PACKAGE__->register_method(
 );
 
 sub ranged_distrib_formulas {
-    my($self, $conn, $auth) = @_;
+    my($self, $conn, $auth, $org) = @_;
     my $e = new_editor(authtoken=>$auth);
     return $e->event unless $e->checkauth;
     my $orgs = $U->user_has_work_perm_at($e, 'CREATE_PICKLIST', {descendants =>1});
+
     my $forms = $e->search_acq_distribution_formula([
         {owner => $orgs},
         {
@@ -453,7 +454,20 @@ sub ranged_distrib_formulas {
             order_by => {acqdfe => ['position']}
         }
     ]);
-    $conn->respond($_) for @$forms;
+
+    for (@$forms) {
+
+        # how many times has this DF been used
+        my $count = $e->json_query({
+            select => {acqdfa => [{column => 'formula', aggregate => 1, transform => 'count', alias => 'count'}]}, 
+            from => 'acqdfa', 
+            where => {formula => $_->id}
+        })->[0];
+
+        $_->use_count($count->{count});
+        $conn->respond($_);
+    }
+
     return undef;
 }