Valider 8a7534bf rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

Lors de l'initialisation d'un abonnement, quand la date de fin n'est pas...

Lors de l'initialisation d'un abonnement, quand la date de fin n'est pas encore définie, on continue de le calculer par défaut avec la période de l'offre MAIS on ajoute un pipeline dédié à l'initialisation qui permet de changer les dates (y compris de début pourquoi pas) à ce moment. Cela permet par exemple de toujours terminer avec l'année civile ou de faire pile le début et la fin d'un mois, etc.
parent 724aef25
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+18 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -66,10 +66,26 @@ function abonnements_post_edition($flux){
			}
			
			// Calcul de la date de fin
			$modifs['date_fin'] = $abonnement['date_fin'] = date('Y-m-d H:i:s', strtotime($abonnement['date_debut'].$ajout));
			$modifs['date_fin'] = date('Y-m-d H:i:s', strtotime($abonnement['date_debut'].$ajout));
			
			$modifs = pipeline(
				'abonnement_initialisation_dates',
				array(
					'args' => array('abonnement' => $abonnement, 'offre' => $offre),
					'data' => $modifs
				)
			);
			
			// Si les dates ont été changées, on change le tableau de l'abonnement pour le test de statut qui suivra
			if (isset($modifs['date_debut'])) {
				$abonnement['date_debut'] = $modifs['date_debut'];
			}
			if (isset($modifs['date_fin'])) {
				$abonnement['date_fin'] = $modifs['date_fin'];
			}
		}
		
		// S'il le statut est "prepa" c'est une création et on doit changer ça
		// Si le statut est "prepa" c'est une création et on doit changer ça
		// car pour l'instant SPIP ne permet pas de déclarer le statut par défaut !
		if ($abonnement['statut'] == 'prepa') {
			$modifs['statut'] = $abonnement['statut'] = 'actif';
+3 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="abonnements"
	categorie="auteur"
	version="2.3.1"
	version="2.3.2"
	schema="2.1.0"
	etat="stable"
	compatibilite="[3.0.5;3.0.*]"
@@ -24,7 +24,6 @@
	<necessite nom="facteur" compatibilite="[3.0.1;]" />

	<pipeline nom="autoriser" inclure="abonnements_autorisations.php" /> 

	<pipeline nom="declarer_tables_objets_sql" inclure="base/abonnements.php" /> 
	<pipeline nom="declarer_tables_interfaces" inclure="base/abonnements.php" /> 
	<pipeline nom="declarer_tables_principales" inclure="base/abonnements.php" /> 
@@ -35,6 +34,8 @@
	<pipeline nom="affiche_gauche" inclure="abonnements_pipelines.php" />
	<pipeline nom="affiche_milieu" inclure="abonnements_pipelines.php" />
	
	<pipeline nom="abonnement_initialisation_dates" action="" />

	<menu nom="abonnements_offres" titre="abonnementsoffre:titre_abonnementsoffres" parent="menu_publication" icone="images/abonnement-16.png" action="abonnements_offres" /> 
	<menu nom="abonnements" titre="abonnement:titre_abonnements_suivre" parent="menu_activite" icone="images/abonnement-16.png" action="abonnements" /> 
</paquet>