? duplicatepatronuid.patch Index: patron/patron.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/library/patron/patron.install,v retrieving revision 1.2 diff -u -p -r1.2 patron.install --- patron/patron.install 13 Aug 2008 16:19:42 -0000 1.2 +++ patron/patron.install 17 May 2010 19:00:15 -0000 @@ -103,3 +103,8 @@ function patron_uninstall() { drupal_set_message(t('Library patron module successfully uninstalled')); } +function patron_update_1() { + $ret = array(); + $ret[] = update_sql("UPDATE {library_patrons} SET patron_uid = NULL WHERE patron_uid = 0"); + return $ret; +} Index: patron/patron.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/library/patron/patron.module,v retrieving revision 1.7 diff -u -p -r1.7 patron.module --- patron/patron.module 17 May 2010 18:02:49 -0000 1.7 +++ patron/patron.module 17 May 2010 19:00:16 -0000 @@ -120,14 +120,24 @@ function patron_db_rewrite_sql($query, $ * Implemenation of hook_insert(). */ function patron_insert($node) { - db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', %d, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled); + if (empty($node->patron_uid)) { + db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', NULL, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->barcode, $node->disabled); + } + else { + db_query("INSERT INTO {library_patrons} (nid, name_last, name_first, email, patron_uid, barcode, disabled) VALUES (%d, '%s', '%s', '%s', %d, '%s', %d)", $node->nid, $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled); + } } /** * Implemenation of hook_update(). */ function patron_update($node) { - db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = %d, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled, $node->nid); + if (empty($node->patron_uid)) { + db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = NULL, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->barcode, $node->disabled, $node->nid); + } + else { + db_query("UPDATE {library_patrons} SET name_last = '%s', name_first = '%s', email = '%s', patron_uid = %d, barcode = '%s', disabled = %d WHERE nid = %d", $node->name_last, $node->name_first, $node->email, $node->patron_uid, $node->barcode, $node->disabled, $node->nid); + } } /** @@ -187,7 +197,7 @@ function patron_nodeapi(&$node, $op, $te $node->uid = $patron_uid; } else { - $node->patron_uid = ''; + $node->patron_uid = NULL; } } break; @@ -210,7 +220,7 @@ function patron_load($node) { function patron_form(&$node) { $type = node_get_types('type', $node); $patrons_are_users = variable_get('patron_is_user', PATRON_NOT_USER) == PATRON_USER; - $patron_uid = ''; + $patron_uid = NULL; if ($patrons_are_users && !empty($node->email)) { $exists = db_result(db_query_range("SELECT uid from {users} where mail= '%s'", $node->email, 0, 1)); if ($exists) {