Merge pull request #1 from teraud/master
[spip_souscriptions.git] / formulaires / souscription.php
index d0efa4c..37d4235 100644 (file)
@@ -69,17 +69,27 @@ function formulaires_souscription_charger_dist($id_souscription_campagne) {
   if(!verifier_campagne($id_souscription_campagne))
     return false;
 
+  /* Récupération des information à propos de la campagne */
+  $type = sql_getfetsel("type_objectif",
+                        "spip_souscription_campagnes",
+                        "id_souscription_campagne=$id_souscription_campagne");
+
+  $recu_fiscal = "";
+  if($type == "adhesion")
+    $recu_fiscal = "on";
+
   return array('montant' => '',
                'courriel' => '',
-               'recu_fiscal' => '',
+               'recu_fiscal' => $recu_fiscal,
                'envoyer_info' => 'on',
+               'informer_comite_local' => 'on',
                'prenom' => '',
                'nom' => '',
                'adresse' => '',
                'code_postal' => '',
                'ville' => '',
                'id_souscription_campagne' => $id_souscription_campagne,
-               'type_souscription' => "don",
+               'type_souscription' => $type,
                );
 }
 
@@ -115,15 +125,7 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne)
                                                      'id_souscription_campagne'));
 
   if(!verifier_campagne($id_souscription_campagne)) {
-    $erreurs['message_erreur'] = "La campagne à laquelle est associée ce don est invalide";
-  }
-
-  if(_request('recu_fiscal')) {
-    foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville') as $obligatoire) {
-      if(!_request($obligatoire)) {
-        $erreurs[$obligatoire] = 'Ce champ est obligatoire (reçu fiscal demandé)';
-      }
-    }
+    $erreurs['message_erreur'] = "La campagne à laquelle est associée cette souscription est invalide";
   }
 
   if(!$id_souscription_campagne || intval($id_souscription_campagne) != intval($campagne)) {
@@ -136,13 +138,28 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne)
                         "spip_souscription_campagnes",
                         "id_souscription_campagne=$id_souscription_campagne");
 
-  if(!$type || $type != "don")
+  if(!$type || !in_array($type, array("don", "adhesion")))
     $erreurs['message_erreur'] = "Type de souscription invalide";
 
-  /* Le champ 'type' (hidden) doit être « don » */
-  if(_request('type_souscription') != "don")
+  /* Le champ 'type' (hidden) doit être le même que celui défini dans
+   * la campagne. */
+  if(_request('type_souscription') != $type)
     $erreurs['message_erreur'] = "Type de souscription invalide: " . _request('type_souscription');
 
+
+  if(_request('recu_fiscal') || $type == "adhesion") {
+    foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville') as $obligatoire) {
+      if(!_request($obligatoire)) {
+        if($type == "adhesion") {
+          $erreurs[$obligatoire] = "Ce champ est obligatoire pour les adhésions";
+        }
+        else {
+          $erreurs[$obligatoire] = 'Ce champ est obligatoire (reçu fiscal demandé)';
+        }
+      }
+    }
+  }
+
   if ($e = _request('courriel') AND !email_valide($e))
     $erreurs['courriel'] = _T('form_prop_indiquer_email');
 
@@ -218,8 +235,7 @@ function verifier_campagne($id_souscription_campagne) {
 
   /* Vérification de l'existance de la *campagne*, de son *statut* et de la *concordance du type* */
   if(intval($id_souscription_campagne)
-     AND $t = sql_getfetsel('type_objectif', 'spip_souscription_campagnes', 'id_souscription_campagne='.intval($id_souscription_campagne))
-     AND $t == 'don')
+     AND $t = sql_getfetsel('type_objectif', 'spip_souscription_campagnes', 'id_souscription_campagne='.intval($id_souscription_campagne)))
     {
       return true;
     }