@model Estimate

\documentclass[french,11pt]{article}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{units}
\usepackage{bera}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{fp}

\def\TVA{20}    % Taux de la TVA

\def\TotalHT{0}
\def\TotalTVA{0}

\newcommand{\AjouterService}[3]{%    Arguments : Désignation, quantité, prix
    \FPround{\prix}{#3}{2}
    \FPeval{\montant}{#2 * #3}
    \FPround{\montant}{\montant}{2}
    \FPadd{\TotalHT}{\TotalHT}{\montant}
   
    \eaddto\ListeProduits{#1    &    \prix    &    #2    &    \montant    \cr}
}


\newcommand{\AfficheResultat}{%
    \ListeProduits
   
    \FPeval{\TotalTVA}{\TotalHT * \TVA / 100}
    \FPadd{\TotalTTC}{\TotalHT}{\TotalTVA}
    \FPround{\TotalHT}{\TotalHT}{2}
    \FPround{\TotalTVA}{\TotalTVA}{2}
    \FPround{\TotalTTC}{\TotalTTC}{2}
    \global\let\TotalHT\TotalHT
    \global\let\TotalTVA\TotalTVA
    \global\let\TotalTTC\TotalTTC
   

    \cr 
    \hline
    \textbf{Total}    & & &    \TotalHT
}

\newcommand*\eaddto[2]{% version développée de \addto
   \edef\tmp{#2}%
   \expandafter\addto
   \expandafter#1%
   \expandafter{\tmp}%
}

\newcommand{\ListeProduits}{}




%%%%%%%%%%%%%%%%%%%%% A MODIFIER DANS LA FACTURE %%%%%%%%%%%%%%%%%%%%%

\def\FactureNum            {@Model.Id.ToString()}    % Numéro de facture
\def\FactureAcquittee    {non}        % Facture acquittée : oui/non
\def\FactureLieu    {@Model.Command.Performer.PostalAddress}    % Lieu de l'édition de la facture
\def\FactureObjet    {Facture : @Model.Title}    % Objet du document
% Description de la facture
\def\FactureDescr    {
   @Model.Description 
}

% Infos Client
\def\ClientNom{@Model.Command.Client.Name}    % Nom du client
\def\ClientAdresse{%                    % Adresse du client
   @if (!string.IsNullOrWhiteSpace(Model.Command.Client.PostalAddress.Address)) { 
   @string.Split("\n",Model.Command.Client.PostalAddress.Address).Join("\\\\\n") 
   }
 if (!string.IsNullOrWhiteSpace(@Model.Command.Client.PhoneNumber)) {
   Téléphone fixe:  @Model.Command.Client.PhoneNumber \\
 } 

if (!string.IsNullOrWhiteSpace(eto)) { 
   E-mail:  @Model.Command.Client.Email  } 
}

% Liste des produits facturés : Désignation, prix

@foreach (CommandLine line in Model.Command.Bill) {
\AjouterService    { @line.Article.Name - @line.Comment (Ref:YPR@line.Article.Id) } {@line.Count} {@line.UnitaryCost} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\geometry{verbose,tmargin=4em,bmargin=8em,lmargin=6em,rmargin=6em}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

\thispagestyle{fancy}
\pagestyle{fancy}
\setlength{\parindent}{0pt}

\renewcommand{\headrulewidth}{0pt}
\cfoot{
  @if (!string.IsNullOrWhiteSpace(from.Name)) {  from.Name   } 
  @if (!string.IsNullOrWhiteSpace(from.Address)) {  @"-"  @from.Address  }  
  @if (!string.IsNullOrWhiteSpace(from.CityAndState)) {  @"-"  @from.CityAndState  }  \newline
    \small{
     @if (!string.IsNullOrWhiteSpace(efrom)) { E-mail:  efrom  } 
     @if (!string.IsNullOrWhiteSpace(from.Mobile)) {  @"-" Téléphone mobile:  @from.Mobile  } 
     @if (!string.IsNullOrWhiteSpace(from.Phone)) {  @"-" Téléphone fixe:  @from.Phone  } 
    }
}

\begin{document}

% Logo de la société
%\includegraphics{logo.jpg}

% Nom et adresse de la société
 from.Name \\
 from.Address \\
from.ZipCode  from.CityAndState\\

Facture n°\FactureNum


{\addtolength{\leftskip}{10.5cm} %in ERT
    \textbf{\ClientNom}    \\
    \ClientAdresse        \\

} %in ERT


\hspace*{10.5cm}
\FactureLieu, le \today

~\\~\\

\textbf{Objet : \FactureObjet \\}

\textnormal{\FactureDescr}

~\\

\begin{center}
    \begin{tabular}{lrrr}
        \textbf{Désignation ~~~~~~}  & \textbf{Prix unitaire} & \textbf{Quantité} & \textbf{Montant (EUR)}    \\
        \hline
        \AfficheResultat{}
    \end{tabular}
\end{center}

\begin{flushright}
\textit{Auto entreprise en franchise de TVA}\\

\end{flushright}
~\\

\ifthenelse{\equal{\FactureAcquittee}{oui}}{
    Facture acquittée.
}{

    À régler par chèque ou par virement bancaire :

    \begin{center}
        \begin{tabular}{|c c c c|}
         if (!string.IsNullOrWhiteSpace(from.BankCode) && !string.IsNullOrWhiteSpace(from.WicketCode)
        && !string.IsNullOrWhiteSpace(from.AccountNumber) ) { 
            \hline     \textbf{Code banque}    & \textbf{Code guichet}    & \textbf{N° de Compte}        & \textbf{Clé RIB}    \\
                     from.BankCode                     &  from.WicketCode                      & from.AccountNumber                 & from.BankedKey               \\
         }
        if (!string.IsNullOrWhiteSpace(from.IBAN) && !string.IsNullOrWhiteSpace(from.BIC)) { 
               \hline     \textbf{IBAN N°}        & \multicolumn{3}{|l|}{  from.IBAN  }         \\
            \hline     \textbf{Code BIC}        & \multicolumn{3}{|l|}{  from.BIC  }
         }          \\
            \hline
        \end{tabular}
    \end{center}
}
\end{document}
