=== 100gérance ===
Contributors: guillaume1965
Donate link: https://100gerance.com/soutenir.html
Tags: immobilier, suisse, qr-bill, locatif, gestion locative
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Stable tag: 1.0.10
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Plugin libre de gestion immobilière pour propriétaires suisses : QR-factures de loyer, encaissements CAMT 053, décomptes annuels, lettres-types CO.

== Description ==

**100gérance** est un plugin WordPress libre destiné aux propriétaires fonciers suisses qui souhaitent gérer eux-mêmes leur bien immobilier locatif, sans recourir à une régie professionnelle.

L'outil couvre l'ensemble du cycle de gestion locative conforme au droit suisse, depuis la création du référentiel (immeubles, biens, locataires) jusqu'à l'export Excel pour la déclaration fiscale, en passant par l'émission des QR-factures de loyer, le rapprochement bancaire automatique via les fichiers CAMT 053 des banques, les décomptes annuels de charges avec clés de répartition, les lettres-types conformes au Code des obligations (Art. 257d, 269d, formules cantonales) et la gestion des sinistres.

= Fonctionnalités principales =

* **Référentiel complet** : immeubles, biens, locataires, garants, fournisseurs
* **Baux** : génération de contrats A4 conformes Art. 253 ss CO, avenants, résiliations, téléversement de baux signés externes
* **QR-factures de loyer** : conformes Swiss Payment Standards v2.2, avec référence QRR
* **Document Ordre permanent** : génération d'un document A4 imprimable pour le locataire, avec référence SCOR ISO 11649 stable
* **Encaissements** : import et parsing CAMT 053 (toutes banques suisses), rapprochement automatique par référence
* **Décomptes annuels de charges** : ventilation par clés de répartition (surface, nombre de pièces, libre)
* **Lettres-types** : 21 modèles préchargés conformes au CO (rappels, mises en demeure, résiliations, hausses, baisses, sinistres, fournisseurs)
* **Sinistres** : déclaration, suivi, courriers à l'assurance, pièces jointes
* **Export Excel** : génération de tableaux pour la déclaration fiscale

= Pour qui ? =

Petits propriétaires suisses (1 à quelques immeubles) qui :

* trouvent que les frais de régie (5 à 8 % des loyers) sont disproportionnés par rapport au service rendu
* veulent garder la maîtrise de leur bien et de leurs relations avec les locataires
* sont à l'aise pour suivre un mode d'emploi clair

= Spécificités suisses prises en charge =

* QR-bill v2.2 (Swiss Payment Standards SIX)
* Parsing CAMT 053 (ISO 20022) pour toutes les banques suisses
* Référence QRR (27 chiffres + check digit mod-10 récursif SIX)
* Référence SCOR (ISO 11649 avec checksum mod-97)
* Articles du CO sur le bail à loyer (Art. 253 ss, 257d, 269d, 266c, etc.)
* Formules officielles cantonales pour résiliations et hausses
* Décomptes de charges conformes aux usages suisses

= Données locales et confidentialité =

Toutes les données restent **chez vous**, sur votre serveur WordPress. Aucune connexion à un service externe. Aucun tracking. Aucun modèle commercial caché.

* Pas d'inscription requise
* Pas d'envoi de données vers des serveurs tiers
* Code source intégralement disponible, lisible et modifiable

= External services =

This plugin does not connect to any external service. All data remains on the user's WordPress installation. No telemetry, no tracking, no third-party API calls.

== Installation ==

1. Téléverser le ZIP via **Extensions → Ajouter → Téléverser une extension**
2. Activer le plugin
3. Aller dans **100gérance → Paramètres → Créancier** et renseigner vos coordonnées et IBAN
4. Créer un premier immeuble dans **100gérance → Immeubles**
5. Ajouter les biens (lots) dans cet immeuble
6. Ajouter vos locataires dans **100gérance → Personnes**
7. Créer vos premiers baux

Le mode d'emploi complet est inclus dans le plugin (menu **100gérance → Mode d'emploi**). Une démonstration en ligne est aussi disponible sur https://100gerance.com.

= Prérequis techniques =

* WordPress 6.0 ou supérieur
* PHP 8.0 ou supérieur
* MySQL 5.7+ ou MariaDB 10.3+
* Extension PHP bcmath recommandée (mais non obligatoire, fallback prévu)
* Aucune dépendance externe (pas de Composer, pas de npm, pas de CDN)

== Frequently Asked Questions ==

= Le plugin est-il vraiment gratuit et sans contrepartie ? =

