Valider a81bcb62 rédigé par tcharlss@hotmail.fr's avatar tcharlss@hotmail.fr
Parcourir les fichiers

Retour partiel sur r72558

Boulette : ne pas mettre systématiquement à jour  les dates de paiement et d'envoi lors du changement de statut.
Les dates effectives de paiement et d'envoi ne correspondent pas forcément au moment ou le rédacteur change le satut de la commande.
On ne le fait donc que lorsque celles-ci n'ont pas été définies, en cas d'oubli.
Donc on zappe la pipeline pre-edition et on passe ça en post-edition, juste avant l'envoi des notifications.
Incrémentation de z
parent 413dd565
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+51 −53
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -113,53 +113,50 @@ function commandes_affiche_auteurs_interventions($flux) {


/**
 * Mettre à jour les dates de paiement ou d'envoi
 * en amont de la modification du statut d'une commande
 * Traitements après l'édition d'une commande
 * Quand on  modifie le satut d'une commande :
 * - Mettre à jour les dates de paiement et d'envoi si par mégarde ça n'a pas été fait manuellement
 * - Envoyer les notifications 
 *
 * @param array $flux
 *	$flux['args'][x] = arguments (action, table, id_objet etc.)
 *	$flux['data'][x] = champs modifiés (statut, date etc.)
 *     $flux['args'][x] = arguments (table, id_objet, action, statut_ancien, date_ancienne, id_parent_ancien)
 *     $flux['data'][x] = champs modifiés (statut, date_paiement etc.)
 * @return array $flux
**/
function commandes_pre_edition($flux){
function commandes_post_edition($flux){

	if (
		($action = $flux['args']['action']) == 'instituer' // action instituer
		and ($table = $flux['args']['table']) == table_objet_sql('commande') // on institue une commande
		and $statut = $flux['data']['statut']
		and $date = date('Y-m-d H:i:s') // todo : copier la date de maj ?
		and ($statut_ancien = $flux['args']['statut_ancien']) != ($statut = $flux['data']['statut']) // le statut a été modifié
		and $id_commande = $flux['args']['id_objet'] // on a bien un identifiant pour la commande
	) {

		// Mise à jour des dates de paiement ou d'envoi si ça n'a pas été fait manuellement
		if (
			in_array($statut, array('paye','envoye'))
			and $maj = sql_getfetsel('maj', table_objet_sql('commande'), "id_commande=".sql_quote($id_commande) )
			and $date_paiement = sql_getfetsel('date_paiement', table_objet_sql('commande'), "id_commande=".sql_quote($id_commande) )
			and $date_envoi = sql_getfetsel('date_envoi', table_objet_sql('commande'), "id_commande=".sql_quote($id_commande) )
			and include_spip('action/editer_objet')
		) {
		switch ($statut) {
			case 'paye';
				$flux['data']['date_paiement'] = $date;
				break;
			case 'envoye';
				$flux['data']['date_envoi'] = $date;
				break;
			if (
				$statut == 'paye'
				and intval($date_paiement) == 0
			){
				objet_modifier('commande', $id_commande, array('date_paiement'=>$maj));
			}
			if (
				$statut == 'envoye'
				and intval($date_envoi) == 0
			){
				objet_modifier('commande', $id_commande, array('date_envoi'=>$maj));
			}

	return($flux);
		}


/**
 * Envoyer les notifications 
 * en aval de la modification du statut d'une commande
 *
 * @param array $flux
 *	$flux['args'][x] = arguments (table, id_objet, action, statut_ancien, date_ancienne, id_parent_ancien)
 *	$flux['data'][x] = champs modifiés (statut, date_paiement etc.)
 * @return array $flux
**/
function commandes_post_edition($flux){

		// Envoi des notifications
		if (
		($action=$flux['args']['action']) == 'instituer' // action instituer
		and ($table=$flux['args']['table']) == table_objet_sql('commande') // on institue une commande
		and ($statut_ancien=$flux['args']['statut_ancien']) != ($statut=$flux['data']['statut']) // le statut a été modifié
		and $id_commande = $flux['args']['id_objet'] // on a bien un identifiant pour la commande
		and include_spip('inc/config')
			include_spip('inc/config')
			and $config = lire_config('commandes')
			and $quand = $config['quand'] ? $config['quand'] : array()
			and ($config['activer']) // les notifications sont activées
@@ -176,6 +173,7 @@ function commandes_post_edition($flux){
			if($config['client'])
				$notifications('commande_client', $id_commande, $options);
		}
	}

	return($flux);
}
+2 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="commandes"
	categorie="divers"
	version="0.10.4"
	version="0.10.5"
	etat="dev"
	compatibilite="[3.0.5;3.0.*]"
	logo="prive/themes/spip/images/commande.png"
@@ -27,8 +27,7 @@
	<pipeline nom="accueil_encours" inclure="commandes_pipelines.php" /><!-- page d'accueil : liste des commandes en attente validation -->
	<pipeline nom="affiche_auteurs_interventions" inclure="commandes_pipelines.php" /><!-- liste des commandes sur la fiche d'un auteur -->
	<pipeline nom="insert_head_css" inclure="commandes_pipelines.php" />
	<pipeline nom="pre_edition" inclure="commandes_pipelines.php" /><!-- changement de statut : maj dates paiement et envoi -->
	<pipeline nom="post_edition" inclure="commandes_pipelines.php" /><!-- changement de statut : envoi de notifications -->
	<pipeline nom="post_edition" inclure="commandes_pipelines.php" /><!-- changement de statut : envoi de notifications et maj dates paiement et envoi -->

	<pipeline nom="declarer_tables_interfaces" inclure="base/commandes.php" />
	<pipeline nom="declarer_tables_principales" inclure="base/commandes.php" />
+9 −7
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<BOUCLE_afficher_contenu(COMMANDES){id_commande=#ENV{id}}{tout}>
[<div class="champ contenu_statut[ (#STATUT*|strlen|?{'',vide})]">
	<label><:commandes:modifier_commande_statut:></label>
	<span dir='#LANG_DIR' class='statut'>(#STATUT|commandes_lister_statuts)</span>
	<span dir='#LANG_DIR' class='statut'>[(#CHEMIN_IMAGE{icone-commande-#STATUT-16}|balise_img) ](#STATUT|commandes_lister_statuts)</span>
</div>]
[<div class="champ contenu_date_envoi[ (#DATE_ENVOI*|strlen|?{'',vide})]">
	<label><:commandes:date_envoi_label:></label>
	<span dir='#LANG_DIR' class='#EDIT{date_envoi} date_envoi'>
	(#DATE_ENVOI|=={0000-00-00 00:00:00}|?{
		<em><:commandes:info_date_envoi_vide:></em>,
		#DATE_ENVOI|affdate|concat{' à ',#DATE_ENVOI|affdate{'H:i'}}})
	(#DATE_ENVOI|intval|>{0}|?{
		[(#DATE_ENVOI|affdate)][(#DATE_ENVOI|affdate{'H:i'}|intval|>{0}|oui)[ à (#DATE_ENVOI|affdate{'H:i'})]],
		<em><:commandes:info_date_non_definie:></em>
	})
	</span>
</div>]
[<div class="champ contenu_date_paiement[ (#DATE_PAIEMENT*|strlen|?{'',vide})]">
	<label><:commandes:date_paiement_label:></label>
	<span dir='#LANG_DIR' class='#EDIT{date_paiement} date_paiement'>
		(#DATE_PAIEMENT|=={0000-00-00 00:00:00}|?{
			<em><:commandes:info_date_paiement_vide:></em>,
			#DATE_PAIEMENT|affdate|concat{' à ',#DATE_PAIEMENT|affdate{'H:i'}}})
		(#DATE_PAIEMENT|intval|>{0}|?{
			[(#DATE_PAIEMENT|affdate)][(#DATE_PAIEMENT|affdate{'H:i'}|intval|>{0}|oui)[ à (#DATE_PAIEMENT|affdate{'H:i'})]],
			<em><:commandes:info_date_non_definie:></em>
		})
	</span>
</div>]
[<div class="champ contenu_date[ (#DATE*|strlen|?{'',vide})]">