Browse Source

Extensibilite aux quantites non entieres : par defaut le fonctionnement du plugin est inchange, mais les occurences en dur de intval() sont remplacees par la fonction

commandes_arrondir_quantite($quantite, $objet, $id_objet)
qui est surchargeable.
3 filtres |commandes_arrondir_quantite |commandes_afficher_quantite_descriptif et |commandes_afficher_quantite sont ajoutes pour gerer les differents affichages (filtres surchareables pour gerer les quantites decimales)
svn/root/tags/v1.17.2
cedric@yterium.com 5 years ago
parent
commit
fde9d91493
  1. 1
      .gitattributes
  2. 37
      commandes_fonctions.php
  3. 16
      inc/commandes_arrondir_quantite.php
  4. 2
      inclure/commande.html
  5. 2
      paquet.xml
  6. 2
      prive/objets/liste/commandes.html
  7. 5
      prive/squelettes/inclure/commande_contenu.html

1
.gitattributes vendored

@ -25,6 +25,7 @@ formulaires/editer_commandes_detail.php -text
formulaires/lier_commande.html -text
formulaires/lier_commande.php -text
inc/commandes.php -text
inc/commandes_arrondir_quantite.php -text
inc/commandes_echeances.php -text
inc/commandes_reference.php -text
inc/lier_commande_auteur.php -text

37
commandes_fonctions.php

@ -107,3 +107,40 @@ function commande_totalise_taxes($prix_ht = null, $prix_ttc = null) {
}
/**
* Filtre pour utiliser la fonction d'arrondi des quantite
* @param int|float $quantite
* @param string $objet
* @param int $id_objet
* @return int|float
*/
function commandes_arrondir_quantite($quantite, $objet='', $id_objet=0) {
$commandes_arrondir_quantite = charger_fonction('commandes_arrondir_quantite', 'inc');
return $commandes_arrondir_quantite($quantite, $objet, $id_objet);
}
/**
* Afficher la quantite si differente de 1
* @param int|float $quantite
* @param string $objet
* @param int $id_objet
* @return string
*/
function commandes_afficher_quantite_descriptif($quantite, $objet='', $id_objet=0) {
if ($quantite!==1) {
return commandes_afficher_quantite($quantite) . " ×";
}
return '';
}
/**
* Afficher la quantite, en arrondissant eventuellement
* (par defaut fait juste l'arrondi int natif)
* @param int|float $quantite
* @param string $objet
* @param int $id_objet
* @return string
*/
function commandes_afficher_quantite($quantite, $objet='', $id_objet=0) {
return commandes_arrondir_quantite($quantite, $objet, $id_objet);
}

16
inc/commandes_arrondir_quantite.php

@ -0,0 +1,16 @@
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) return;
/*
* Arrondir la quantite d'une ligne de commande, en fonction de ce que permet l'objet
* par defaut c'est en entier pour tout le monde, mais un plugin peut etendre cela
*
* @return Retourne l'identifiant du panier en cours
*/
function inc_commandes_arrondir_quantite_dist($quantite, $objet='', $id_objet=0){
return intval($quantite);
}

2
inclure/commande.html

@ -7,7 +7,7 @@
#SET{details, #GET{details}|push{#ARRAY{
objet,#OBJET,
id_objet,#ID_OBJET,
descriptif, #QUANTITE|>{1}|?{#QUANTITE &times;}|concat{#DESCRIPTIF*|supprimer_numero},
descriptif,#QUANTITE|commandes_afficher_quantite_descriptif|concat{#DESCRIPTIF*|supprimer_numero},
quantite, #QUANTITE,
prix, #PRIX*,
prix_ht, #PRIX_HT*}}}

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="commandes"
categorie="divers"
version="1.12.4"
version="1.13.0"
etat="stable"
compatibilite="[3.0.5;3.1.*]"
logo="prive/themes/spip/images/commande.png"

2
prive/objets/liste/commandes.html

@ -107,7 +107,7 @@
#SET{objet_base, #OBJET|table_objet_sql|sql_countsel{#OBJET|id_table_objet|concat{=,#ID_OBJET}}}
[(#GET{objet_spip}|oui)
<li>
[(#QUANTITE)&times;&nbsp;][(#GET{objet_base}|oui)<a href="[(#INFO_URL{#OBJET,#ID_OBJET})]">]
[(#QUANTITE|commandes_afficher_quantite{#OBJET,#ID_OBJET})&times; ][(#GET{objet_base}|oui)<a href="[(#INFO_URL{#OBJET,#ID_OBJET})]">]
[(#DESCRIPTIF*|typo|supprimer_numero|sinon{#VAL{info_sans_titre}|_T|wrap{<em>}})]
[(#GET{objet_base}|oui)</a>]
</li>

5
prive/squelettes/inclure/commande_contenu.html

@ -50,9 +50,8 @@
<td class="quantite #EDIT{quantite}[ (#QUANTITE*|>{0}|non)null]">[(#QUANTITE)]</td>
<td class="prix ht #EDIT{prix_unitaire_ht}[ (#PRIX_UNITAIRE_HT*|floatval|=={0.0}|oui)null]">[(#PRIX_UNITAIRE_HT*|round{2}|prix_formater)]</td>
<td class="taxe #EDIT{taxe}[ (#TAXE*|floatval|>{0.0}|non)null]">[(#TAXE*|mult{100}|number_format{1})&nbsp;%]</td>
<td class="prix ttc">[[(#TAXE*|floatval|>{0.0}|oui)<abbr title="[(#QUANTITE*|>{1}|?{
[= [(#QUANTITE*)] &times; \( (#PRIX_UNITAIRE_HT*|prix_formater) + [(#GET{taxe_unitaire}|prix_formater)] \)],
[= (#PRIX_UNITAIRE_HT*|prix_formater) + [(#GET{taxe_unitaire}|prix_formater)]]
<td class="prix ttc">[[(#TAXE*|floatval|>{0.0}|oui)<abbr title="[(#REM|non|?{
[= [(#QUANTITE*|commandes_afficher_quantite_descriptif) #SET{parenthese,\)}\(] (#PRIX_UNITAIRE_HT*|prix_formater) + [(#GET{taxe_unitaire}|prix_formater)] #GET{parenthese}]
}|attribut_html)]">](#PRIX)[(#TAXE*|floatval|>{0.0}|oui)</abbr>]]</td>
[(#AUTORISER{modifier,commande,#ID_COMMANDE}|oui)
<td class="actions">

Loading…
Cancel
Save