xact detail payments via flattener/pcrud
authorBill Erickson <berick@esilibrary.com>
Thu, 5 Jun 2014 14:40:18 +0000 (10:40 -0400)
committerBill Erickson <berick@esilibrary.com>
Thu, 5 Jun 2014 14:40:18 +0000 (10:40 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/examples/fm_IDL.xml
Open-ILS/src/templates/staff/circ/patron/t_xact_details.tt2
Open-ILS/web/js/ui/default/staff/circ/patron/bills.js

index 7a5a756..451975f 100644 (file)
@@ -2439,7 +2439,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
             </actions>
         </permacrud>
        </class>
-       <class id="mccp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_card_payment" oils_persist:tablename="money.credit_card_payment" reporter:label="Credit Card Payment">
+       <class id="mccp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::credit_card_payment" oils_persist:tablename="money.credit_card_payment" reporter:label="Credit Card Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field name="accepting_usr" />
                        <field name="amount" reporter:datatype="money" />
@@ -2467,6 +2467,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
        <class id="cxt" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="config::xml_transform" oils_persist:tablename="config.xml_transform" reporter:label="XML/XSLT Transform Definition">
                <fields oils_persist:primary="name">
@@ -3492,7 +3499,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
                </links>
        </class>
-       <class id="mcp" controller="open-ils.cstore" oils_obj:fieldmapper="money::cash_payment" oils_persist:tablename="money.cash_payment" reporter:label="Cash Payment">
+       <class id="mcp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::cash_payment" oils_persist:tablename="money.cash_payment" reporter:label="Cash Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field name="accepting_usr" reporter:datatype="link"/>
                        <field name="amount" reporter:datatype="money" />
@@ -3511,8 +3518,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
-       <class id="mfp" controller="open-ils.cstore" oils_obj:fieldmapper="money::forgive_payment" oils_persist:tablename="money.forgive_payment" reporter:label="Forgive Payment">
+       <class id="mfp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::forgive_payment" oils_persist:tablename="money.forgive_payment" reporter:label="Forgive Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field name="accepting_usr" reporter:datatype="link"/>
                        <field name="amount" reporter:datatype="money" />
@@ -3529,6 +3543,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
        <class id="mrd" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::record_descriptor" oils_persist:tablename="metabib.rec_descriptor" reporter:label="Basic Record Descriptor">
                <fields oils_persist:primary="id" oils_persist:sequence="metabib.rec_descriptor_id_seq">
@@ -5984,7 +6005,7 @@ SELECT  usr,
                        <link field="bucket" reltype="has_a" key="id" map="" class="cub"/>
                </links>
        </class>
-       <class id="mcrp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_payment" oils_persist:tablename="money.credit_payment" reporter:label="House Credit Payment">
+       <class id="mcrp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::credit_payment" oils_persist:tablename="money.credit_payment" reporter:label="House Credit Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
                        <field reporter:label="Amount" name="amount" reporter:datatype="money" />
@@ -6001,6 +6022,13 @@ SELECT  usr,
                        <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
        <class id="afr" controller="open-ils.cstore" oils_obj:fieldmapper="authority::full_rec" oils_persist:tablename="authority.full_rec" reporter:label="Full Authority Record">
                <fields oils_persist:primary="id" oils_persist:sequence="authority.full_rec_id_seq">
@@ -6258,7 +6286,7 @@ SELECT  usr,
             </actions>
         </permacrud>
        </class>
-       <class id="mwp" controller="open-ils.cstore" oils_obj:fieldmapper="money::work_payment" oils_persist:tablename="money.work_payment" reporter:label="Work Payment">
+       <class id="mwp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::work_payment" oils_persist:tablename="money.work_payment" reporter:label="Work Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
                        <field reporter:label="Amount" name="amount" reporter:datatype="money" />
@@ -6275,8 +6303,15 @@ SELECT  usr,
                        <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
-       <class id="mgp" controller="open-ils.cstore" oils_obj:fieldmapper="money::goods_payment" oils_persist:tablename="money.goods_payment" reporter:label="Goods Payment">
+       <class id="mgp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::goods_payment" oils_persist:tablename="money.goods_payment" reporter:label="Goods Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
                        <field reporter:label="Amount" name="amount" reporter:datatype="money" />
@@ -6293,6 +6328,13 @@ SELECT  usr,
                        <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
        <class id="aoc" controller="open-ils.cstore" oils_obj:fieldmapper="action::open_circulation" oils_persist:tablename="action.open_circulation" reporter:label="Open Circulation">
                <fields oils_persist:primary="id" oils_persist:sequence="">
@@ -6362,7 +6404,7 @@ SELECT  usr,
             </actions>
         </permacrud>
        </class>
-       <class id="mckp" controller="open-ils.cstore" oils_obj:fieldmapper="money::check_payment" oils_persist:tablename="money.check_payment" reporter:label="Check Payment">
+       <class id="mckp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="money::check_payment" oils_persist:tablename="money.check_payment" reporter:label="Check Payment">
                <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
                        <field reporter:label="Accepting Staff Member" name="accepting_usr" reporter:datatype="link"/>
                        <field reporter:label="Amount" name="amount" reporter:datatype="money" />
@@ -6382,6 +6424,13 @@ SELECT  usr,
                        <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
                        <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
                </links>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <retrieve permission="VIEW_USER_TRANSACTIONS">
+                    <context link="xact" jump="usr" field="home_ou"/>
+                </retrieve>
+                       </actions>
+               </permacrud>
        </class>
        <class id="acp" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::copy" oils_persist:tablename="asset.copy" reporter:core="true" reporter:label="Item">
                <fields oils_persist:primary="id" oils_persist:sequence="asset.copy_id_seq">
index 1345562..078b9f1 100644 (file)
 <br/>
 <eg-grid
   main-label="[% l('Payments') %]"
-  features="-sort,-multisort"
   idl-class="mp"
   id-field="id"
   auto-fields="true"
-  page-size="10"
-  items-provider="paymentGridProvider">
+  query="paymentQuery"
+  sort="paymentSort"
+  revision="paymentRevision"
+  page-size="10">
   <eg-grid-action 
     label="[% l('Edit Note') %]" handler="editPaymentNotes"></eg-grid-action>
+
+  <eg-grid-field path="cash_payment.cash_drawer.name" 
+    label="[% l('Cash Drawer') %]"></eg-grid-field>
 </eg-grid>
 
index 94ead2a..0e0e93c 100644 (file)
@@ -163,6 +163,7 @@ function($q , egCore , patronSvc) {
         );
     }
 
