Formulaire d'inscription
# Retry the updates and form creation to ensure files are produced (state cleared previously)
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Inches, Pt
from pathlib import Path
ICS = "BE47ZZZ0822934934"
CO_REG = "0822934934"
COMPANY_TAX = f"BE {CO_REG}"
ADDRESS = "211 Boulevard Auguste Reyers, 1030 Bruxelles"
def replace_text_in_doc(doc: Document, replacements: dict):
for p in doc.paragraphs:
for old, new in replacements.items():
if old in p.text:
for run in p.runs:
if old in run.text:
run.text = run.text.replace(old, new)
if old in p.text:
p.text = p.text.replace(old, new)
for tbl in doc.tables:
for row in tbl.rows:
for cell in row.cells:
for p in cell.paragraphs:
for old, new in replacements.items():
if old in p.text:
for run in p.runs:
if old in run.text:
run.text = run.text.replace(old, new)
if old in p.text:
p.text = p.text.replace(old, new)
def fmt_eur(n: int) -> str:
s = f"{n:,}".replace(",", " ")
s = s.replace(" ", "\u202f")
return f"{s} €"
TOTAL = 5900
DEPOSIT = round(TOTAL * 0.30)
BALANCE = TOTAL - DEPOSIT
DATE_SOLDE = "03/10/2025"
# Update CG
cg_path = "/mnt/data/LaMaisonDeCouture-Conditions-Generales-2025.docx"
cg_out = "/mnt/data/LaMaisonDeCouture-Conditions-Generales-2025-v2.docx"
if Path(cg_path).exists():
cg = Document(cg_path)
repl = {
"[Identifiant créancier SEPA ING — à compléter]": ICS,
"ICS : [Identifiant créancier SEPA ING — à compléter]": f"ICS : {ICS}",
"BE‑[n° d’entreprise]": COMPANY_TAX,
"BE-[n° d’entreprise]": COMPANY_TAX,
"BE‑[n°]": COMPANY_TAX,
"BE-[n°]": COMPANY_TAX,
"La Maison de Couture — École de Mode, 211 Boulevard Auguste Reyers, 1030 Bruxelles": f"La Maison de Couture — École de Mode, {ADDRESS}",
}
replace_text_in_doc(cg, repl)
cg.add_paragraph("Mentions légales : La Maison de Couture — " + ADDRESS + " — N° d’entreprise " + COMPANY_TAX + " — ICS SEPA " + ICS)
cg.save(cg_out)
# Update Pack
pack_path = "/mnt/data/LaMaisonDeCouture-Pack-Clauses-Word-v3.docx"
pack_out = "/mnt/data/LaMaisonDeCouture-Pack-Clauses-Word-v4.docx"
if Path(pack_path).exists():
pack = Document(pack_path)
repl = {
"[Identifiant créancier SEPA ING — à compléter]": ICS,
"ICS : [Identifiant créancier SEPA ING — à compléter]": f"ICS : {ICS}",
"ICS : [BE…]": f"ICS : {ICS}",
"BE‑[n° d’entreprise]": COMPANY_TAX,
"BE-[n° d’entreprise]": COMPANY_TAX,
"BE‑[n°]": COMPANY_TAX,
"BE-[n°]": COMPANY_TAX,
"211 Boulevard Auguste Reyers, 1030 Bruxelles": ADDRESS,
}
replace_text_in_doc(pack, repl)
pack.save(pack_out)
# Create Enrollment Form
form = Document()
logo_path = "/mnt/data/Logo Lamaisondecouture-Fond-marron.png"
if Path(logo_path).exists():
form.add_picture(logo_path, width=Inches(4.2))
form.paragraphs[-1].alignment = WD_ALIGN_PARAGRAPH.CENTER
title = form.add_paragraph()
run = title.add_run("Formulaire d’inscription")
run.bold = True
run.font.size = Pt(20)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
subtitle = form.add_paragraph(f"La Maison de Couture — {ADDRESS} — N° d’entreprise {COMPANY_TAX} — ICS SEPA {ICS}")
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
form.add_paragraph("")
form.add_heading("1) Programme et session", level=1)
form.add_paragraph("Année académique : ______ / ______ • Formation / Parcours : _________________________________________________")
form.add_paragraph("Date de début souhaitée : ____ / ____ / ______ • Durée : _______________________")
form.add_heading("2) Identité de l’étudiant", level=1)
form.add_paragraph("Nom : __________________________________ Prénom : __________________________________ Date de naissance : ____ / ____ / ______")
form.add_paragraph("Nationalité : ___________________________ N° d’identité / Passeport : __________________________________")
form.add_paragraph("Adresse complète : _____________________________________________________________________________________")
form.add_paragraph("E‑mail : _____________________________________________ Téléphone : ___________________________________")
form.add_paragraph("Contact d’urgence (nom/téléphone) : _________________________________________________________________")
form.add_heading("3