Преглед на файлове

add permission to access to payment
prefile webform 11186 with recorded user profile infos

Bachir Soussi Chiadmi преди 10 години
родител
ревизия
4756fdaf77
променени са 1 файла, в които са добавени 83 реда и са изтрити 34 реда
  1. 83 34
      materio_user.module

+ 83 - 34
materio_user.module

@@ -18,6 +18,10 @@ function materio_user_permission() {
       'title' => t('view own user profile'),
       'description' => t('view own user profile'),
     ),
+    'access to online payment' =>  array(
+      'title' => t('access to online payment'),
+      'description' => t('Access to online payment'),
+    ),
   );
 }
 
@@ -168,8 +172,8 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) {
     // );
 
     // $form['#submit'][] = "materio_user_user_register_form_submit";
-
   }
+
   if($form_id == "user_login" ){
     // dsm($form);
 
@@ -179,25 +183,22 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) {
     // if( $_GET['q'] == 'node/11187' ){
     //   $form['#submit'][] = "materio_user_user_login_form_submit";
     // }
-
   }
 
   # https://drupal.org/comment/6293810#comment-6293810
   if( $form_id == "webform_client_form_11186" ){
     // dsm($form, '$form');
-    $form['#validate'][] = "materio_user_webform_client_11186_validate";
-    $form['#submit'][] = "materio_user_webform_client_11186_submit";
+    materio_user_webform_client_11186_form_alter($form, $form_state, $form_id);
   }
 
+  if( $form_id == "uc_cart_checkout_form" ){
+    materio_user_uc_cart_checkout_form_alter($form, $form_state, $form_id);
+  }
 
   // if( $form_id == "user_profile_form" ){
   //   //dsm($form, '$form');
   //   $form['account']['pass']['#type'] = "new_password_confirm";
   // }
-
-  if( $form_id == "uc_cart_checkout_form" ){
-    materio_user_uc_cart_checkout_form_alter($form, $form_state, $form_id);
-  }
 }
 
 // function materio_user_user_register_form_submit($form, &$form_state){
