Index: views/uc_views.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_views/views/uc_views.views.inc,v
retrieving revision 1.13.2.5.2.28
diff -u -p -r1.13.2.5.2.28 uc_views.views.inc
--- views/uc_views.views.inc	24 Jan 2011 18:17:02 -0000	1.13.2.5.2.28
+++ views/uc_views.views.inc	19 Feb 2011 02:49:02 -0000
@@ -841,6 +841,118 @@ function uc_views_views_data() {
     ),
   );
 
+  // uc_payment_receipts table
+  $data['uc_payment_receipts']['table']['group'] = t('Ubercart payment');
+  $data['uc_payment_receipts']['table']['base'] = array(
+    'field' => 'receipt_id',
+    'title' => t('Ubercart payment receipt'),
+    'help' => t("Payments posted against Ubercart orders."),
+  );
+
+  $data['uc_payment_receipts']['table']['join']['uc_orders'] = array(
+    'left_field' => 'order_id',
+    'field' => 'order_id',
+  );
+
+  $data['uc_payment_receipts']['table']['join']['users'] = array(
+    'left_field' => 'uid',
+    'field' => 'uid',
+  );
+
+  $data['uc_payment_receipts']['receipt_id'] = array(
+    'title' => t('Receipt ID'),
+    'help' => t('ID of the payment reciept'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter',
+    ),
+  );
+
+  $data['uc_payment_receipts']['amount'] = array(
+    'title' => t('Amount'),
+    'help' => t('Amount of the payment'),
+    'field' => array(
+      'handler' => 'uc_views_handler_field_money_amount',
+      'click sortable' => TRUE,
+      'float' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_float',
+    ),
+  );
+
+  $data['uc_payment_receipts']['comment'] = array(
+    'title' => t('Comment'),
+    'help' => t('Payment comment'),
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+  );
+
+  $data['uc_payment_receipts']['received'] = array(
+    'title' => t('Received date'),
+    'help' => t('Date/time payment was received'),
+    'field' => array(
+      'handler' => 'views_handler_field_date',
+      'click sortable' => TRUE,
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_date',
+    ),
+  );
+
+  $data['uc_payment_receipts']['payment_txn_id'] = array(
+    'title' => t('Transaction ID'),
+    'help' => ('The payment processor transaction ID for the payment.'),
+    'field' => array(
+      'handler' => 'uc_views_handler_field_payment_txn_id',
+      'additional fields' => array(
+        'receipt_id' => 'receipt_id',
+      ),
+    ),
+  );
+
+  $data['uc_payment_receipts']['payment_txn_type'] = array(
+    'title' => t('Transaction type'),
+    'help' => ('The payment processor transaction type for the payment.'),
+    'field' => array(
+      'handler' => 'uc_views_handler_field_payment_txn_type',
+      'additional fields' => array(
+        'receipt_id' => 'receipt_id',
+      ),
+    ),
+  );
+
+  $data['uc_payment_receipts']['payment_module'] = array(
+    'title' => t('Transaction module'),
+    'help' => ('The Ubercart payment module used for the payment.'),
+    'field' => array(
+      'handler' => 'uc_views_handler_field_payment_module',
+      'additional fields' => array(
+        'receipt_id' => 'receipt_id',
+      ),
+    ),
+  );
+
   return $data;
 }
 
@@ -966,6 +1078,9 @@ function uc_views_views_handlers() {
       'uc_views_handler_filter_zone' => array('parent' => 'views_handler_filter_in_operator',),
       'uc_views_handler_filter_payment_method' => array('parent' => 'views_handler_filter_in_operator',),
       'uc_views_handler_filter_cart_current' => array('parent' => 'views_handler_filter_boolean_operator'),
+      'uc_views_handler_field_payment_txn_id' => array('parent' => 'views_handler_field'),
+      'uc_views_handler_field_payment_txn_type' => array('parent' => 'views_handler_field'),
+      'uc_views_handler_field_payment_module' => array('parent' => 'views_handler_field'),
     ),
   );
 }
Index: views/uc_views_handler_field_payment_module.inc
===================================================================
RCS file: views/uc_views_handler_field_payment_module.inc
diff -N views/uc_views_handler_field_payment_module.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ views/uc_views_handler_field_payment_module.inc	19 Feb 2011 02:49:02 -0000
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * @file
+ * Payment module field handler
+ */
+
+class uc_views_handler_field_payment_module extends views_handler_field {
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $receipt_id = $values->{$this->aliases['receipt_id']};
+    $payment = uc_payment_load($receipt_id);
+    if ($payment != FALSE && $payment->data) {
+      $data = unserialize(db_decode_blob($payment->data));
+      $values->{$this->field_alias} = $data['txn_module'];
+    }
+    else {
+      $values->{$this->field_alias} = '';
+    }
+
+    return parent::render($values);
+  }
+
+}
Index: views/uc_views_handler_field_payment_txn_id.inc
===================================================================
RCS file: views/uc_views_handler_field_payment_txn_id.inc
diff -N views/uc_views_handler_field_payment_txn_id.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ views/uc_views_handler_field_payment_txn_id.inc	19 Feb 2011 02:49:02 -0000
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Payment transaction id field handler
+ */
+
+class uc_views_handler_field_payment_txn_id extends views_handler_field {
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $receipt_id = $values->{$this->aliases['receipt_id']};
+    $payment = uc_payment_load($receipt_id);
+    if ($payment != FALSE && $payment->data) {
+      $data = unserialize(db_decode_blob($payment->data));
+      $values->{$this->field_alias} = $data['txn_id'];
+    }
+    else {
+      $values->{$this->field_alias} = '';
+    }
+
+    return parent::render($values);
+  }
+}
Index: views/uc_views_handler_field_payment_txn_type.inc
===================================================================
RCS file: views/uc_views_handler_field_payment_txn_type.inc
diff -N views/uc_views_handler_field_payment_txn_type.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ views/uc_views_handler_field_payment_txn_type.inc	19 Feb 2011 02:49:02 -0000
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Payment transaction type field handler
+ */
+
+class uc_views_handler_field_payment_txn_type extends views_handler_field {
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function render($values) {
+    $receipt_id = $values->{$this->aliases['receipt_id']};
+    $payment = uc_payment_load($receipt_id);
+    if ($payment != FALSE && $payment->data) {
+      $data = unserialize(db_decode_blob($payment->data));
+      $values->{$this->field_alias} = $data['txn_type'];
+    }
+    else {
+      $values->{$this->field_alias} = '';
+    }
+
+    return parent::render($values);
+  }
+}