Oui. Distribué sous licence GPL v2, vous pouvez l'utiliser, le modifier et le redistribuer librement. Aucun abonnement, aucun freemium, aucun upsell. Si vous le souhaitez, vous pouvez soutenir le développement par un don volontaire via la page À propos du plugin, mais rien n'y oblige.

= Mes données sont-elles transmises quelque part ? =

Non. Toutes les données sont stockées dans les tables wp_gerance_* de votre propre base de données WordPress. Le plugin ne se connecte à aucun serveur externe. Aucune télémétrie, aucun tracking.

= 100gérance est-il adapté à mon usage si j'ai un seul appartement ? =

Oui, parfaitement. Le plugin est conçu pour les petits propriétaires (1 immeuble = 1 appartement, ou plus). Aucune fonctionnalité n'est verrouillée selon le nombre de biens.

= Mon e-banking PostFinance / UBS / Raiffeisen / BCV / BCN est-il compatible ? =

Oui. Le plugin lit les fichiers CAMT 053 au format ISO 20022, qui est le standard utilisé par toutes les banques suisses depuis 2018. Si votre banque vous permet de télécharger les relevés CAMT 053 depuis votre e-banking, 100gérance pourra les importer.

= Puis-je utiliser 100gérance pour un bail commercial ? =

Oui. Le plugin gère les baux d'habitation comme les baux commerciaux. Les modèles de lettres-types couvrent les deux cas.

= La référence QRR change chaque mois, c'est normal ? =

Oui. La QRR identifie la facture (un mois donné, un bail donné). Pour un paiement permanent qui doit identifier toujours le même bail, utilisez plutôt le document Ordre permanent qui génère une référence SCOR (ISO 11649) stable dans le temps.

= Le plugin fonctionne-t-il en allemand ou italien ? =

L'interface actuelle est en français. Les modèles de lettres-types sont en français. La traduction allemande et italienne est prévue dans une future version si la demande est suffisante.

= Que se passe-t-il si je désinstalle le plugin ? =

Par défaut, vos données sont **préservées** : les tables wp_gerance_* restent en base. Si vous souhaitez les supprimer définitivement, une option dédiée est disponible dans les paramètres avancés.

== Screenshots ==

1. Tableau de bord : vue d'ensemble des biens, baux actifs et impayés du mois
2. Liste des baux avec leur statut
3. Émission d'une QR-facture de loyer
4. Document Ordre permanent généré pour un locataire (référence SCOR ISO 11649)
5. Import CAMT 053 et rapprochement automatique
6. Décompte annuel de charges avec clés de répartition
7. Gestion des sinistres avec suivi assurance
8. Modèles de lettres-types conformes au CO

== Changelog ==

