From: Olivier Tétard Date: Tue, 10 Dec 2013 22:01:16 +0000 (+0100) Subject: Merge remote-tracking branch 'cedric/bugfix/souscription' X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=21c7fcd6ff94e60c8db8f283ad9ba33e36bc8c70;hp=4ef37fa98186f3dba24e07219aaf73f1d56c744f;p=spip_souscriptions.git Merge remote-tracking branch 'cedric/bugfix/souscription' - Nombreuses corrections pour le formulaire de souscriptions - Amélioration de l'affichage des souscriptions dans l'interface privée --- diff --git a/action/editer_souscription.php b/action/editer_souscription.php index 25edf89..66d36b9 100644 --- a/action/editer_souscription.php +++ b/action/editer_souscription.php @@ -1,23 +1,23 @@ date('Y-m-d H:i:s')); + $champs = array('date_souscription' => date('Y-m-d H:i:s')); - // Envoyer aux plugins - $champs = pipeline('pre_insertion', - array('args' => array('table' => 'spip_souscriptions'), - 'data' => $champs) - ); + // Envoyer aux plugins + $champs = pipeline('pre_insertion', + array('args' => array('table' => 'spip_souscriptions'), + 'data' => $champs) + ); - $id_souscription = sql_insertq("spip_souscriptions", $champs); + $id_souscription = sql_insertq("spip_souscriptions", $champs); - pipeline('post_insertion', - array('args' => array('table' => 'spip_souscriptions', - 'id_objet' => $id_souscription), - 'data' => $champs) - ); + pipeline('post_insertion', + array('args' => array('table' => 'spip_souscriptions', + 'id_objet' => $id_souscription), + 'data' => $champs) + ); - return $id_souscription; + return $id_souscription; } /** @@ -55,49 +55,37 @@ function souscription_inserer() { * @param array|bool $set * @return string */ -function souscription_modifier($id_souscription, $set=false) { - include_spip('inc/modifier'); - - $c = collecter_requests( - // white list - array('courriel', - 'recu_fiscal', - 'envoyer_info', - 'informer_comite_local', - 'prenom', - 'nom', - 'adresse', - 'code_postal', - 'ville', - 'telephone', - 'id_souscription_campagne', - 'type_souscription'), - // black list - array('statut', 'date'), - // donnees eventuellement fournies - $set - ); - - - $inserer_transaction = charger_fonction('inserer_transaction', 'bank'); - $id_transaction = $inserer_transaction(_request('montant'), - '', /* montant_ht */ - '', /* id_auteur */ - $id_souscription, /* auteur_id => id_souscription */ - _request('courriel')); - - if(!$id_transaction) { - return "Identifiant de transaction introuvable..."; /* FIXME: à rendre traduisible. */ - } - - /* Récupération du nom du pays */ - $code_pays = _request('pays'); - $pays = sql_getfetsel(sql_multi("nom", $GLOBALS['spip_lang']), 'spip_pays', "code='$code_pays'"); - - $c = array_merge($c, - array("id_transaction" => $id_transaction, - "pays" => $pays)); - - if($err = objet_modifier_champs('souscription', $id_souscription, array(), $c)) - return $err; +function souscription_modifier($id_souscription, $set = false){ + include_spip('inc/modifier'); + + $c = collecter_requests( + // white list + array('courriel', + 'recu_fiscal', + 'envoyer_info', + 'informer_comite_local', + 'prenom', + 'nom', + 'adresse', + 'code_postal', + 'ville', + 'telephone', + 'id_souscription_campagne', + 'id_transaction', + 'type_souscription'), + // black list + array('statut', 'date'), + // donnees eventuellement fournies + $set + ); + + + /* Récupération du nom du pays */ + $code_pays = _request('pays'); + $pays = sql_getfetsel(sql_multi("nom", $GLOBALS['spip_lang']), 'spip_pays', "code='$code_pays'"); + + $c = array_merge($c,array("pays" => $pays)); + + if ($err = objet_modifier_champs('souscription', $id_souscription, array(), $c)) + return $err; } diff --git a/formulaires/souscription.php b/formulaires/souscription.php index 2767d18..5c49e60 100644 --- a/formulaires/souscription.php +++ b/formulaires/souscription.php @@ -40,7 +40,7 @@ function formulaires_souscription_charger_dist($id_souscription_campagne){ $type = $campagne['type_objectif']; - $recu_fiscal = ""; + $recu_fiscal = "off"; if ($type=="adhesion") $recu_fiscal = "on"; @@ -90,33 +90,20 @@ function formulaires_souscription_charger_dist($id_souscription_campagne){ * Tableau des erreurs */ function formulaires_souscription_verifier_dist($id_souscription_campagne){ - $campagne = _request('id_souscription_campagne'); - $erreurs = formulaires_editer_objet_verifier('souscription', 'new', - array('courriel', - 'montant', - 'id_souscription_campagne')); - - if (!$id_souscription_campagne || intval($id_souscription_campagne)!=intval($campagne)){ - $erreurs['message_erreur'] = "Campagne invalide"; - } + $erreurs = formulaires_editer_objet_verifier('souscription', 'new', array('courriel','montant')); $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), - "spip_souscription_campagnes", "id_souscription_campagne=$id_souscription_campagne"); + "spip_souscription_campagnes", "id_souscription_campagne=".intval($id_souscription_campagne)); $type_campagne = $campagne['type_objectif']; - /* Le champ 'type' (hidden) doit être le même que celui défini dans - * la campagne. */ - if (_request('type_souscription')!=$type_campagne) - $erreurs['message_erreur'] = "Type de souscription invalide : " . _request('type_souscription'); - if (!verifier_campagne($id_souscription_campagne, $type_campagne)){ $erreurs['message_erreur'] = "La campagne à laquelle est associée cette souscription est invalide"; } - if (_request('recu_fiscal') || $type_campagne=="adhesion"){ + if (_request('recu_fiscal')==="on" || $type_campagne=="adhesion"){ foreach (array('prenom', 'nom', 'adresse', 'code_postal', 'ville', 'pays') as $obligatoire){ if (!_request($obligatoire)){ if ($type_campagne=="adhesion"){ @@ -160,7 +147,7 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne){ else { if ($campagne['configuration_specifique']!=='on'){ $montant_type = lire_config("souscription/{$type_campagne}_type_saisie", 'input'); - $montant_datas = lire_config("souscription/${$type_campagne}_montants", array()); + $montant_datas = lire_config("souscription/{$type_campagne}_montants", array()); } else { $montant_type = $campagne['type_saisie']; $montant_datas = montants_str2array($campagne['montants']); @@ -199,34 +186,55 @@ function formulaires_souscription_traiter_dist($id_souscription_campagne){ $row = array(); $hidden = ''; $retour = ''; + $ret = array(); + $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), + "spip_souscription_campagnes", "id_souscription_campagne=".intval($id_souscription_campagne)); set_request("id_souscription_campagne",$id_souscription_campagne); - - $ret = formulaires_editer_objet_traiter('souscription', - 'new', - '', - $lier_trad, - $retour, - $config_fonc, - $row, - $hidden); - - $redirect = ""; - $row = sql_fetsel("transaction_hash,id_transaction", - "spip_transactions LEFT JOIN spip_souscriptions USING(id_transaction)", - "id_souscription=" . $ret['id_souscription']); - - if (!$row){ - spip_log(sprintf("Erreur lors de la création de la transaction liée à la souscription [%s].", $ret['id_souscription']), "souscription"); - $ret['message_erreur'] = "Echec creation de la transaction"; - } else { - spip_log(sprintf("La souscription [%s], associée à la transaction [%s] a bien été crée.", $ret['id_souscription'], $row['id_transaction']), "souscription"); - $hash = $row['transaction_hash']; - $id_transaction = $row['id_transaction']; - $redirect = generer_url_public("payer-acte", "id_transaction=$id_transaction&transaction_hash=$hash", false, false); - $ret['redirect'] = $redirect; + set_request('type_souscription',$campagne['type_objectif']); + + // generer la transaction et l'associer a la souscription + $inserer_transaction = charger_fonction('inserer_transaction', 'bank'); + $montant = _request('montant'); + $id_auteur = (isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:0); + $id_transaction = $inserer_transaction($montant, + $montant, /* montant_ht */ + $id_auteur, /* id_auteur */ + '', /* auteur_id */ + _request('courriel')); + + if (!$id_transaction){ + $ret['message_erreur'] = "Erreur technique : impossible de preparer la transaction..."; /* FIXME: à rendre traduisible. */ + } + else { + + set_request("id_transaction",$id_transaction); + + $ret = formulaires_editer_objet_traiter('souscription', + 'new', + '', + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden); + + $redirect = ""; + $row = sql_fetsel("transaction_hash,id_transaction", + "spip_transactions LEFT JOIN spip_souscriptions USING(id_transaction)", + "id_souscription=" . $ret['id_souscription']); + + if (!$row){ + spip_log(sprintf("Erreur lors de la création de la transaction liée à la souscription [%s].", $ret['id_souscription']), "souscription"); + $ret['message_erreur'] = "Echec creation de la transaction"; + } else { + spip_log(sprintf("La souscription [%s], associée à la transaction [%s] a bien été crée.", $ret['id_souscription'], $row['id_transaction']), "souscription"); + $hash = $row['transaction_hash']; + $id_transaction = $row['id_transaction']; + $redirect = generer_url_public("payer-acte", "id_transaction=$id_transaction&transaction_hash=$hash", false, false); + $ret['redirect'] = $redirect; + } } - return $ret; } diff --git a/modeles/mail-souscription-echec.html b/modeles/mail-souscription-echec.html index ec0ecbe..c2b4a77 100644 --- a/modeles/mail-souscription-echec.html +++ b/modeles/mail-souscription-echec.html @@ -4,4 +4,5 @@ Bonjour[ (#PRENOM)][ (#NOM)], Votre règlement de #MONTANT euros n'a pu être pris en compte. +Référence : Transaction ##ID_TRANSACTION du [(#DATE_TRANSACTION|affdate{Y-m-d H:i:s})] diff --git a/modeles/mail-souscription-succes.html b/modeles/mail-souscription-succes.html index 6390a1a..499ce89 100644 --- a/modeles/mail-souscription-succes.html +++ b/modeles/mail-souscription-succes.html @@ -2,6 +2,7 @@ Bonjour[ (#PRENOM)][ (#NOM)], -Votre règlement de #MONTANT euros a bien été pris en compte, et nous vous en remercions. +Votre règlement de [(#MONTANT|affiche_monnaie)] a bien été pris en compte, et nous vous en remercions. +Référence : Transaction ##ID_TRANSACTION du [(#DATE_TRANSACTION|affdate{Y-m-d H:i:s})] diff --git a/paquet.xml b/paquet.xml index ad95499..e75adae 100644 --- a/paquet.xml +++ b/paquet.xml @@ -24,6 +24,8 @@ inclure="base/souscription.php"/> + diff --git a/prive/objets/contenu/souscription.html b/prive/objets/contenu/souscription.html index eeae7fa..5801f5c 100644 --- a/prive/objets/contenu/souscription.html +++ b/prive/objets/contenu/souscription.html @@ -1,26 +1,28 @@ [
- +
<:souscription:label_type_souscription:> :
(#TYPE_SOUSCRIPTION)
] [
- - (#COURRIEL) +
<:souscription:label_courriel:> :
+ (#COURRIEL)
] [
- - (#TITRE) +
<:souscription_campagne:label_titre_campagne:> :
+ (#TITRE)
] [
- +
<:souscription:label_montant_liste:> :
(#MONTANT) €
] +
+

Transaction :

    [
  • Identifiant de la transaction : (#ID_TRANSACTION)
  • ] [
  • Statut : (#STATUT)
  • ] @@ -30,58 +32,55 @@
-
- +
[
- +
<:souscription:label_nom:> :
(#NOM)
] [
- +
<:souscription:label_prenom:> :
(#PRENOM)
] [
- +
<:souscription:label_adresse:> :
(#ADRESSE)
] [
- +
<:souscription:label_code_postal:> :
(#CODE_POSTAL)
] [
- +
<:souscription:label_ville:> :
(#VILLE)
] [
- +
<:souscription:label_pays:> :
(#PAYS)
] [
- +
<:souscription:label_telephone:> :
(#TELEPHONE)
] [
- +
<:souscription:label_recu_fiscal:> :
(#RECU_FISCAL|?{"oui","non"})
] [
- +
<:souscription:label_envoyer_info:> :
(#ENVOYER_INFO|?{"oui","non"})
] [
- +
<:souscription:label_informer_comite_local:> :
(#INFORMER_COMITE_LOCAL|?{"oui","non"})
] -
- diff --git a/prive/objets/liste/souscriptions.html b/prive/objets/liste/souscriptions.html index f11dfce..8bfe5a9 100644 --- a/prive/objets/liste/souscriptions.html +++ b/prive/objets/liste/souscriptions.html @@ -15,29 +15,29 @@ [(#TRI{id_souscription,<:info_numero_abbreviation:>,ajax})] + [(#TRI{type_souscription,Type,ajax})] [(#TRI{courriel,<:souscription:label_courriel:>,ajax})] - [(#TRI{type_souscription,<:souscription:label_type_souscription:>,ajax})] - [(#TRI{montant,<:souscription:label_montant_liste:>,ajax})] [(#TRI{nom,<:souscription:label_nom:>,ajax})] + [(#TRI{montant,<:souscription:label_montant_liste:>,ajax})] [(#TRI{date_souscription,<:date:>,ajax})] [(#TRI{statut,<:souscription:label_statut:>,ajax})] - [(#TRI{id_souscription_campagne,<:souscription:label_campagne:>,ajax})] + [(#TRI{id_souscription_campagne,C,ajax})] - - [(#AUTORISER{modifier,souscription,#ID_SOUSCRIPTION}|?{ - #ID_SOUSCRIPTION, - #ID_SOUSCRIPTION - })] - [(#RANG). ]#COURRIEL - [(#TYPE_SOUSCRIPTION)] - [(#MONTANT) €] + + #ID_SOUSCRIPTION + [(#TYPE_SOUSCRIPTION)] + #COURRIEL #NOM #PRENOM - [(#DATE_SOUSCRIPTION|affdate_jourcourt)] + [(#MONTANT) €] + [(#DATE_SOUSCRIPTION|affdate{Y-m-d H:i:s})] [(#STATUT)] - [(#ID_SOUSCRIPTION_CAMPAGNE)] + #ID_SOUSCRIPTION_CAMPAGNE diff --git a/prive/squelettes/contenu/souscription.html b/prive/squelettes/contenu/souscription.html index 830a2a4..d1eaa96 100644 --- a/prive/squelettes/contenu/souscription.html +++ b/prive/squelettes/contenu/souscription.html @@ -1,9 +1,10 @@ [(#AUTORISER{voir,souscription,#ID_SOUSCRIPTION}|sinon_interdire_acces)] - + [(#BOITE_OUVRIR{[ -

(#ID_SOUSCRIPTION)[ — #PRENOM (#NOM)]

-],simple fiche_objet})] +

[(#TYPE_SOUSCRIPTION|ucfirst) ]#(#ID_SOUSCRIPTION)

+ [#PRENOM (#NOM)] +],simple fiche_objet #STATUT})] diff --git a/prive/squelettes/contenu/souscriptions.html b/prive/squelettes/contenu/souscriptions.html index 6470ee5..ab1a065 100644 --- a/prive/squelettes/contenu/souscriptions.html +++ b/prive/squelettes/contenu/souscriptions.html @@ -18,4 +18,4 @@ -}> +}> diff --git a/prive/style_prive_plugin_souscription.html b/prive/style_prive_plugin_souscription.html index e4bf7d7..5f018bd 100644 --- a/prive/style_prive_plugin_souscription.html +++ b/prive/style_prive_plugin_souscription.html @@ -5,3 +5,9 @@ .souscription_campagne #wysiwyg .contenu_montant_actuel .label {display:inline;font-weight:bold;} .souscription_campagne #wysiwyg .contenu_objectif_limiter .label {display:inline;color:inherit;} .souscription_campagne #wysiwyg .contenu_texte {} + +.souscription #wysiwyg .label {display:inline;} +.souscription .fiche_objet.commande .inner {background:url(#CHEMIN{images/rayures-gris.gif}) center repeat;} + +.liste-objets.souscriptions .commande td, +.liste-objets.souscriptions .commande th {background:url(#CHEMIN{images/rayures-gris.gif}) center repeat fixed;opacity:0.6;} \ No newline at end of file diff --git a/souscription_autorisations.php b/souscription_autorisations.php index 7af6d0a..58c8213 100644 --- a/souscription_autorisations.php +++ b/souscription_autorisations.php @@ -81,4 +81,4 @@ function autoriser_souscription_configurer_dist($faire, $mode='', $id=0, $qui = function autoriser_souscriptioncampagne_dist($faire, $mode='', $id=0, $qui = NULL, $opt = NULL){ return autoriser('webmestre'); -} +} \ No newline at end of file diff --git a/souscription_pipelines.php b/souscription_pipelines.php index fb078ac..e926fb4 100644 --- a/souscription_pipelines.php +++ b/souscription_pipelines.php @@ -67,4 +67,10 @@ function _trouver_modele_courriel_reglement($type, $id_souscription_campagne) { return $modele; } + + +function souscription_bank_traiter_reglement($flux){ + $flux['data'].="
Vous allez recevoir un email de confirmation."; + return $flux; +} ?>