From: Olivier Tétard Date: Sun, 17 Mar 2013 20:35:39 +0000 (-0700) Subject: Merge pull request #1 from teraud/master X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=ca1954a1b7c043dfcbb0a9112373cf482446cfa7;hp=749f77571872a680268a762e54d63495fcad7b3d;p=spip_souscriptions.git Merge pull request #1 from teraud/master Notification utilisateurs --- diff --git a/action/exporter_souscriptions.php b/action/exporter_souscriptions.php index a1228f6..e68eac7 100644 --- a/action/exporter_souscriptions.php +++ b/action/exporter_souscriptions.php @@ -2,6 +2,13 @@ if (!defined("_ECRIRE_INC_VERSION")) return; function action_exporter_souscriptions_dist($arg=null) { + /* + * $arg contient les différents arguments, séparés par des '/'. Une + * fois passés dans la fonctions split, il se présente de la manière + * suivante : + * argument en position 1 : 'paye' ou 'tous' + * argument en position 2 : type de souscription (dons, adhesion) + */ /* FIXME: permettre de selectionner les exports */ /* FIXME: améliorer la jointure... */ @@ -18,20 +25,30 @@ function action_exporter_souscriptions_dist($arg=null) { exit; } - if($arg == "payes") { - $row = sql_select("id_souscription, courriel," - ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id," - ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription," - ."id_souscription_campagne, titre", - "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne) ", - "reglee='oui'"); + $arg = explode("/", $arg); + + $type_statut = $arg[0]; + $type_souscription = $arg[1]; + + /* Préparation de la requête */ + $select = "id_souscription, courriel, type_souscription," + ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id," + ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription," + ."spip_souscription_campagnes.id_souscription_campagne, titre"; + $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)"; + + $where = array(); + if($type_souscription) + $where[] = "type_souscription='$type_souscription'"; + else + $type_souscription = "tous"; + + + if($type_statut == "payes") { + $where[] = "reglee='oui'"; } - elseif($arg == "tous") { - $row = sql_select("id_souscription, courriel," - ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id," - ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription," - ."id_souscription_campagne, titre", - "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)"); + elseif($type_statut == "tous") { + /* Afficher toutes les transactions du type demandé */ } else { include_spip('inc/minipres'); @@ -39,9 +56,12 @@ function action_exporter_souscriptions_dist($arg=null) { exit; } + $row = sql_select($select, $from, $where); + $entete = array("ID du don", "Courriel", "Montant", + "Type de souscription", "Reglée", "Statut", "Date de paiement", @@ -60,6 +80,6 @@ function action_exporter_souscriptions_dist($arg=null) { /* Utilisation de la fonction exporter_csv de Bonux */ $exporter_csv = charger_fonction('exporter_csv', 'inc/', true); - $exporter_csv("souscriptions_${arg}", $row, ',', $entete); + $exporter_csv("souscriptions_${type_souscription}_${type_statut}", $row, ',', $entete); exit(); } diff --git a/formulaires/configurer_souscription.html b/formulaires/configurer_souscription.html index 7be3579..6967c87 100644 --- a/formulaires/configurer_souscription.html +++ b/formulaires/configurer_souscription.html @@ -9,8 +9,24 @@
#ACTION_FORMULAIRE{#ENV{action}} +

<:souscription:titre_configuration_adhesions:>

+ + + +

<:souscription:titre_configuration_dons:>

+ + +

 

- \ No newline at end of file + diff --git a/formulaires/configurer_souscription.php b/formulaires/configurer_souscription.php new file mode 100644 index 0000000..685070f --- /dev/null +++ b/formulaires/configurer_souscription.php @@ -0,0 +1,85 @@ + montants_array2str(lire_config("souscription/adhesion_montants")), + 'adhesion_type_saisie' => lire_config("souscription/adhesion_type_saisie"), + "adhesion_activer" => lire_config("souscription/adhesion_activer"), + + 'don_montants' => montants_array2str(lire_config("souscription/don_montants")), + 'don_type_saisie' => lire_config("souscription/don_type_saisie"), + "don_activer" => lire_config("souscription/don_activer"), + ); + + return $valeurs; +} + +function formulaires_configurer_souscription_verifier_dist() { + /* FIXME: vérifier le format de 'adhesion_montants' et 'don_montants' */ + + $erreurs = array(); + $type_saisies = array("input", "radio", "selection"); + + if(_request("adhesion_activer")) { + if(!_request("adhesion_type_saisie")) { + $erreurs["adhesion_type_saisie"] = "Ce champs est obligatoire"; + } + + if(!in_array(_request("adhesion_type_saisie"), $type_saisies)) { + $erreurs["adhesion_type_saisie"] = "Le type de saisie pour le montant est invalide"; + } + } + + if(_request("don_activer")) { + + if(!_request("don_type_saisie")) { + $erreurs["don_type_saisie"] = "Ce champs est obligatoire"; + } + + if(!in_array(_request("don_type_saisie"), $type_saisies)) { + $erreurs["don_type_saisie"] = "Le type de saisie pour le montant est invalide"; + } + } + + return $erreurs; +} + +function formulaires_configurer_souscription_traiter_dist() { + + ecrire_config("souscription/adhesion_montants", montants_str2array(_request("adhesion_montants"))); + ecrire_config("souscription/adhesion_type_saisie", _request("adhesion_type_saisie")); + ecrire_config("souscription/adhesion_activer", _request("adhesion_activer")); + + ecrire_config("souscription/don_montants", montants_str2array(_request("don_montants"))); + ecrire_config("souscription/don_type_saisie", _request("don_type_saisie")); + ecrire_config("souscription/don_activer", _request("don_activer")); + + $res = array('message_ok'=>_T('facteur:config_info_enregistree')); + + return $res; +} + + +function montants_array2str($array) { + $montants = ""; + foreach($array as $prix => $description) { + $montants .= $prix . "|" . $description . "\n"; + } + + return $montants; +} + +function montants_str2array($str) { + $montants = array(); + + foreach(explode("\n", trim($str)) as $montant) { + list($prix, $description) = explode("|", $montant, 2); + $montants[trim($prix)] = trim($description); + } + + return $montants; +} diff --git a/formulaires/editer_souscription_campagne.html b/formulaires/editer_souscription_campagne.html index 4dc3a57..4b69ab7 100644 --- a/formulaires/editer_souscription_campagne.html +++ b/formulaires/editer_souscription_campagne.html @@ -12,7 +12,7 @@ [(#SAISIE{selection, type_objectif, obligatoire=oui, label=<:souscription_campagne:label_type_objectif:>, explication=<:souscription_campagne:explication_type_objectif:>, - datas=#ARRAY{don, Dons, adhesion, Adhésions, abonnement, Abonnements}})] + datas=#ARRAY{don, Dons, adhesion, Adhésions}})] [(#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})] diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index 2ee36cf..8ee6116 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -56,7 +56,7 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription )); $type = _request("type_objectif"); - if(!in_array($type, array('don', 'abonnement', 'adhesion'))) + if(!in_array($type, array('don', 'adhesion'))) $ret['type_objectif'] = "Type d'objectif invalide"; $objectif_initial = _request('objectif_initial'); diff --git a/formulaires/souscription.html b/formulaires/souscription.html index 5a57173..a8a3959 100644 --- a/formulaires/souscription.html +++ b/formulaires/souscription.html @@ -7,7 +7,11 @@ #ACTION_FORMULAIRE{#ENV{action}}