partiduo-reports

= partiduo-reports — rapports avancés et listings :toc: left :toc-title: Table des matières :icons: font

Partiduo est le portage en Crystal de https://noalyss.eu[NOALYSS], logiciel libre de comptabilité créé et maintenu par Dany De Bontridder. Partiduo n'est pas un projet officiel NOALYSS.

Ce dépôt est l'extension REPORTS de Partiduo (ADR-003), successeur des greffons « Rapport avancé » (RAPAV) et « Listing » de NOALYSS (noalyss-plugins/rapport_avance et noalyss-plugins/listing, la source legacy) : on en porte les fonctions, pas le code. Un rapport se définit par lignes et colonnes, avec des formules sur les comptes, les fiches, l'analytique et les périodes, calculées en décimal par le contrat du cœur et un analyseur sûr (ni évaluation de code, ni SQL fourni par l'utilisateur) ; un listing donne une ligne par fiche, produit un document par fiche depuis un modèle (publipostage, envoi par courriel) et s'inscrit au suivi. Les définitions se partagent entre dossiers par un format JSON documenté.

Spécification : ../partiduo-docs/adr/ADR-003-contrat-extensions.adoc (sort des extensions amont), avec ADR-005 (interface), ADR-006 (Comptabilité), ADR-010 (modèles de documents) et ADR-011 (dossier foyer). Décisions (D-REP-*), inventaire porté / adapté / refusé et amendements proposés : link:DECISIONS.adoc[]. Références : link:doc/api/reports.adoc[] (contrat), link:doc/formules.adoc[] (langage de formule), link:doc/format-definitions.adoc[] (format de partage).

== Fonctions

[cols="1,3",options="header"] |=== |Fonction |Dans REPORTS

|Rapports |Lignes (titres, textes, remarques, formules, listes de comptes, lignes vides), styles et retraits ; colonnes de période (décalée, depuis le début d'exercice, exercice entier, ouverture, mois) ou de formule (@N - @N1) ; génération périodique (une colonne par tranche) ; aperçu en HTMX.

|Formules |[70%-S], {CLIENT-s}, {{PROJET}}, options (journaux, exclusions, contrepartie, fiche de l'écriture, période, date de paiement ou d'échéance, payé / non payé, codes de TVA), $CODE, @CODE, abs, round, min, max, pos, neg, pct, if.

|Déclarations |Révision des montants puis conservation d'une copie figée ; déclaration générée depuis un modèle (AsciiDoc, Markdown, ODT, DOCX, et PDF) par partiduo-modeles.

|Listings |Fiches d'une catégorie ou d'une nature ; champs, attributs, formules sur la fiche ; conditions, tri, totaux ; filtre payé / non payé ; fiches cochées conservées ; un document par fiche (archive ZIP) ou pour tout le listing depuis un modèle ; envoi de chaque document par courriel ; inscription au suivi.

|Exports |CSV, ODS, PDF/A-2b par le socle (titre principal en tête de page, niveaux de titre).

|Partage |Export et import JSON, import des définitions .bin de la source legacy, reprise des rapports personnalisés de la Comptabilité, définitions fournies (soldes intermédiaires de gestion, clients). |===

== Organisation

[source]

src/ ├── partiduo-reports.cr # point d'entrée du shard ├── partiduo-reports/cli.cr # migrations : require "partiduo-reports/cli" └── reports/ # métier (application Marten « reports ») ├── app.cr, manifest.cr # code REPORTS, permissions, menus ├── models/ # tables reports_* ├── migrations/ # 0001 : tables et contraintes ├── services/ # formule, périodes, sources, calculs, exports, documents, partage (interne) ├── api/ # contrat public Reports::Api ├── starters/ # définitions fournies (JSON) └── locales/ # fr, en, nl, de, es, it, pt ui/ └── bulma/ # interface pour partiduo-ui-bulma (application « reports_ui ») ├── bulma.cr # routes sous /ext/REPORTS/ ├── handlers/, templates/reports/, assets/reports/, locales/

== Composer une distribution

[source,crystal]

require "partiduo-ui-bulma/partiduo_ui" require "partiduo-modeles" require "partiduo-modeles/ui/bulma" require "partiduo-reports" require "partiduo-reports/ui/bulma"

installed_apps += Modeles::INSTALLED_APPS + Modeles::Ui::INSTALLED_APPS

+ Reports::INSTALLED_APPS + Reports::Ui::INSTALLED_APPS

ligne de commande : require "partiduo-modeles/cli" et "partiduo-reports/cli"


L'extension exige la Comptabilité (depends_on "ACCOUNTING") ; elle s'active par dossier (Partiduo::Api::Modules.activate, écran « Modules »), y compris dans un dossier foyer. Le shard dépend de partiduo-modeles (contrat Modeles::Api), mais le manifeste n'exige pas l'extension MODELES : les documents depuis un modèle ne sont proposés que quand elle est active dans le dossier (D-REP-021).

== Développement local

shard.yml et shard.lock référencent les shards maison sur GitHub (aloli-crystal/* et aloli-partiduo/*), suivis par branche. Le verrou versionné ne contient aucune dépendance path: : les ports FreeBSD et la CI l'exigent.

Pour travailler sur les copies de travail voisines (../../prod-crystal/<nom> et ../partiduo-<dépôt>), lancer :

[source,sh]

scripts/override-local.sh

Le script génère un shard.override.yml local et non versionné (ignoré par git), installe les shards, puis remet shard.lock à son état versionné. Une copie de travail absente reste prise sur GitHub.

Pour régénérer le verrou versionné, supprimer d'abord l'override local :

[source,sh]

rm -f shard.override.yml SKIP_MARTEN_CLI_PRECOMPILATION=1 shards update scripts/override-local.sh # retour au mode local

== Commandes

[source,sh]

cd prod-crystal/partiduo/partiduo-reports SKIP_MARTEN_CLI_PRECOMPILATION=1 shards install createdb -h /tmp partiduo_test_ DATABASE_URL='postgres:///partiduo_test_?host=/tmp' crystal spec --order random crystal tool format src spec ui config scripts manage.cr && bin/ameba

== Version et licence

Numéro dans shard.yml seulement (constante Reports::VERSION lue à la compilation) ; chaque commit en incrémente le dernier chiffre. Licence AGPL-3.0-or-later (fichier LICENSE).

Repository

partiduo-reports

Owner
Statistic
  • 0
  • 0
  • 0
  • 1
  • 5
  • 8 days ago
  • October 12, 2026
License

GNU Affero General Public License v3.0

Links
Synced at

Mon, 26 Oct 2026 12:23:54 GMT

Languages