Index: modules/ecommerce/contrib/flexicharge/flexicharge.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ecommerce/contrib/flexicharge/flexicharge.module,v
retrieving revision 1.8.2.1.2.1.2.15
diff -u -p -r1.8.2.1.2.1.2.15 flexicharge.module
--- modules/ecommerce/contrib/flexicharge/flexicharge.module	10 Mar 2007 12:47:43 -0000	1.8.2.1.2.1.2.15
+++ modules/ecommerce/contrib/flexicharge/flexicharge.module	21 Jun 2007 17:01:04 -0000
@@ -147,16 +147,20 @@ function flexicharge_checkoutapi(&$txn, 
 
       global $user;
       // Remove charges that does not apply by ROLE.
-      foreach($charges AS $charge) {
-        $apply = FALSE;
-        // If there is a role filter on the charge.
-        if (count($charge->roles)) {
-          // Check if any roles match the filter.
-          if (is_array($charge->roles) && !count(array_intersect($user->roles, $charge->roles))) {
-            unset($charges[$charge->chid]);
-          }
+      $all_roles= user_roles();
+      $apply = FALSE;
+      foreach($charge->roles AS $charge_rid) {
+        $charge_roles[$charge_rid]=$all_roles[$charge_rid];
+        // Check if any roles match the filter.
+        if (is_array($charge->roles) && count(array_intersect($user->roles, $charge_roles))) {
+          $apply = TRUE;
+          break;
         }
       }
+      if (!$apply) {
+        unset($charges[$charge->chid]);
+      }
+    
       // Call this to include() the method files.
       _flexicharge_partners();
 
@@ -410,8 +414,8 @@ function flexicharge_admin_form_submit($
               ( provider, method, display,
                 operator, rate, position,
                 subtotal_before, subtotal_after,
-                already_added, ptypes, roles, settings)
-              VALUES ('%s', '%s', '%s', %d, %f, %d, %d, %d, %d, '%s', '%s', '%s')",
+                already_added, hide_if_zero, ptypes, roles, settings)
+              VALUES ('%s', '%s', '%s', %d, %f, %d, %d, %d, %d, %d, '%s', '%s', '%s')",
               $form['module']['provider'], $form['module']['method'],
               $form['module']['display'], $form['module']['operator'],
               $form['module']['rate'], $form['module']['position'],
