# invoices

invoice_number: 001
currency: EUR
language: français
status: cancelled
issue_date: 2025-05-23 11:47:53
created_at: 2025-05-23 11:47:53
typst_content:
  #let language = "français"
  #let invoice_number = "001"
  #let amount = "10"
  #let currency = "EUR"
  #let current_date = datetime.today()
  #let recipient_name = [robin Szymczak]
  #let recipient_adress = [1 rue de l'ale]
  #let recipient_postal_code = [1003]
  #let recipient_town = [Lausanne]
  #let recipient_country = [Switzerland]
  #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(
      [*#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
  ]


invoice_number: 002
currency: EUR
language: deutsch
status: cancelled
issue_date: 2025-05-23 12:48:20
created_at: 2025-05-23 12:48:20
typst_content:
  #let language = "deutsch"
  #let invoice_number = "002"
  #let amount = "30"
  #let currency = "EUR"
  #let current_date = datetime.today()
  #let recipient_name = [Film- und Medienfestival gGmbH]
  #let recipient_adress = [Stephanstraße 33]
  #let recipient_postal_code = [70173 ]
  #let recipient_town = [Stuttgart]
  #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(
      [*#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
  ]


invoice_number: 003
currency: EUR
language: français
status: issued
issue_date: 2025-05-23 13:05:18
created_at: 2025-05-23 13:05:18
typst_content:
  #let language = "français"
  #let invoice_number = "003"
  #let amount = "75"
  #let currency = "EUR"
  #let current_date = datetime.today()
  #let recipient_name = [PrevYou e.V. C/o Felix Strümpel]
  #let recipient_adress = [Am Friedrichshain 6]
  #let recipient_postal_code = [10407 ]
  #let recipient_town = [Berlin]
  #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(
      [*#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)

  // Afficher le compte bancaire en fonction de la devise
  #if currency == "EUR" [
    // Compte pour les transactions en euros
    #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
  ] else if currency == "CHF" [
    // Compte pour les transactions en francs suisses
    #t.bank PostFinance SA, Mingerstrasse 20, 3030 Bern, Switzerland
    #v(0.1cm)
    IBAN: CH56 0900 0000 1527 2120 9
    #v(0.1cm)
    BIC/SWIFT: POFICHBEXXX
    #v(0.1cm)
    #t.account_holder Robin Szymczak
  ] else [
    // Compte par défaut (identique à EUR pour la compatibilité)
    #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
  ]


invoice_number: 004
currency: CHF
language: français
status: issued
issue_date: 2025-05-23 14:25:58
created_at: 2025-05-23 14:25:58
typst_content:
  #let language = "français"
  #let invoice_number = "004"
  #let amount = "180"
  #let currency = "CHF"
  #let current_date = datetime.today()
  #let recipient_name = [Base court]
  #let recipient_adress = [Av. de la Rasude 2]
  #let recipient_postal_code = [CH - 1006 ]
  #let recipient_town = [Lausanne]
  #let recipient_country = [Switzerland]
  #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(
      [*#t.description*], 
      [*#t.amount (#currency)* ],
    ),
    [Poong, projection 3X], [180],
    [*#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)

  // Afficher le compte bancaire en fonction de la devise
  #if currency == "EUR" [
    // Compte pour les transactions en euros
    #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
  ] else if currency == "CHF" [
    // Compte pour les transactions en francs suisses
    #t.bank Wise Payments Limited, 1st Floor, Worship Square, 65 Clifton Street, London, EC2A 4JE, United Kingdom
    #v(0.1cm)
    IBAN: GB51 TRWI 2308 0140 8766 98
    #v(0.1cm)
    BIC/SWIFT: TRWIGB2LXXX
    #v(0.1cm)
    #t.account_holder Robin Szymczak
  ] else [
    // Compte par défaut (identique à EUR pour la compatibilité)
    #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
  ]


invoice_number: 005
currency: EUR
language: deutsch
status: issued
issue_date: 2025-05-23 15:22:53
created_at: 2025-05-23 15:22:53
typst_content:
  #let language = "deutsch"
  #let invoice_number = "005"
  #let amount = "30"
  #let currency = "EUR"
  #let current_date = datetime.today()
  #let recipient_name = [Film- und Medienfestival gGmbH]
  #let recipient_adress = [Stephanstraße 33]
  #let recipient_postal_code = [70173]
  #let recipient_town = [Stuttgart]
  #let recipient_country = [Germany]
  #let recipient_vat_number = "DE213473085"

  // 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(
      [*#t.description*], 
      [*#t.amount (#currency)* ],
    ),
    [Poong, Open Air, ITFS 2025 (6–11 May 2025)], [30],
    [*#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)

  // Afficher le compte bancaire en fonction de la devise
  #if currency == "EUR" [
    // Compte pour les transactions en euros
    #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
  ] else if currency == "CHF" [
    // Compte pour les transactions en francs suisses
    #t.bank Wise Payments Limited, 1st Floor, Worship Square, 65 Clifton Street, London, EC2A 4JE, United Kingdom
    #v(0.1cm)
    IBAN: GB51 TRWI 2308 0140 8766 98
    #v(0.1cm)
    BIC/SWIFT: TRWIGB2LXXX
    #v(0.1cm)
    #t.account_holder Robin Szymczak
  ] else [
    // Compte par défaut (identique à EUR pour la compatibilité)
    #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
  ]