+    // TODO: no longer needed?
     service.fetchPayments = function(xact_id) {
         return egCore.net.request(
             'open-ils.circ',
@@ -645,13 +646,9 @@ function($scope,  $q , $routeParams , egCore , egGridDataProvider , patronSvc ,
     $scope.billSort = ['billing_ts'];
     $scope.billRevision = 0;
 
-    // --- payments grid
-    var paymentProvider = egGridDataProvider.instance();
-    paymentProvider.get = function(offset, count) {
-        return paymentProvider.arrayNotifier(payments, offset, count);
-    }
-    paymentProvider.itemFieldValue = paymentProvider.nestedItemFieldValue;
-    $scope.paymentGridProvider = paymentProvider;
+    $scope.paymentQuery = function() {return {xact : xact_id}};
+    $scope.paymentSort = ['payment_ts'];
+    $scope.paymentRevision = 0;
 
     // -- actions
     $scope.voidBillings = function(bill_list) {
@@ -680,7 +677,10 @@ function($scope,  $q , $routeParams , egCore , egGridDataProvider , patronSvc ,
     }
 
     // batch-edit billing and payment notes, depending on 'type'
-    function editNotes(ids, notes, type) {
+    function editNotes(selected, type) {
+        var notes = selected.map(function(b){ return b.note }).join(',');
+        var ids = selected.map(function(b){ return b.id });
+
         // show the note edit prompt
         egPromptDialog.open(
             egCore.strings.EDIT_BILL_PAY_NOTE, notes, {
@@ -691,13 +691,8 @@ function($scope,  $q , $routeParams , egCore , egGridDataProvider , patronSvc ,
                     if (type == 'payment') func = 'updatePaymentNotes';
 
                     billSvc[func](value, ids).then(function() {
-
                         if (type == 'payment') {
-                            billSvc.fetchPayments(xact_id).then(function(ps) {
-                                payments = ps;
-                                paymentProvider.increment();
-                            });
-
+                            $scope.paymentRevision++;
                         } else {
                             $scope.billRevision++;
                         }
@@ -708,16 +703,11 @@ function($scope,  $q , $routeParams , egCore , egGridDataProvider , patronSvc ,
     }
 
     $scope.editBillNotes = function(selected) {
-        // bill data is flattened
-        var notes = selected.map(function(b){ return b.note }).join(',');
-        var ids = selected.map(function(b){ return b.id });
-        editNotes(ids, notes, 'bill');
+        editNotes(selected, 'bill');
     }
 
     $scope.editPaymentNotes = function(selected) {
-        var notes = selected.map(function(b){ return b.note() }).join(',');
-        var ids = selected.map(function(b){ return b.id() });
-        editNotes(ids, notes, 'payment');
+        editNotes(selected, 'payment');
     }
 
     // -- retrieve our data
@@ -737,11 +727,6 @@ function($scope,  $q , $routeParams , egCore , egGridDataProvider , patronSvc ,
             }
         }
     });
-
-    billSvc.fetchPayments(xact_id).then(function(ps) {
-        payments = ps;
-        paymentProvider.increment();
-    });
 }])
 
 
@@ -825,6 +810,7 @@ function($scope,  $q , egCore , patronSvc , billSvc , egPromptDialog , $location
 .controller('BillPaymentHistoryCtrl',
        ['$scope','$q','egCore','patronSvc','billSvc','$location',
 function($scope,  $q , egCore , patronSvc , billSvc , $location) {
+
     $scope.gridControls = {
         selectedItems : function(){return []},
         activateItem : function(item) {