= 1.0.10 =
* Clarification de la création d'un poste de charge : la « date de référence » est remplacée par un sélecteur d'« Exercice de charges » lisible (ex. 01.07.2024 → 30.06.2025), calé sur le début d'exercice de l'immeuble
* Avec un seul immeuble, ses clés et exercices se chargent immédiatement (plus besoin d'enregistrer une première fois)
* Suppression du champ « Ordre » du formulaire (tri par nom), ajout d'un encart explicatif et de liens directs pour créer une clé manquante
* Aucun changement de schéma par rapport à 1.0.9

= 1.0.9 =
* Nouveauté : période d'exercice de charges décorrélée de l'année civile, configurable par immeuble
* Fiche immeuble : nouveau champ « Début de l'exercice de charges » (jour + mois, ex. 1er juillet pour un exercice de chauffe 01.07 → 30.06)
* Décompte annuel : les dates proposées suivent désormais le dernier exercice clôturé de l'immeuble selon sa configuration ; changer d'immeuble réajuste automatiquement la période (modifiable à la main)
* Migration de schéma : deux colonnes ajoutées à la table immeubles (exercice_mois_debut, exercice_jour_debut), appliquées automatiquement (dbDelta). Immeubles existants : exercice civil par défaut (1er janvier)

= 1.0.8 =
* Nouveauté : postes de charge (« factures équivalentes ») — créez une charge agrégée en remplissant un simple tableau de lignes (libellé, référence, montant), sans saisir de facture fournisseur
* La somme des lignes est ventilée entre les biens via une clé de répartition, exactement comme une facture
* Cas d'usage type : « Chauffage » = combustible + ramonage + entretien brûleur + électricité pompe-brûleur + frais administratifs, distribué par la clé chauffage
* Nouvelle page « Postes de charge » (menu Référentiel) : nom, code/compte, date de référence (rattachement à l'exercice), clé de répartition, tableau de lignes avec total en direct
* Décompte annuel : les postes dont la date de référence tombe dans la période sont repris automatiquement ; nouvelle section « Répartition par poste de charge » façon table de répartition (compte, poste, charges récupérables, part en %)
* Correction au passage : le pourcentage de clé affiché dans le détail des charges du décompte (variable de boucle erronée)
* Migration de schéma : nouvelles tables postes_charges et postes_charges_lignes, appliquées automatiquement (dbDelta) au chargement. Aucune donnée existante modifiée

= 1.0.7 =
* **Correction critique** : QR codes Swiss QR-bill désormais lisibles par toutes les apps eBanking (PostFinance, UBS, Raiffeisen, banques cantonales, Twint, etc.)
* Encodeur QR ISO/IEC 18004 : correction de l'ordre du polynôme générateur Reed-Solomon (était little-endian, devait être big-endian)
* Encodeur QR : correction du placement des bits de format information (LSB-first selon ISO §7.9.2, le plugin faisait MSB-first)
* Encodeur QR : correction du placement des bits de version information (LSB-first selon ISO §7.10) — corrige tous les payloads > 122 octets (versions QR ≥ 7), donc en pratique TOUS les QR-bill réels
* Builder QR-bill : séparateur de champs ramené à LF seul (était CRLF) conformément aux SIX Implementation Guidelines QR-bill v2.2 §3.3
* Aucun changement de schéma DB, aucune migration nécessaire — mise à jour totalement transparente

= 1.0.6 =
* Remplacement de tous les usages de move_uploaded_file() par wp_handle_upload() pour passer par les sécurités WordPress (vérification MIME, anti-malware, sanitization)
* Conformité aux Plugin Review Guidelines WordPress.org
* Aucun changement fonctionnel pour l'utilisateur

= 1.0.5 =
* Nouveauté : génération du document Ordre permanent pour le locataire
* Document A4 imprimable avec coordonnées, montant ventilé, référence SCOR ISO 11649 stable
* Mode d'emploi pas-à-pas pour PostFinance, UBS, Raiffeisen, BCV, BCN
* Algorithme SCOR (ISO 11649) avec checksum mod-97, validé contre la spec officielle
* Référence stable permettant le rapprochement automatique des virements permanents via CAMT 053
* Documentation : nouveau chapitre 9.4 dans le manuel, tableau comparatif QRR vs SCOR dans 4.4

= 1.0.4 =
* Correction du calcul de la somme des pourcentages dans la liste des clés de répartition (affichait 0,00 %)
* Correction du formulaire d'édition des clés : repeuplage correct des lignes existantes
* Correction du moteur de décompte annuel : ventilation des charges via clé de répartition désormais correcte
* Suppression de warnings PHP sur la page Clés

= 1.0.3 =
* Correction d'affichage des clés de répartition (appel get_rows mal formé qui empêchait l'affichage)

= 1.0.2 =
* Retrait de notes de version internes (encarts de développement)
* Nettoyage de commentaires PHP de développement

= 1.0.1 =
* Première release publique

== Upgrade Notice ==

= 1.0.10 =
Création d'un poste de charge clarifiée : sélecteur d'exercice lisible au lieu d'une date, chargement immédiat des clés pour un immeuble unique, formulaire allégé. Aucun changement de schéma.

= 1.0.9 =
Nouveauté : début d'exercice de charges configurable par immeuble (ex. 01.07), décorrélé de l'année civile. Les décomptes proposent automatiquement le bon exercice. Migration de schéma automatique au chargement ; immeubles existants en exercice civil par défaut.

= 1.0.8 =
Nouveauté : postes de charge (« factures équivalentes »). Saisissez une charge agrégée sous forme d'un tableau de lignes (libellé/référence/montant) dont la somme est ventilée par une clé de répartition, sans saisir de facture. Idéal pour le chauffage. Migration de schéma automatique au chargement ; aucune donnée existante modifiée.

= 1.0.7 =
Correction critique : QR codes Swiss QR-bill désormais lisibles par les apps eBanking. Mise à jour fortement recommandée pour tout utilisateur émettant des QR-factures de loyer.

= 1.0.6 =
Mise en conformité aux Plugin Review Guidelines WordPress.org : tous les uploads passent maintenant par wp_handle_upload() pour bénéficier des sécurités WordPress natives. Aucun changement fonctionnel.

= 1.0.5 =
Nouvelle fonctionnalité : document Ordre permanent pour les locataires. Vos données existantes sont préservées.

= 1.0.4 =
Correction importante : les clés de répartition affichaient des warnings PHP et un total à 0 %. Mise à jour recommandée.

= 1.0.3 =
Correction de l'affichage de la page Clés de répartition. Mise à jour recommandée.