@@ -231,6 +232,45 @@ function materio_user_form_alter(&$form, &$form_state, $form_id) {
 //   );
 // }
 
+
+/**
+* subscription webform (nid : 11186)
+*/
+
+# prefill the webform form with user profil values
+# add validate and submit functions
+function materio_user_webform_client_11186_form_alter(&$form, &$form_state, $form_id){
+  // dsm($form_id, 'form_id');
+  // dsm($form, "form");
+  // dsm($form_state, "form_state");
+
+  $form['#validate'][] = "materio_user_webform_client_11186_validate";
+  $form['#submit'][] = "materio_user_webform_client_11186_submit";
+
+  global $user;
+  // dsm($user, 'user');
+
+  $member_profile = profile2_load_by_user($user, 'adherent');
+  // dsm($member_profile, "member_profile");
+
+  $columnright = &$form['submitted']['column_right'];
+  $columnright['me']['firstname']['#default_value'] = $member_profile->field_first_name['und'][0]['value'];
+  $columnright['me']['name']['#default_value'] = $member_profile->field_name['und'][0]['value'];
+  $columnright['company']['administrative_e_mail']['#default_value'] = $member_profile->field_administrative_email['und'][0]['value'];
+  $columnright['company']['s']['company']['#default_value'] = $member_profile->field_organization['und'][0]['value'];
+  $columnright['company']['s']['activity_sector']['#default_value'] = $member_profile->field_activity_sector['und'][0]['value'];
+  $columnright['company']['d']['vat_number_intra_ce']['#default_value'] = $member_profile->field_vat_number_intra_ce['und'][0]['value'];
+  $columnright['company']['d']['website']['#default_value'] = $member_profile->field_user_website['und'][0]['url'];
+
+  $address = $member_profile->field_adresse['und'][0];
+  $formaddress = &$columnright['company']['location']['#address'];
+  $formaddress['country'] = $address['country'];
+  $formaddress['thoroughfare'] = $address['thoroughfare'];
+  $formaddress['premise'] = $address['premise'];
+  $formaddress['postal_code'] = $address['postal_code'];
+  $formaddress['locality'] = $address['locality'];
+}
+
 function materio_user_webform_client_11186_validate($form, &$form_state){
   // dsm($form, 'form');
   // dsm($form_state, 'form_state');
@@ -272,14 +312,14 @@ function materio_user_webform_client_11186_validate($form, &$form_state){
   }
 }
 
-/**
-* subscription webform (nid : 11186)
-*
-* retreive from the web form info, record them into user profil
-*/
-function materio_user_webform_client_11186_submit($form, &$form_state){
+#retreive from the web form info, record them into user profil
+function materio_user_webform_client_11186_submit(&$form, &$form_state){
   // dsm($form, 'form');
   // dsm($form_state, 'form_state');
+
+  $node = &$form['#node'];
+  // dsm($node, '$node');
+
   $values = $form_state['values']['submitted_tree'];
   // dsm($values, '$values');
 
@@ -287,27 +327,39 @@ function materio_user_webform_client_11186_submit($form, &$form_state){
   materio_user_flatenize_form_values($values, $flat_values);
   // dsm($flat_values, 'flat_values');
 
+  # records values in member profile
+  materio_user_record_member_profile($flat_values);
+
   # redirect membership form to checkout with good option selected
-  $subscription_level = $flat_values['membership_options'];
-  // http://www.ubercart.org/node/1427
-  $form_state['redirect'] = array(
-    'cart/add/e-p11849_q1_a1o'.$subscription_level.'-membershipform',
-    array(
-      'query' => array(
-        'destination' => 'cart/checkout',
+  if(user_access('access to online payment')){
+
+    // forcer le vidage du panier
+    uc_cart_empty(uc_cart_get_id());
+
+    // fill the cart and redirect to checkout
+    // cf : http://www.ubercart.org/node/1427
+    $subscription_level = $flat_values['membership_options'];
+    $form_state['redirect'] = array(
+      'cart/add/e-p11849_q1_a1o'.$subscription_level.'-membershipform',
+      array(
+        'query' => array(
+          'destination' => 'cart/checkout',
+        ),
+        // 'fragment' => 'baz',
       ),
-      // 'fragment' => 'baz',
-    ),
-  );
+    );
 
-  # records values in member profile
-  materio_user_record_member_profile($flat_values);
+    // TODO effacer le message de soumissions du formulaire -> pas moyen de overwriter le message de webform depuis ici, dommage
+    // $node->webform['confirmation'] = '';
+
+    # create collaborators users account incase of membership option is 3
+    # NO wait for checkout for that
+    //materio_user_create_collaborators_users();
 
-  # create collaborators users account incase of membership option is 3
-  # NO wait for checkout for that
-  //materio_user_create_collaborators_users();
+    // enregistrer le type d'adonnement chez les user
+
+  }
 
-  // enregistrer le type d'adonnement chez les user
 }
 
 function materio_user_record_member_profile($values) {
@@ -423,7 +475,7 @@ function materio_user_uc_cart_checkout_form_alter(&$form, &$form_state, $form_id
  * Implements hook_uc_order();
  */
 function materio_user_order($op, $order, $arg2) {
-  dsm($op, "matyerio_user_uc_order | op");
+  // dsm($op, "matyerio_user_uc_order | op");
   // dsm($order, "order");
   // dsm($arg2, "arg2");
 
@@ -434,7 +486,6 @@ function materio_user_order($op, $order, $arg2) {
   }
 }
 
-
 # not used yet
 function materio_user_create_collaborators_users(){
 
@@ -497,7 +548,6 @@ function materio_user_help($path, $arg) {
   }
 }
 
-
 /**
  * Implements hook_block_view_alter().
  */
@@ -509,7 +559,6 @@ function materio_user_block_view_alter(&$data, $block) {
   }
 }
 
-
 /**
  * Define constants
  */