From 9fe2bfe328145ac630d18929c0197c98402381f1 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 6 Nov 2011 14:21:34 -0200 Subject: Refactoring muamba_check_availability() and adding new views handlers --- muamba.db.inc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'muamba.db.inc') diff --git a/muamba.db.inc b/muamba.db.inc index 0500dd9..21e2d8c 100644 --- a/muamba.db.inc +++ b/muamba.db.inc @@ -113,9 +113,13 @@ function muamba_get_transaction($mid) { * Item nid or node object. * * @return - * Transaction nid there's an ongoing transaction. + * Data of the ongoing transaction. + * + * @todo + * There might be more than one active transaction for + * a given item if they all are in the "requested" state. */ -function muamba_current_transaction($data) { +function muamba_current_transaction($data, $owner = NULL) { if (is_object($data)) { $nid = (int) $data->nid; } @@ -149,7 +153,7 @@ function muamba_current_transaction($data) { * Item nid or node object. * * @return - * TRUE if user already requested an item, FALSE otherwise. + * TRUE if item is borrowed, FALSE otherwise. */ function muamba_check_availability($data) { if (is_object($data)) { @@ -159,7 +163,15 @@ function muamba_check_availability($data) { $nid = (int) $data; } - $current = muamba_current_transaction($nid); + $query = db_select('muamba', 'm'); + $query->fields('m', array('mid', 'nid', 'uid', 'owner', 'status', 'thread_id')); + + $query + ->condition('m.nid', $nid, '=') + ->condition('m.active', '1', '=') + ->condition('m.status', MUAMBA_REQUESTED, '!='); + + $current = $query->execute()->fetchAll(); if (empty($current)) { return TRUE; -- cgit v1.2.3