summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-01-16 23:23:30 +0000
committerKarl Berry <karl@freefriends.org>2015-01-16 23:23:30 +0000
commit2021343f8a392e74cbb84959bcef454899187213 (patch)
tree1249b2532bd9dbac1700ae254080bce1d7026c83 /Master/texmf-dist
parent38abb16203e10729d9936fef27a395edfb1860e8 (diff)
facture (16jan15)
git-svn-id: svn://tug.org/texlive/trunk@36075 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/README2
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/exemple.pdfbin22310 -> 23421 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/exemplesansTVA.pdfbin18762 -> 19457 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/exemplesansremise.pdfbin0 -> 22988 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/exemplesansremise.tex35
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/facture.pdfbin93186 -> 95365 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/facture/makefile9
-rw-r--r--Master/texmf-dist/source/xelatex/facture/facture.dtx184
-rw-r--r--Master/texmf-dist/tex/xelatex/facture/facture.cls107
9 files changed, 289 insertions, 48 deletions
diff --git a/Master/texmf-dist/doc/xelatex/facture/README b/Master/texmf-dist/doc/xelatex/facture/README
index ad40f89a105..439a0f102f7 100644
--- a/Master/texmf-dist/doc/xelatex/facture/README
+++ b/Master/texmf-dist/doc/xelatex/facture/README
@@ -2,6 +2,6 @@ Classe XeLaTeX de facture, sous licence Créative Commons - partage des conditio
http://creativecommons.org/licenses/by-sa/2.0/fr/
-La documentation se situe dans le fichier PDF généré lors de la compilation XELATEX du fichier .dtx
+La documentation se situe dans le fichier PDF généré lors de la compilation XeLaTeX du fichier .dtx
Pour tout demande de corrections ou d'améliorations, merci d'ouvrir un ticket sur Github : https://github.com/maieul/facture/issues. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/xelatex/facture/exemple.pdf b/Master/texmf-dist/doc/xelatex/facture/exemple.pdf
index c5900a1193a..8f7738641ff 100644
--- a/Master/texmf-dist/doc/xelatex/facture/exemple.pdf
+++ b/Master/texmf-dist/doc/xelatex/facture/exemple.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/facture/exemplesansTVA.pdf b/Master/texmf-dist/doc/xelatex/facture/exemplesansTVA.pdf
index a092e0d7ab2..4f5cfac4a36 100644
--- a/Master/texmf-dist/doc/xelatex/facture/exemplesansTVA.pdf
+++ b/Master/texmf-dist/doc/xelatex/facture/exemplesansTVA.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.pdf b/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.pdf
new file mode 100644
index 00000000000..376ec4bf9f5
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.tex b/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.tex
new file mode 100644
index 00000000000..93778fa08af
--- /dev/null
+++ b/Master/texmf-dist/doc/xelatex/facture/exemplesansremise.tex
@@ -0,0 +1,35 @@
+\documentclass[sansremise]{facture}
+\usepackage{lipsum}
+\usepackage[top=2 cm, bottom=2 cm, left=1.5 cm, right=2.5 cm]{geometry}
+\setmainfont[Mapping=tex-text]{Linux Libertine O}
+\datelimite{30}
+\dest{Client\\
+Dans telle rue\\
+CP VILLE
+}
+\fact{Client facturé
+Dans telle rue\\
+CP VILLE\\
+}
+\nomemet{Entreprise}
+\adresseemet{Adresse\\
+CP Ville\\
+courriel@domaine.tld \\
+Tel : 01 23 45 67 89 \\
+}
+\codedest{Ent}
+\numero{24}
+\type{Devis}
+\pied{Payable à l’ordre de XXXX ---
+SIRET : XXXX
+}
+\begin{document}
+\entete
+
+\begin{facture}
+\ligne{Produit 1}[2]{25}[5,5]
+\ligne{Produit 2}{10}
+\end{facture}
+
+\lipsum[1-6]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/xelatex/facture/facture.pdf b/Master/texmf-dist/doc/xelatex/facture/facture.pdf
index 13dfbcd76f4..91fab605c11 100644
--- a/Master/texmf-dist/doc/xelatex/facture/facture.pdf
+++ b/Master/texmf-dist/doc/xelatex/facture/facture.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/facture/makefile b/Master/texmf-dist/doc/xelatex/facture/makefile
index 5132211b304..d34366b6cfd 100644
--- a/Master/texmf-dist/doc/xelatex/facture/makefile
+++ b/Master/texmf-dist/doc/xelatex/facture/makefile
@@ -1,7 +1,11 @@
.PHONY:all clean
-all:facture.pdf exemple.pdf exemplesansTVA.pdf
- zip facture.zip facture.ins facture.dtx *pdf README makefile *.tex
+all:facture.pdf exemple.pdf exemplesansTVA.pdf exemplesansremise.pdf
+ rm -f ../facture.zip
+ rm -rf facture
+ mkdir facture
+ ln *pdf *ins *dtx *cls *tex README makefile facture
+ zip -r ../facture.zip facture
@@ -19,4 +23,5 @@ facture.pdf:facture.cls facture.dtx
clean:
rm -f *out *aux *log *pdf *glo *zip *cls *ilg *idx *gls *toc
+ rm -rf facture
diff --git a/Master/texmf-dist/source/xelatex/facture/facture.dtx b/Master/texmf-dist/source/xelatex/facture/facture.dtx
index a4f6c637ef9..094413bb823 100644
--- a/Master/texmf-dist/source/xelatex/facture/facture.dtx
+++ b/Master/texmf-dist/source/xelatex/facture/facture.dtx
@@ -1,5 +1,7 @@
% \iffalse meta-comment
-% Droits d'auteur : Maïeul Rouquette 2011-2014
+% Droits d'auteur :
+% - Maïeul Rouquette 2011-2014
+% - Joël Gombin 2014
% Licence Creative Commons - Paternité -Partage des Conditions Initiales à l'identique
% http://creativecommons.org/licenses/by-sa/2.0/fr/
% \fi
@@ -13,21 +15,32 @@
\usepackage{hyperref}
\usepackage{csquotes}
\usepackage{bidi}
+% Pour l'impression du changement
+\makeatletter
+ \def\glossary@prologue{%
+ \section{Historique des changements}%
+ }
+\makeatother
\EnableCrossrefs
\RecordChanges
+% Pour les renvois internes
+\newcommand{\renvoi}[1]{voir section~\ref{#1} p.~\pageref{#1}}
\begin{document}
\raggedbottom
\DocInput{facture.dtx}
\end{document}
%</driver>
%\fi
-% \CheckSum{453}
-% \changes{v1.0}{2011/09/10}{Première version}
-% \changes{v.1.1}{2011/09/13}{Laisser le choix de la marge à l'utilisateur}
-% \GetFileInfo{facture.dtx}
-%\changes{v1.1.2}{2014/09/16}{Possibilité de modifier la taille du tableau.}
-% \title{La class \textsf{facture}\thanks{Ce document correspond à la version~1.2 de \textsf{facture}, datée du~16/09/2014.}}
-%\author{Maïeul Rouquette}
+% \CheckSum{527}
+% \changes{v1.0}{2011/09/10}{Première version}
+% \changes{v1.1}{2014/09/16}{Laisser le choix de la marge à l'utilisateur}
+% \changes{v1.1}{2014/09/16}{Possibilité de modifier la taille du tableau.}
+% \changes{v1.2}{2015/01/16}{Possibilité de produire des factures sans la colonne remise.}
+% \def\filedate{16/01/2015}
+% \def\fileversion{1.2}
+% \date{\filedate}
+% \title{La class \textsf{facture}\thanks{Ce document correspond à la version~\fileversion de \textsf{facture} datée du \filedate.}}
+%\author{Maïeul Rouquette et Joël Gombin}
%\maketitle
%\begin{abstract}
%Cette classe permet de rédiger factures et devis, avec ou sans TVA, en calculant automatiquement les sommes.
@@ -52,10 +65,12 @@
%\documentclass{facture}
%\end{verbatim}
%
-%Permet de générer une facture avec TVA. Celle-ci est définie par défaut à 19,6~\%, mais il est possible de modifier le taux, grâce à la commande \DescribeMacro{\TVAdefaut}\cmd{\TVAdefaut}\marg{taux}. Par exemple pour avoir un taux de 5,5~\% :
+% Permet de générer une facture avec TVA. Celle-ci est définie par défaut à 19,6~\%, mais il est possible de modifier le taux, grâce à la commande \DescribeMacro{\TVAdefaut}\cmd{\TVAdefaut}\marg{taux}. Par exemple pour avoir un taux de 5,5~\% :
%\begin{verbatim}
%\TVAdefaut{5,5}
%\end{verbatim}
+% \subsection{Avec ou sans remise ?}\label{remise}
+% Une option \verb|sansremise| permet de produire des factures sans gestion des remises.
%\subsection{Information sur document}
%Cette classe permet de fabriquer des factures et des devis. Par défaut, elle fabrique des factures. La commande \DescribeMacro{\type}\cmd{\type}\marg{type} permet d'indiquer si on souhaite fabriquer une facture ou autre chose :
%\begin{verbatim}
@@ -88,8 +103,8 @@
%\meta{produit} est le nom du produit.
%\meta{quantité} est la quantité souhaitée. Le nombre peut être entier ou décimal. En l'absence de cet argument, on suppose que le produit n'est présent qu'une fois.
%\meta{prix unitaire HT} n'est pas à décrire.
-%\meta{remise}s'applique sur le prix total HT.
-%\meta{taux de TVA}: si un produit n'a pas le même taux que celui par défaut (\emph{cf}.~section~\ref{TVA}), cet argument permet d'indiquer le taux. Il est exprimé en pourcentage, mais sans le signe \%.
+%\meta{remise} s'applique sur le prix total HT.
+%\meta{taux de TVA}: si un produit n'a pas le même taux que celui par défaut (\renvoi{TVA}), cet argument permet d'indiquer le taux. Il est exprimé en pourcentage, mais sans le signe \%.
%
%
%Tout les nombres décimaux s'expriment en utilisant la virgule, même si l'usage du point fonctionne également.
@@ -103,13 +118,15 @@
%\end{facture}
%\end{verbatim}
%
-% Dans le cas où l'option \verb|sansTVA| (\emph{cf}. section~\ref{TVA}) a été passée lors de l'appel à la classe, les colonnes ne sont pas les mêmes. Exemple (voir le fichier \href{exemplesansTVA.pdf}{exemplesansTVA.pdf} pour le résultat):
+% Dans le cas où l'option \verb|sansTVA| (\renvoi{TVA}) a été passée lors de l'appel à la classe, les colonnes ne sont pas les mêmes. Exemple (voir le fichier \href{exemplesansTVA.pdf}{exemplesansTVA.pdf} pour le résultat):
%\begin{verbatim}
%\begin{facture}
%\ligne{Produit 1}[2]{25}
%\ligne{Produit 2}{10}[][2]
%\end{facture}
%\end{verbatim}
+%
+% Si l'option \verb|sansremise| a été passée lors de l'appel à la classe, le quatrième argument de la colonne correspond au taux de TVA.
%\subsection{Texte en dessous des totaux}
% Dans le cas d'une facture sans TVA, l'environnement \emph{facture} indique le texte \enquote{TVA non applicable, art. 293 B}. Il est possible de modifier ce texte, ou d'en ajouter un pour les documents avec TVA, en redéclarant la commande \DescribeMacro{\postTotaux}\cmd{\postTotaux}\marg{texte}.
%\begin{verbatim}
@@ -118,22 +135,23 @@
%\section{Personnalisation}
% Plusieurs possibilités de personnalisation existent, en redéfinissant des commandes et/ou des couleurs. J'invite à lire le code pour savoir lesquels.
%\begin{itemize}
-%\item Pour les couleurs, les traits et les mise en valeurs des textes, voir section~\ref{apparence}.
-%\item Pour les réglages concernant les mathématiques (arrondis par exemple), voir section~\ref{math}.
-%\item Pour les textes, voir section~\ref{texte}.
-%\item Pour le pieds de page, voir section~\ref{pied}.
-%\item Pour l'affichage de la TVA, voir section~\ref{afficheTVA} p.~\pageref{afficheTVA}
-%\item Pour la largeur des colonnes du tableau, voir section~\ref{largeurCols}.
+%\item Pour les couleurs, les traits et les mise en valeurs des textes, \renvoi{apparence}.
+%\item Pour les réglages concernant les mathématiques (arrondis par exemple), \renvoi{math}.
+%\item Pour les textes, \renvoi{texte}.
+%\item Pour le pieds de page, \renvoi{pied}.
+%\item Pour l'affichage de la TVA, \renvoi{afficheTVA}.
+%\item Pour la largeur des colonnes du tableau, \renvoi{largeurCols}.
%\end{itemize}
%
%Pour personnaliser la taille du papier et celle des marges, on peut utiliser le package \emph{geometry}.
%\StopEventually{}
+%\appendix%
%\section{Documentation du code}
%\subsection{Chargement des packages}
%<*facture>
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{facture}[2011/09/10 v1.0]
+\ProvidesClass{facture}[16/01/2015 v1.2]
\LoadClass[a4paper]{article}%On se base sur la classe article
\RequirePackage{fontspec}
\RequirePackage{xunicode}
@@ -150,11 +168,23 @@
\RequirePackage{advdate}%Pour manipuler les dates
\RequirePackage{xargs}%Pour des arguments conditionnels
% \end{macrocode}
+%\subsection{Option sansreduction}
+% \begin{macrocode}
+\newif\ifsansreduction
+\DeclareOption{sansreduction}{\sansreductiontrue}
+% \end{macrocode}
%\subsection{Option sansTVA}
% \begin{macrocode}
\newif\ifsansTVA
-\sansTVAfalse
\DeclareOption{sansTVA}{\sansTVAtrue}
+% \end{macrocode}
+%\subsection{Option sansremise}
+% \begin{macrocode}
+\newif\ifsansremise
+\DeclareOption{sansremise}{\sansremisetrue}
+% \end{macrocode}
+%\subsection{Exécution des options}
+% \begin{macrocode}
\ProcessOptions
% \end{macrocode}
%\subsection{Apparence}\label{apparence}
@@ -183,7 +213,7 @@
\newcommand{\remise}{Remise}
\newcommand{\unite}{€}
% \end{macrocode}
-%\subsubsection{Dépend du réglage sur la TVA (\emph{cf}.~section~\ref{TVA})}
+%\subsubsection{Dépend du réglage sur la TVA (\renvoi{TVA})}
% \begin{macrocode}
\ifsansTVA%
\newcommand{\tottxt}{Total}
@@ -224,7 +254,7 @@
\def\@type{\facturetxt}
% \end{macrocode}
%\subsection{Méta-données}
-%Toutes ces commandes sont appelées par l'utilisateurs au tout début (\emph{cf}.~section~\ref{meta}). La plupart stockent dans une commande commençant par @ le code qui est passé.
+%Toutes ces commandes sont appelées par l'utilisateurs au tout début (\renvoi{meta}). La plupart stockent dans une commande commençant par @ le code qui est passé.
% \begin{macrocode}
\renewcommand{\date}[1]{\SetDate[#1]}
\newcommand{\TVAdefaut}[1]{\def\@TVAdefaut{#1}}
@@ -284,7 +314,7 @@
\begin{tikzpicture}
% \end{macrocode}
%
-%Ensuite afficher les informations sur le destinataire. Des tests permettent d'afficher ou non la livraison séparement de la facture, en fonction de ce qu'a défini l'utilisateur (\emph{cf}.~section~\ref{dest}).
+%Ensuite afficher les informations sur le destinataire. Des tests permettent d'afficher ou non la livraison séparement de la facture, en fonction de ce qu'a défini l'utilisateur (\renvoi{dest}).
% \begin{macrocode}
@@ -348,13 +378,76 @@
\setlength{\tabcolsep}{0.5em}
\arrayrulecolor{encadre}
\ifsansTVA%
- \begin{longtable}{|p{\largeurDescriptif}|P{\largeurChiffres}|P{\largeurChiffres}|P{\largeurChiffres}|P{\largeurChiffres}|}%
- \hline%
- \rowcolor{entetes}\centering\textbf\produit & \centering\textbf\quantite & \centering\textbf\prixtxt & \centering\textbf\remise & \centering\textbf\tottxt \tabularnewline[1ex]%
+ \ifsansremise%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}%Descriptif
+ |P{\largeurChiffres}%Qt
+ |P{\largeurChiffres}%Prix
+ |P{\largeurChiffres}|%Total
+ }%
+ \hline%
+ \rowcolor{entetes}%
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixtxt &%
+ \centering\textbf\tottxt%
+ \tabularnewline[1ex]%
+ \else%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}%Descriptif
+ |P{\largeurChiffres}%Qt
+ |P{\largeurChiffres}%Prix
+ |P{\largeurChiffres}%Remise
+ |P{\largeurChiffres}|%Total
+ }%
+ \hline%
+ \rowcolor{entetes}%
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixtxt &%
+ \centering\textbf\remise &%
+ \centering\textbf\tottxt%
+ \tabularnewline[1ex]%
+ \fi%
\else%
- \begin{longtable}{|p{\largeurDescriptif}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffres}|P{\largeurChiffresAvecTVA}|}%
- \hline%
- \rowcolor{entetes}\centering\textbf\produit & \centering\textbf\quantite & \centering\textbf\prixHT & \centering\textbf\remise & \centering\textbf\totHTtxt & \centering\textbf\TVAtxt & \textbf\prixTTC \tabularnewline[1ex]%
+ \ifsansremise%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}|%Descriptif
+ P{\largeurChiffresAvecTVA}|%Qt
+ P{\largeurChiffresAvecTVA}|%HT unitaire
+ P{\largeurChiffresAvecTVA}|%Totalht
+ P{\largeurChiffresAvecTVA}|%TVA
+ P{\largeurChiffresAvecTVA}|%Total TTC
+ }%
+ \hline%
+ \rowcolor{entetes}
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixHT &%
+ \centering\textbf\totHTtxt &%
+ \centering\textbf\TVAtxt &%
+ \textbf\prixTTC \tabularnewline[1ex]%
+
+ \else%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}|%Descriptif
+ P{\largeurChiffresAvecTVA}|%Qt
+ P{\largeurChiffresAvecTVA}|%HT unitaire
+ P{\largeurChiffresAvecTVA}|%Remise
+ P{\largeurChiffresAvecTVA}|%Totalht
+ P{\largeurChiffresAvecTVA}|%TVA
+ P{\largeurChiffresAvecTVA}|%Total TTC
+ }%
+ \hline%
+ \rowcolor{entetes}
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixHT &%
+ \centering\textbf\remise &%
+ \centering\textbf\totHTtxt &%
+ \centering\textbf\TVAtxt &%
+ \textbf\prixTTC \tabularnewline[1ex]%
+ \fi%
\fi%
\endhead%
\endfoot%
@@ -384,11 +477,18 @@
}
% \end{macrocode}
%\end{environment}
-% On a besoin de définir une commande \cmd{\lignesansTVA} pour afficher le contenu d'une ligne lorsqu'on n'a pas de TVA. En effet, dès qu'on change de cellule, les tests conditionnels sont perdus.
+% On a besoin de définir une commande \cmd{\lignesansTVA} pour afficher le contenu d'une ligne lorsqu'on n'a pas de TVA.
% \begin{macrocode}
-\newcommand{\lignesansTVA}[5]{#1 & #2 & #3 & #4 & #5 \tabularnewline[1ex]}
+\newcommand{\lignesansTVA}[5]{
+ #1 &
+ #2 &
+ #3 &
+ \unless\ifsansremise
+ #4 &
+ \fi
+ #5 \tabularnewline[1ex]}
% \end{macrocode}
-%La commande \cmd{\afficheTVA} sert à afficher la TVA dans le tableau. En ne l'indiquant pas directement dans le code de \cmd{\ligne}, on permet de personnaliser plus facilement l'affichage de la TVA. \label{afficheTVA}
+% La commande \cmd{\afficheTVA} sert à afficher la TVA dans le tableau. En ne l'indiquant pas directement dans le code de \cmd{\ligne}, on permet de personnaliser plus facilement l'affichage de la TVA. \label{afficheTVA}
% \begin{macrocode}
\newcommand{\afficheTVA}[1]{\raggedleft{\numprint[\%]{#1}} \hfill $\triangleright$ \numprint[\unite]{\TVA}}
@@ -411,12 +511,18 @@
\else
% Prix hors taxe
\fpMul{\HT}{#3}{#2}%
- \fpSub{\HT}{\HT}{#4}%
+ \unless\ifsansremise%
+ \fpSub{\HT}{\HT}{#4}%
+ \fi%
\xdef\HT{\HT}%retenons
\fpAdd{\totHT}{\totHT}{\HT}%
\xdef\totHT{\totHT}%
% Calcul de la TVA
- \fpDiv{\centieme}{#5}{100}%
+ \ifsansremise%
+ \fpDiv{\centieme}{#4}{100}%
+ \else%
+ \fpDiv{\centieme}{#5}{100}%
+ \fi
\fpMul{\TVA}{\centieme}{\HT}%
\xdef\TVA{\TVA}%retenons
\fpAdd{\totTVA}{\totTVA}{\TVA}%
@@ -427,7 +533,15 @@
\fpAdd{\totTTC}{\totTTC}{\TTC}%
\xdef\totTTC{\totTTC}%
% Affichage
- #1 & #2 & \numprint[\unite]{#3} & \numprint[\unite]{#4} & \numprint[\unite]{\HT} & \afficheTVA{#5} & \numprint[\unite]{\TTC} \tabularnewline[1ex]%
+ #1 &
+ #2 &
+ \numprint[\unite]{#3} &
+ \unless\ifsansremise
+ \numprint[\unite]{#4} &
+ \fi
+ \numprint[\unite]{\HT} &
+ \afficheTVA{#5} &
+ \numprint[\unite]{\TTC} \tabularnewline[1ex]%
\fi
\hline
}
diff --git a/Master/texmf-dist/tex/xelatex/facture/facture.cls b/Master/texmf-dist/tex/xelatex/facture/facture.cls
index 5d4a9da116e..3616a6be70f 100644
--- a/Master/texmf-dist/tex/xelatex/facture/facture.cls
+++ b/Master/texmf-dist/tex/xelatex/facture/facture.cls
@@ -11,7 +11,7 @@
%% http://creativecommons.org/licenses/by-sa/2.0/fr/
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{facture}[2011/09/10 v1.0]
+\ProvidesClass{facture}[16/01/2015 v1.2]
\LoadClass[a4paper]{article}%On se base sur la classe article
\RequirePackage{fontspec}
\RequirePackage{xunicode}
@@ -27,9 +27,12 @@
\RequirePackage{colortbl}
\RequirePackage{advdate}%Pour manipuler les dates
\RequirePackage{xargs}%Pour des arguments conditionnels
+\newif\ifsansreduction
+\DeclareOption{sansreduction}{\sansreductiontrue}
\newif\ifsansTVA
-\sansTVAfalse
\DeclareOption{sansTVA}{\sansTVAtrue}
+\newif\ifsansremise
+\DeclareOption{sansremise}{\sansremisetrue}
\ProcessOptions
\definecolor{entetes}{HTML}{888888}
\definecolor{encadre}{RGB}{111,111,111}
@@ -150,13 +153,76 @@
\setlength{\tabcolsep}{0.5em}
\arrayrulecolor{encadre}
\ifsansTVA%
- \begin{longtable}{|p{\largeurDescriptif}|P{\largeurChiffres}|P{\largeurChiffres}|P{\largeurChiffres}|P{\largeurChiffres}|}%
+ \ifsansremise%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}%Descriptif
+ |P{\largeurChiffres}%Qt
+ |P{\largeurChiffres}%Prix
+ |P{\largeurChiffres}|%Total
+ }%
\hline%
- \rowcolor{entetes}\centering\textbf\produit & \centering\textbf\quantite & \centering\textbf\prixtxt & \centering\textbf\remise & \centering\textbf\tottxt \tabularnewline[1ex]%
+ \rowcolor{entetes}%
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixtxt &%
+ \centering\textbf\tottxt%
+ \tabularnewline[1ex]%
\else%
- \begin{longtable}{|p{\largeurDescriptif}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffresAvecTVA}|P{\largeurChiffres}|P{\largeurChiffresAvecTVA}|}%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}%Descriptif
+ |P{\largeurChiffres}%Qt
+ |P{\largeurChiffres}%Prix
+ |P{\largeurChiffres}%Remise
+ |P{\largeurChiffres}|%Total
+ }%
\hline%
- \rowcolor{entetes}\centering\textbf\produit & \centering\textbf\quantite & \centering\textbf\prixHT & \centering\textbf\remise & \centering\textbf\totHTtxt & \centering\textbf\TVAtxt & \textbf\prixTTC \tabularnewline[1ex]%
+ \rowcolor{entetes}%
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixtxt &%
+ \centering\textbf\remise &%
+ \centering\textbf\tottxt%
+ \tabularnewline[1ex]%
+ \fi%
+ \else%
+ \ifsansremise%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}|%Descriptif
+ P{\largeurChiffresAvecTVA}|%Qt
+ P{\largeurChiffresAvecTVA}|%HT unitaire
+ P{\largeurChiffresAvecTVA}|%Totalht
+ P{\largeurChiffresAvecTVA}|%TVA
+ P{\largeurChiffresAvecTVA}|%Total TTC
+ }%
+ \hline%
+ \rowcolor{entetes}
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixHT &%
+ \centering\textbf\totHTtxt &%
+ \centering\textbf\TVAtxt &%
+ \textbf\prixTTC \tabularnewline[1ex]%
+
+ \else%
+ \begin{longtable}{%
+ |p{\largeurDescriptif}|%Descriptif
+ P{\largeurChiffresAvecTVA}|%Qt
+ P{\largeurChiffresAvecTVA}|%HT unitaire
+ P{\largeurChiffresAvecTVA}|%Remise
+ P{\largeurChiffresAvecTVA}|%Totalht
+ P{\largeurChiffresAvecTVA}|%TVA
+ P{\largeurChiffresAvecTVA}|%Total TTC
+ }%
+ \hline%
+ \rowcolor{entetes}
+ \centering\textbf\produit &%
+ \centering\textbf\quantite &%
+ \centering\textbf\prixHT &%
+ \centering\textbf\remise &%
+ \centering\textbf\totHTtxt &%
+ \centering\textbf\TVAtxt &%
+ \textbf\prixTTC \tabularnewline[1ex]%
+ \fi%
\fi%
\endhead%
\endfoot%
@@ -178,7 +244,14 @@
\end{tikzpicture}
}
-\newcommand{\lignesansTVA}[5]{#1 & #2 & #3 & #4 & #5 \tabularnewline[1ex]}
+\newcommand{\lignesansTVA}[5]{
+ #1 &
+ #2 &
+ #3 &
+ \unless\ifsansremise
+ #4 &
+ \fi
+ #5 \tabularnewline[1ex]}
\newcommand{\afficheTVA}[1]{\raggedleft{\numprint[\%]{#1}} \hfill $\triangleright$ \numprint[\unite]{\TVA}}
\newcommandx{\ligne}[5][2=1,5=\@TVAdefaut,4=0,usedefault]{%
@@ -193,12 +266,18 @@
\else
% Prix hors taxe
\fpMul{\HT}{#3}{#2}%
- \fpSub{\HT}{\HT}{#4}%
+ \unless\ifsansremise%
+ \fpSub{\HT}{\HT}{#4}%
+ \fi%
\xdef\HT{\HT}%retenons
\fpAdd{\totHT}{\totHT}{\HT}%
\xdef\totHT{\totHT}%
% Calcul de la TVA
- \fpDiv{\centieme}{#5}{100}%
+ \ifsansremise%
+ \fpDiv{\centieme}{#4}{100}%
+ \else%
+ \fpDiv{\centieme}{#5}{100}%
+ \fi
\fpMul{\TVA}{\centieme}{\HT}%
\xdef\TVA{\TVA}%retenons
\fpAdd{\totTVA}{\totTVA}{\TVA}%
@@ -209,7 +288,15 @@
\fpAdd{\totTTC}{\totTTC}{\TTC}%
\xdef\totTTC{\totTTC}%
% Affichage
- #1 & #2 & \numprint[\unite]{#3} & \numprint[\unite]{#4} & \numprint[\unite]{\HT} & \afficheTVA{#5} & \numprint[\unite]{\TTC} \tabularnewline[1ex]%
+ #1 &
+ #2 &
+ \numprint[\unite]{#3} &
+ \unless\ifsansremise
+ \numprint[\unite]{#4} &
+ \fi
+ \numprint[\unite]{\HT} &
+ \afficheTVA{#5} &
+ \numprint[\unite]{\TTC} \tabularnewline[1ex]%
\fi
\hline
}