<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
-function action_editer_souscription_dist($arg=null) {
+function action_editer_souscription_dist($arg = null){
- if (is_null($arg)) {
- $securiser_action = charger_fonction('securiser_action', 'inc');
- $arg = $securiser_action();
- }
+ if (is_null($arg)){
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ }
- if (!$id_souscription = intval($arg)) {
- $id_souscription = souscription_inserer();
- }
+ if (!$id_souscription = intval($arg)){
+ $id_souscription = souscription_inserer();
+ }
- if (!$id_souscription)
- return array(0, '');
+ if (!$id_souscription)
+ return array(0, '');
- $err = souscription_modifier($id_souscription);
+ $err = souscription_modifier($id_souscription);
- return array($id_souscription, $err);
+ return array($id_souscription, $err);
}
/**
*
* @return bool
*/
-function souscription_inserer() {
+function souscription_inserer(){
- $champs = array('date_souscription' => 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;
}
/**
* @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;
}
$type = $campagne['type_objectif'];
- $recu_fiscal = "";
+ $recu_fiscal = "off";
if ($type=="adhesion")
$recu_fiscal = "on";
* 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"){
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']);
$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;
}
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})]
</BOUCLE_infos_souscription>
<BOUCLE_infos_souscription(SOUSCRIPTIONS spip_transactions){id_transaction}>
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})]
</BOUCLE_infos_souscription>
inclure="base/souscription.php"/>
<pipeline nom="optimiser_base_disparus"
inclure="souscription_pipelines.php"/>
+ <pipeline nom="bank_traiter_reglement"
+ inclure="souscription_pipelines.php"/>
<pipeline nom="trig_bank_notifier_reglement"
inclure="souscription_pipelines.php"/>
<BOUCLE_souscription(SOUSCRIPTIONS transactions souscription_campagnes){id_souscription}>
[<div class="champ contenu_type_souscription[ (#TYPE_SOUSCRIPTION*|strlen|?{'',vide})]">
- <label><:souscription:label_type_souscription:> : </label>
+ <div class='label'><:souscription:label_type_souscription:> : </div>
<span dir="#LANG_DIR" class="#EDIT{type_souscription} type_souscription">(#TYPE_SOUSCRIPTION)</span>
</div>]
[<div class="champ contenu_courriel[ (#COURRIEL*|strlen|?{'',vide})]">
- <label><:souscription:label_courriel:> : </label>
- <span dir="#LANG_DIR" class="#EDIT{courriel} courriel">(#COURRIEL)</span>
+ <div class='label'><:souscription:label_courriel:> : </div>
+ <span dir="#LANG_DIR" class="#EDIT{courriel} courriel"><a href="mailto:#COURRIEL">(#COURRIEL)</a></span>
</div>]
[<div class="champ contenu_titre_campagne[ (#TITRE*|strlen|?{'',vide})]">
- <label><:souscription:label_titre_campagne:> : </label>
- <span dir="#LANG_DIR" class="#EDIT{titre} titre">(#TITRE)</span>
+ <div class='label'><:souscription_campagne:label_titre_campagne:> : </div>
+ <span dir="#LANG_DIR" class="#EDIT{titre} titre"><a href="[(#ID_SOUSCRIPTION_CAMPAGNE|generer_url_entite{souscription_campagne})]">(#TITRE)</a></span>
</div>]
[<div class="champ contenu_montant[ (#MONTANT*|strlen|?{'',vide})]">
- <label><:souscription:label_montant_liste:> : </label>
+ <div class='label'><:souscription:label_montant_liste:> : </div>
<span dir="#LANG_DIR" class="#EDIT{montant} montant">(#MONTANT) €</span>
</div>]
+<hr />
<div>
+ <h3>Transaction :</h3>
<ul>
[<li><strong>Identifiant de la transaction</strong> : <span dir="#LANG_DIR" class="#EDIT{id_transaction} id_transaction"><a href="[(#URL_ECRIRE{transactions}|parametre_url{id_transaction,#ID_TRANSACTION})]">(#ID_TRANSACTION)</a></li>]
[<li><strong>Statut</strong> : <span dir="#LANG_DIR" class="#EDIT{statut} statut">(#STATUT)</span></li>]
</ul>
</div>
-<div style="border: 1px solid black ; margin: 1em; padding: 1em;">
-
+<hr />
[<div class="champ contenu_nom[ (#NOM*|strlen|?{'',vide})]">
- <label><:souscription:label_nom:> : </label>
+ <div class='label'><:souscription:label_nom:> : </div>
<span dir="#LANG_DIR" class="#EDIT{nom} nom">(#NOM)</span>
</div>]
[<div class="champ contenu_prenom[ (#PRENOM*|strlen|?{'',vide})]">
- <label><:souscription:label_prenom:> : </label>
+ <div class='label'><:souscription:label_prenom:> : </div>
<span dir="#LANG_DIR" class="#EDIT{prenom} prenom">(#PRENOM)</span>
</div>]
[<div class="champ contenu_adresse[ (#ADRESSE*|strlen|?{'',vide})]">
- <label><:souscription:label_adresse:> : </label>
+ <div class='label'><:souscription:label_adresse:> : </div>
<span dir="#LANG_DIR" class="#EDIT{adresse} adresse">(#ADRESSE)</span>
</div>]
[<div class="champ contenu_code_postal[ (#CODE_POSTAL*|strlen|?{'',vide})]">
- <label><:souscription:label_code_postal:> : </label>
+ <div class='label'><:souscription:label_code_postal:> : </div>
<span dir="#LANG_DIR" class="#EDIT{code_postal} code_postal">(#CODE_POSTAL)</span>
</div>]
[<div class="champ contenu_ville[ (#VILLE*|strlen|?{'',vide})]">
- <label><:souscription:label_ville:> : </label>
+ <div class='label'><:souscription:label_ville:> : </div>
<span dir="#LANG_DIR" class="#EDIT{ville} ville">(#VILLE)</span>
</div>]
[<div class="champ contenu_pays[ (#PAYS*|strlen|?{'',vide})]">
- <label><:souscription:label_pays:> : </label>
+ <div class='label'><:souscription:label_pays:> : </div>
<span dir="#LANG_DIR" class="#EDIT{pays} pays">(#PAYS)</span>
</div>]
[<div class="champ contenu_telephone[ (#TELEPHONE*|strlen|?{'',vide})]">
- <label><:souscription:label_telephone:> : </label>
+ <div class='label'><:souscription:label_telephone:> : </div>
<span dir="#LANG_DIR" class="#EDIT{telephone} telephone">(#TELEPHONE)</span>
</div>]
[<div class="champ contenu_recu_fiscal">
- <label><:souscription:label_recu_fiscal:> : </label>
+ <div class='label'><:souscription:label_recu_fiscal:> : </div>
<span dir="#LANG_DIR" class="#EDIT{recu_fiscal} recu_fiscal">(#RECU_FISCAL|?{"oui","non"})</span>
</div>]
[<div class="champ contenu_envoyer_info">
- <label><:souscription:label_envoyer_info:> : </label>
+ <div class='label'><:souscription:label_envoyer_info:> : </div>
<span dir="#LANG_DIR" class="#EDIT{envoyer_info} envoyer_info">(#ENVOYER_INFO|?{"oui","non"})</span>
</div>]
[<div class="champ contenu_informer_comite_local">
- <label><:souscription:label_informer_comite_local:> : </label>
+ <div class='label'><:souscription:label_informer_comite_local:> : </div>
<span dir="#LANG_DIR" class="#EDIT{informer_comite_local} informer_comite_local">(#INFORMER_COMITE_LOCAL|?{"oui","non"})</span>
</div>]
-</div>
-
</BOUCLE_souscription>
<thead>
<tr class="first_row">
<th class="id" scope="col">[(#TRI{id_souscription,<:info_numero_abbreviation:>,ajax})]</th>
+ <th class="type_souscription" scope="col">[(#TRI{type_souscription,Type,ajax})]</th>
<th class="courriel" scope="col">[(#TRI{courriel,<:souscription:label_courriel:>,ajax})]</th>
- <th class="type_souscription" scope="col">[(#TRI{type_souscription,<:souscription:label_type_souscription:>,ajax})]</th>
- <th class="montant" scope="col">[(#TRI{montant,<:souscription:label_montant_liste:>,ajax})]</th>
<th class="nom" scope="col">[(#TRI{nom,<:souscription:label_nom:>,ajax})]</th>
+ <th class="montant" scope="col">[(#TRI{montant,<:souscription:label_montant_liste:>,ajax})]</th>
<th class="date" scope="col">[(#TRI{date_souscription,<:date:>,ajax})]</th>
<th class="statut" scope="col">[(#TRI{statut,<:souscription:label_statut:>,ajax})]</th>
- <th class="id_souscription_campagne" scope="col">[(#TRI{id_souscription_campagne,<:souscription:label_campagne:>,ajax})]</th>
+ <th class="id_souscription_campagne" scope="col">[(#TRI{id_souscription_campagne,C,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_souscriptions(SOUSCRIPTIONS transactions){id_transaction?}{id_mot?}{id_auteur?}{where?}{recherche?}{type_souscription==#ENV{type_souscription,'.'}}{statut==#ENV{statut_transaction,'.'}}{tri #ENV{par,id_souscription},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
- <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
- <td class="id">[(#AUTORISER{modifier,souscription,#ID_SOUSCRIPTION}|?{
- <a href="[(#URL_ECRIRE{souscription_edit,id_souscription=#ID_SOUSCRIPTION})]">#ID_SOUSCRIPTION</a>,
- #ID_SOUSCRIPTION
- })]</td>
- <td class="courriel principale"><a href="[(#ID_SOUSCRIPTION|generer_url_entite{souscription})]" title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION">[(#RANG). ]#COURRIEL</a></td>
- <td class="type_souscription secondaire">[(#TYPE_SOUSCRIPTION)]</td>
- <td class="montant secondaire">[(#MONTANT) €]</td>
+ <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})] #STATUT">
+ <td class="id"><a href="[(#ID_SOUSCRIPTION|generer_url_entite{souscription})]"
+ title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION">#ID_SOUSCRIPTION</a></td>
+ <td class="type_souscription"><a href="[(#ID_SOUSCRIPTION|generer_url_entite{souscription})]"
+ title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION">[(#TYPE_SOUSCRIPTION)]</a></td>
+ <td class="courriel">#COURRIEL</td>
<td class="nom secondaire">#NOM #PRENOM</td>
- <td class="date secondaire">[(#DATE_SOUSCRIPTION|affdate_jourcourt)]</td>
+ <td class="montant secondaire">[(#MONTANT) €]</td>
+ <td class="date secondaire">[(#DATE_SOUSCRIPTION|affdate{Y-m-d H:i:s})]</td>
<td class="statut secondaire">[(#STATUT)]</td>
- <td class="id_souscription_campagne" scope="col">[(#ID_SOUSCRIPTION_CAMPAGNE)]</td>
+ <td class="id_souscription_campagne" scope="col"><a href="[(#ID_SOUSCRIPTION_CAMPAGNE|generer_url_entite{souscription_campagne})]"
+ title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION_CAMPAGNE">#ID_SOUSCRIPTION_CAMPAGNE</a></td>
</tr>
</BOUCLE_liste_souscriptions>
</tbody>
[(#AUTORISER{voir,souscription,#ID_SOUSCRIPTION}|sinon_interdire_acces)]
-<BOUCLE_souscription(SOUSCRIPTIONS){id_souscription}{si #ENV{exec}|=={souscription}}>
+<BOUCLE_souscription(SOUSCRIPTIONS spip_transactions){id_souscription}{si #ENV{exec}|=={souscription}}>
[(#BOITE_OUVRIR{[
- <h1>(#ID_SOUSCRIPTION)[ — #PRENOM (#NOM)]</h1>
-],simple fiche_objet})]
+ <h1>[(#TYPE_SOUSCRIPTION|ucfirst) ]#(#ID_SOUSCRIPTION)</h1>
+ [<strong>#PRENOM (#NOM)</strong>]
+],simple fiche_objet #STATUT})]
<!--affiche_milieu-->
</ul>
</div>
-<INCLURE{fond=prive/objets/liste/souscriptions, par=id_souscription, env, ajax, sinon=<:souscription:info_aucun_souscription:>}>
+<INCLURE{fond=prive/objets/liste/souscriptions, par=date_souscription, env, ajax, sinon=<:souscription:info_aucun_souscription:>}>
.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
function autoriser_souscriptioncampagne_dist($faire, $mode='', $id=0, $qui = NULL, $opt = NULL){
return autoriser('webmestre');
-}
+}
\ No newline at end of file
return $modele;
}
+
+
+function souscription_bank_traiter_reglement($flux){
+ $flux['data'].=" <br />Vous allez recevoir un email de confirmation.";
+ return $flux;
+}
?>