#let language = "english" // Options: "français", "deutsch", "english" #let invoice_number = "002" //increment that #let amount = "40.00" // Montant de la facture #let currency = "EUR" // Devise (CHF, EUR, etc.) #let current_date = datetime.today() //#let due_date = datetime(year: 2025, month: 3, day: 30) #let recipient_name = [Hochschule Flensburg] #let recipient_adress = [Kanzleistraße 91-93] #let recipient_postal_code = [D-24943] #let recipient_town =[Flensburg] #let recipient_country = [Germany] #let recipient_vat_number = none // Dictionnaire des traductions #let translations = ( français: ( sender: "ÉMETTEUR", recipient: "DESTINATAIRE", invoice: "FACTURE", invoice_number: "Facture N° :", date: "Date :", due_date: "Échéance :", description: "Description", amount: "Montant", total: "Total :", vat_notice: "Association non soumise à la TVA selon l'Art. 10 LTVA", payment_terms: "Cette facture est payable dans les 30 jours suivant sa réception.", banking_info: "COORDONNÉES BANCAIRES", bank: "Banque :", account_holder: "Titulaire :", account_notice: "Compte au nom d'un membre de l'association", association_notice: "Association à but non lucratif non inscrite au registre du commerce", ), deutsch: ( sender: "ABSENDER", recipient: "EMPFÄNGER", invoice: "RECHNUNG", invoice_number: "Rechnungs-Nr.:", date: "Datum:", due_date: "Fälligkeitsdatum:", description: "Beschreibung", amount: "Betrag", total: "Gesamtbetrag:", vat_notice: "Verein nicht mehrwertsteuerpflichtig gemäß Art. 10 MWSTG", payment_terms: "Diese Rechnung ist innerhalb von 30 Tagen nach Erhalt zu bezahlen.", banking_info: "BANKVERBINDUNG", bank: "Bank:", account_holder: "Kontoinhaber:", account_notice: "Konto auf den Namen eines Vereinsmitglieds", association_notice: "Gemeinnütziger Verein, nicht im Handelsregister eingetragen", ), english: ( sender: "FROM", recipient: "TO", invoice: "INVOICE", invoice_number: "Invoice No.:", date: "Date:", due_date: "Due date:", description: "Description", amount: "Amount", total: "Total:", vat_notice: "Association not subject to VAT according to Art. 10 VAT Act", payment_terms: "This invoice is payable within 30 days of receipt.", banking_info: "BANKING DETAILS", bank: "Bank:", account_holder: "Account holder:", account_notice: "Account in the name of an association member", association_notice: "Non-profit association not registered in the commercial register", ), ) // Sélection du dictionnaire en fonction de la langue #let t = translations.at(language, default: translations.français) #set page( margin: 2cm, numbering: none, ) #set text(font: "Arial", size: 11pt) // En-tête de l'association #align(center)[ #text(weight: "bold", size: 14pt)[Cheap Motion Pictures ] #text(style: "italic")[#t.association_notice] ] #v(0.5cm) #grid( columns: (1fr, 1fr), row-gutter: 0.5cm, // Informations de l'émetteur align(left)[ #text(weight: "bold", size: 14pt)[#t.sender] #v(0.2cm) Cheap Motion Pictures #v(0.1cm) rue de l'ale 1 #v(0.1cm) 1003 Lausanne, Suisse #v(0.1cm) Tél: +41 77 471 11 34 #v(0.1cm) Email: contact\@cheapmo.ch ], // Informations du destinataire align(right)[ #text(weight: "bold", size: 14pt)[#t.recipient] #v(0.2cm) #recipient_name #v(0.1cm) #recipient_adress #v(0.1cm) #recipient_postal_code #recipient_town, #recipient_country #if recipient_vat_number != none [VAT: #recipient_vat_number] else [ ]; ], ) #v(0.5cm) // Titre et informations de la facture #align(center)[ #text(weight: "bold", size: 18pt)[#t.invoice] #v(0.3cm) #t.invoice_number 2025-#invoice_number - #t.date #current_date.display("[day]/[month]/[year]") #v(0.2cm) #t.due_date 30/03/2025 ] #v(0.5cm) // Tableau des prestations #table( columns: (auto, 1fr), inset: 10pt, align: (left, right), table.header( //fill: rgb(245, 245, 245), [*#t.description*], [*#t.amount (#currency)* ], ), [Poong rental], [#amount], [*#t.total*], [*#amount #currency*], ) #v(.5cm) // Informations complémentaires #align(left)[ #t.vat_notice #v(0.3cm) #t.payment_terms ] #v(0.5cm) // Coordonnées bancaires avec notification spéciale #text(weight: "bold", size: 13pt)[#t.banking_info] #v(0.2cm) #t.bank Wise, Rue du Trône 100, 3rd floor, Brussels, 1050, Belgium #v(0.1cm) IBAN: BE22905094540247 #v(0.1cm) BIC/SWIFT: TRWIBEB1XXX #v(0.1cm) #t.account_holder Robin Szymczak #v(0.2cm) #t.account_notice // Pied de page avec contact #align(center)[ #v(1cm) #line(length: 100%, stroke: 0.5pt + gray) #v(0.3cm) Cheap Motion Pictures - 1 rue de l'ale - 1003 Lausanne - contact\@cheapmo.ch ]