Ajout d'un champs type_souscription dans la table souscription_dons
authorOlivier Tétard <olivier.tetard@miskin.fr>
Sun, 10 Mar 2013 20:06:36 +0000 (21:06 +0100)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Mon, 11 Mar 2013 01:06:26 +0000 (02:06 +0100)
action/editer_souscription_don.php
base/souscription.php
formulaires/editer_souscription_campagne.html
formulaires/editer_souscription_campagne.php
formulaires/souscription_don.html
formulaires/souscription_don.php

index d9cf50a..e4c0254 100644 (file)
@@ -68,7 +68,8 @@ function don_modifier($id_souscription_don, $set=false) {
                                 'adresse',
                                 'code_postal',
                                 'ville',
-                                'id_souscription_campagne'),
+                                'id_souscription_campagne',
+                                'type_souscription'),
                           // black list
                           array('statut', 'date'),
                           // donnees eventuellement fournies
index f25286a..cb22ded 100644 (file)
@@ -54,6 +54,7 @@ function souscription_declarer_tables_objets_sql($tables) {
                           "adresse"             => "text NOT NULL DEFAULT ''",
                           "ville"               => "text NOT NULL DEFAULT ''",
                           "recu_fiscal"         => "varchar(3) NOT NULL DEFAULT ''",
+                          "type_souscription"   => "varchar(255) NOT NULL DEFAULT ''",
                           "envoyer_info"        => "varchar(3) NOT NULL DEFAULT ''",
                           "date_souscription "  => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
                           "maj"                 => "TIMESTAMP"
index 16996e3..e49d5cb 100644 (file)
@@ -12,7 +12,7 @@
        [(#SAISIE{selection, type_objectif, obligatoire=oui,
           label=<:souscription_campagne:label_type_objectif:>,
           explication=<:souscription_campagne:explication_type_objectif:>,
-          datas=#ARRAY{souscriptiondon, Dons, souscriptionadhesion, Adhésions, souscriptionabonnement, Abonnements}})]
+          datas=#ARRAY{don, Dons, adhesion, Adhésions, abonnement, Abonnements}})]
        [(#SAISIE{input, objectif, obligatoire=oui, label=<:souscription_campagne:label_objectif:>, explication=<:souscription_campagne:explication_objectif:>})]
        [(#SAISIE{input, objectif_initial, obligatoire=oui, label=<:souscription_campagne:label_objectif_initial:>, explication=<:souscription_campagne:explication_objectif_initial:>})]
        [(#SAISIE{textarea, texte, label=<:souscription_campagne:label_description:>, inserer_barre=edition, rows=10})]
index 37aa3ff..95992ca 100644 (file)
@@ -53,7 +53,8 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription
                                                                 $row=array(),
                                                                 $hidden='')
 {
-  return formulaires_editer_objet_verifier('souscription_campagne',
+  
+  $ret = formulaires_editer_objet_verifier('souscription_campagne',
                                            $id_souscription_campagne,
                                            array('titre',
                                                  'objectif',
@@ -61,6 +62,11 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription
                                                  'type_objectif',
                                                  ));
 
+  $type = _request("type_objectif");
+  if(!in_array($type, array('don', 'abonnement', 'adhesion')))
+     $ret['type_objectif'] = "Type d'objectif invalide";
+
+  return $ret;
 }
 
 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new',
index c486f98..3c0a95e 100644 (file)
@@ -27,6 +27,7 @@ $(document).ready(function() {
        [(#SAISIE{oui_non, recu_fiscal, label=<:souscription_don:label_recu_fiscal:>})]
         [(#SAISIE{oui_non, envoyer_info, label=<:souscription_don:label_envoyer_info:> })]
         [(#SAISIE{hidden, id_souscription_campagne})]
+        [(#SAISIE{hidden, type_souscription})]
       </ul>
 
       <fieldset id="don_bloc_fiscal">
index ac22b2e..f9acb15 100644 (file)
@@ -79,6 +79,7 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) {
                'code_postal' => '',
                'ville' => '',
                'id_souscription_campagne' => $id_souscription_campagne,
+               'type_souscription' => "don",
                );
 }
 
@@ -106,6 +107,8 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) {
  */
 function formulaires_souscription_don_verifier_dist($id_souscription_campagne)
 {
+  $campagne = _request('id_souscription_campagne');
+
   $erreurs = formulaires_editer_objet_verifier('souscription_don', 'new',
                                                array('courriel',
                                                      'montant',
@@ -125,6 +128,19 @@ function formulaires_souscription_don_verifier_dist($id_souscription_campagne)
 
   if(intval($id_souscription_campagne) != intval(_request('id_souscription_campagne')))
     $erreurs['message_erreur'] = "Campagne invalide";
+    
+  /* La campagne doit être valide (définie dans la base) et doit
+   * accepter les dons. */
+  $type = sql_getfetsel("type_objectif",
+                        "spip_souscription_campagnes",
+                        "id_souscription_campagne=$id_souscription_campagne");
+
+  if(!$type || $type != "don")
+    $erreurs['message_erreur'] = "Type de souscription invalide";
+
+  /* Le champ 'type' (hidden) doit être « don » */
+  if(_request('type_souscription') != "don")
+    $erreurs['message_erreur'] = "Type de souscription invalide: " . _request('type_souscription');
 
   if ($e = _request('courriel') AND !email_valide($e))
     $erreurs['courriel'] = _T('form_prop_indiquer_email');
@@ -219,7 +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 == 'souscriptiondon')
+     AND $t == 'don')
     {
       return true;
     }