Browse Source

Début de compat avec le plugin Factures (nursit). On ne casse pas l'existant pour le moment, même si c'est mal de l'utiliser. Donc pour le squelette général de facture.html on redirige vers celui du plugin Factures si on a un id_facture. Et en plus on ajoute les deux modèles de fixation des données d'une facture (client et détails) compatibles avec les commandes, càd pour générer une facture d'une transaction correspondant à une commande.

svn/root/tags/v1.17.2
rastapopoulos@spip.org 7 years ago
parent
commit
3613f2d37b
  1. 2
      .gitattributes
  2. 9
      facture.html
  3. 63
      modeles/client_adresse_facture.html
  4. 54
      modeles/transaction_details.html
  5. 2
      paquet.xml

2
.gitattributes vendored

@ -43,6 +43,8 @@ lang/commandes_fa.php -text
lang/commandes_fr.php -text
lang/commandes_sk.php -text
lang/paquet-commandes_fr.php -text
modeles/client_adresse_facture.html -text
modeles/transaction_details.html -text
notifications/commande_client.html -text
notifications/commande_client.php -text
notifications/commande_client_court.html -text

9
facture.html

@ -1,3 +1,8 @@
[(#AUTORISER{voir_facture,commande,#ID_COMMANDE}|sinon_interdire_acces)]
[(#ENV{id_commande}|oui)
[(#AUTORISER{voir_facture,commande,#ID_COMMANDE}|sinon_interdire_acces)]
#INCLURE{fond=inclure/facture,env}
]
[(#INCLURE{fond=inclure/facture,env})]
[(#ENV{id_facture}|oui)
#INCLURE{fond=#EVAL{_DIR_PLUGIN_FACTURES}/facture,env}
]

63
modeles/client_adresse_facture.html

@ -0,0 +1,63 @@
<BOUCLE_transaction(TRANSACTIONS){id_transaction}>
<BOUCLE_commande(COMMANDES){id_commande}>
<BOUCLE_auteur(AUTEURS){id_auteur}{tout}>
[(#REM) Contact ou Orga ou Utilisateur ]
<BOUCLE_contact(CONTACTS?){id_auteur}>
<strong>#NOM #PRENOM</strong> #SET{id_contact,#ID_CONTACT}
</BOUCLE_contact>
<BOUCLE_orga(ORGANISATIONS?){id_auteur}>
<strong>#NOM</strong> #SET{id_organisation,#ID_ORGANISATION}
</BOUCLE_orga>
<strong>#NOM</strong>
<//B_orga>
<//B_contact>
[(#REM) On cherche en priorité des adresses pour la commande, sinon contact, sinon orga, sinon utilisateur ]
<BOUCLE_adresses_comande(ADRESSES adresses_liens?){id_commande}>
[(#TYPE|=={facturation}|oui)<em><:commandes:type_adresse_facturation:> :</em>]
[(#TYPE|=={livraison}|oui)<em><:commandes:type_adresse_livraison:></em :>]
<br />
<span class="adresse">
[(#VOIE)<br />]
[(#CODE_POSTAL) ][ (#VILLE)]<br />
<BOUCLE_pays(PAYS?){code=#PAYS*}>#NOM</BOUCLE_pays>
</span>
</BOUCLE_adresses_comande>
<BOUCLE_adresse_contact(ADRESSES?){id_contact=#GET{id_contact}}{0,1}>
<br />
<span class="adresse">
[(#VOIE)<br />]
[(#CODE_POSTAL) ][ (#VILLE)]<br />
<BOUCLE_pays_contact(PAYS?){code=#PAYS*}>#NOM</BOUCLE_pays_contact>
</span>
</BOUCLE_adresse_contact>
<BOUCLE_adresse_orga(ADRESSES?){id_organisation=#GET{id_organisation}}{0,1}>
<br />
<span class="adresse">
[(#VOIE)<br />]
[(#CODE_POSTAL) ][ (#VILLE)]<br />
<BOUCLE_pays_orga(PAYS?){code=#PAYS*}>#NOM</BOUCLE_pays_orga>
</span>
</BOUCLE_adresse_orga>
<BOUCLE_adresse_auteur(ADRESSES?){id_auteur}{0,1}>
<br />
<span class="adresse">
[(#VOIE)<br />]
[(#CODE_POSTAL) ][ (#VILLE)]<br />
<BOUCLE_pays_auteur(PAYS?){code=#PAYS*}>#NOM</BOUCLE_pays_auteur>
</span>
</BOUCLE_adresse_auteur>
<//B_adresse_orga>
<//B_adresse_contact>
<//B_adresses_comande>
<B_telephones>
<span class="telephone">
<BOUCLE_telephones(NUMEROS numeros_liens?){id_auteur}{'<br />'}>
<strong>Tel</strong> #NUMERO
</BOUCLE_telephones>
</span>
</B_telephones>
</BOUCLE_auteur>
</BOUCLE_commande>
</BOUCLE_transaction>

54
modeles/transaction_details.html

@ -0,0 +1,54 @@
<BOUCLE_transaction(TRANSACTIONS){id_transaction}>
#SET{ttc,''}
#SET{ht,''}
<BOUCLE_commande(COMMANDES){id_commande}>
<B_liste>
<table>
<thead>
<tr>
<th class="descriptif"><:commandes:designation:></th>
<th class="quantite"><abbr title="<:commandes:label_quantite|attribut_html:>"><:commandes:abbr_quantite:></abbr></th>
<th class="taxe"><:commandes:label_taxe:></th>
<th class="montant"><abbr title="<:commandes:label_prix_unitaire|attribut_html:>"><:commandes:abbr_prix_unitaire:></abbr></th>
</tr>
</thead>
<tbody>
<BOUCLE_liste(COMMANDES_DETAILS)
{id_commande}{par id_commandes_detail}
>
[(#REM)
Si la transaction est un montant différent du total de la commande
on considère que c'est un renouvellement de commande
et on part du principe que pour les renouvellements,
ce sont forcément des commandes avec UNE SEULE chose.
]
<BOUCLE_test_renouvellement(CONDITION){si #MONTANT*|floatval|round{2}|!={#PRIX*|round{2}}}>
#SET{ttc,#MONTANT*|floatval|round{2}}
#SET{ht,#GET{ttc}|div{#TAXE*|plus{1}}|round{2}}
</BOUCLE_test_renouvellement>
<tr>
<td class="descriptif">[(#QUANTITE|>{1}|oui)<strong>#QUANTITE &times; </strong>][(#DESCRIPTIF*|typo|supprimer_numero)]</td>
<td class="quantite[ (#QUANTITE*|>{0}|non)null]">[(#QUANTITE)]</td>
<td class="taxe[ (#TAXE*|floatval|>{0.0}|non)null]">[(#TAXE*|mult{100}|number_format{1})&nbsp;%]</td>
<td class="montant">[(#GET{ht}|sinon{#PRIX_UNITAIRE_HT*}|round{2}|prix_formater)]</td>
</tr>
</BOUCLE_liste>
</tbody>
<tfoot>
<tr>
<td class="def"><:prix:label_total_ht:></td>
<td class="montant">[(#GET{ht}|sinon{#PRIX_HT*}|prix_formater)]</td>
</tr>
<tr>
<td class="def"><:prix:label_taxes:></td>
<td class="montant">[(#GET{ttc}|sinon{#PRIX*}|moins{#GET{ht}|sinon{#PRIX_HT*}}|prix_formater)]</td>
</tr>
<tr class="total_ttc">
<td class="def"><:prix:label_total_ttc:></td>
<td class="montant">[(#GET{ttc}|sinon{#PRIX*}|prix_formater)]</td>
</tr>
</tfoot>
</table>
</B_liste>
</BOUCLE_commande>
</BOUCLE_transaction>

2
paquet.xml

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

Loading…
Cancel
Save