Better PDF

This commit is contained in:
Denis Merigoux 2022-05-04 14:01:14 +02:00
parent 92c9bda10a
commit e3e2e6c4e2
No known key found for this signature in database
GPG Key ID: EE99DCFA365C3EE3
5 changed files with 198 additions and 105 deletions

View File

@ -59,10 +59,7 @@ let wrap_latex
while true do while true do
let new_author = input_line git_channel in let new_author = input_line git_channel in
let groups = Re.Pcre.exec ~rex:authors_rex new_author in let groups = Re.Pcre.exec ~rex:authors_rex new_author in
try try authors := Re.Pcre.get_substring groups 2 :: !authors
authors :=
(Re.Pcre.get_substring groups 1, Re.Pcre.get_substring groups 2)
:: !authors
with Not_found -> () with Not_found -> ()
done done
with End_of_file -> with End_of_file ->
@ -160,6 +157,7 @@ let wrap_latex
%s}\n\ %s}\n\
\\begin{document}\n\ \\begin{document}\n\
\\maketitle\n\n\ \\maketitle\n\n\
%s\n\n\
%s : \n\ %s : \n\
\\begin{itemize}%s\\end{itemize}\n\n\ \\begin{itemize}%s\\end{itemize}\n\n\
\\clearpage\n\ \\clearpage\n\
@ -172,9 +170,9 @@ let wrap_latex
Utils.Cli.version Utils.Cli.version
(String.concat " \\and " (String.concat " \\and "
(List.map (List.map
(fun (commits, author) -> (fun authors -> Format.asprintf "%s" authors)
Format.asprintf "%s (%s commits)" author commits)
(List.rev !authors))) (List.rev !authors)))
(literal_disclaimer_and_link language)
(literal_source_files language) (literal_source_files language)
(String.concat (String.concat
(match language with Fr -> " ;" | En -> ";" | Pl -> ";") (match language with Fr -> " ;" | En -> ";" | Pl -> ";")

View File

@ -32,6 +32,26 @@ let literal_source_files = function
| Fr -> "Fichiers sources tissés dans ce document" | Fr -> "Fichiers sources tissés dans ce document"
| Pl -> "Pliki źródłowe w tym dokumencie" | Pl -> "Pliki źródłowe w tym dokumencie"
let literal_disclaimer_and_link = function
| En ->
"This document was produced from a set of source files written in the \
Catala programming language, mixing together the legislative text and \
the computer code that translates it. For more information about the \
methodology and how to read the code, please visit \
\\url{https://catala-lang.org}."
| Fr ->
"Ce document a été produit à partir d'un ensemble de fichiers sources \
écrits dans le langage de programmation Catala, mêlant le texte \
législatif et le code informatique qui le traduit. Pour plus \
d'informations sur la méthodologie et sur la façon de lire le code, \
veuillez consulter le site \\url{https://catala-lang.org}."
| Pl ->
"Niniejszy dokument został opracowany na podstawie zestawu plików \
źródłowych napisanych w języku programowania Catala, łączących tekst \
legislacyjny z kodem komputerowym, który go tłumaczy. Więcej informacji \
na temat metodologii i sposobu odczytywania kodu można znaleźć na \
stronie \\url{https://catala-lang.org}"
let literal_last_modification = function let literal_last_modification = function
| En -> "last modification" | En -> "last modification"
| Fr -> "dernière modification le" | Fr -> "dernière modification le"

View File

@ -28,6 +28,11 @@ val literal_source_files : Cli.backend_lang -> string
(** Return the 'source files weaved' traduction according the given {!type: (** Return the 'source files weaved' traduction according the given {!type:
Utils.Cli.backend_lang}. *) Utils.Cli.backend_lang}. *)
val literal_disclaimer_and_link : Cli.backend_lang -> string
(** Return the traduction of a paragraph giving a basic disclaimer about Catala
and a link to the website according the given {!type:
Utils.Cli.backend_lang}. *)
val literal_last_modification : Cli.backend_lang -> string val literal_last_modification : Cli.backend_lang -> string
(** Return the 'last modification' traduction according the given {!type: (** Return the 'last modification' traduction according the given {!type:
Utils.Cli.backend_lang}. *) Utils.Cli.backend_lang}. *)

View File

@ -1,5 +1,3 @@
> Inclusion: ../base_mensuelle_allocations_familiales/bmaf.catala_fr
> Inclusion: prologue.catala_fr > Inclusion: prologue.catala_fr
# Code de la construction et de l'habitation # Code de la construction et de l'habitation
@ -13,3 +11,5 @@
> Inclusion: arrete_2019-09-27.catala_fr > Inclusion: arrete_2019-09-27.catala_fr
> Inclusion: autres_sources.catala_fr > Inclusion: autres_sources.catala_fr
> Inclusion: ../base_mensuelle_allocations_familiales/bmaf.catala_fr

View File

@ -1,18 +1,12 @@
# Prologue # Prologue
## Types de données manipulées par le programme
### Calcul et éligibilité de l'aide personnelle au logement
#### Calcul et éligibilité pour le secteur locatif
```catala-metadata ```catala-metadata
déclaration énumération PrestationReçue:
-- AllocationsFamiliales
-- ComplémentFamilial
-- AllocationJeuneEnfant
-- AllocationSoutienFamilial
-- AllocationSoutienEnfantHandicapé
-- AllocationAdulteHandicapé
déclaration énumération TypeContratTravail:
-- CDI
-- Autres
déclaration énumération TypeBailleur: déclaration énumération TypeBailleur:
-- BailleurSocial -- BailleurSocial
-- BailleurPrivé -- BailleurPrivé
@ -27,6 +21,21 @@ déclaration structure Bailleur:
déclaration structure Location: déclaration structure Location:
donnée bailleur contenu Bailleur donnée bailleur contenu Bailleur
déclaration structure InformationsCalculAPLLocatif:
donnée loyer_principal contenu argent
donnée bénéficiaire_aide_adulte_ou_enfant_handicapés contenu booléen
donnée logement_est_chambre contenu booléen
donnée colocation contenu booléen
donnée personne_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
contenu booléen
# TODO informatique et juridique: calculer type_aide!
donnée type_aide contenu TypeAidePersonnelleLogement
donnée réduction_loyer_solidarité contenu argent
```
#### Calcul et éligibilité pour le secteur accession à la propriété
```catala-metadata
déclaration énumération TypePrêt: déclaration énumération TypePrêt:
-- D331_32 -- D331_32
-- D331_63_64 -- D331_63_64
@ -45,12 +54,67 @@ déclaration structure Prêt:
déclaration structure Propriétaire: déclaration structure Propriétaire:
donnée prêt contenu Prêt donnée prêt contenu Prêt
déclaration énumération TypeTravauxLogement:
-- SurLocauxNonHabitation
-- SurLogementExistant
-- PasDeTravaux
déclaration énumération AmélioréParOccupant:
-- Oui
-- Non
déclaration énumération NeufOuAncien:
-- Neuf
-- Ancien contenu AmélioréParOccupant
déclaration structure InformationsCalculAPLAccessionPropriété:
donnée mensualité_principale contenu argent
donnée date_signature_prêt contenu date
donnée date_entrée_logement contenu date
donnée type_travaux_logement contenu TypeTravauxLogement
donnée local_habité_première_fois_bénéficiaire contenu booléen
donnée copropriété contenu booléen
donnée situation_r822_11_13_17 contenu booléen
donnée type_prêt contenu TypePrêt
donnée ancienneté_logement contenu NeufOuAncien
```
#### Calcul et éligibilité pour le secteur logement-foyer
```catala-metadata
déclaration énumération LimiteTranche:
-- Revenu contenu argent
-- Infini
déclaration structure TrancheRevenu:
donnée haut contenu LimiteTranche
donnée bas contenu argent
donnée taux contenu décimal
déclaration structure LogementFoyer: déclaration structure LogementFoyer:
donnée type contenu TypeLogementFoyer donnée type contenu TypeLogementFoyer
donnée date_conventionnement contenu date donnée date_conventionnement contenu date
donnée location contenu Location donnée location contenu Location
donnée remplit_conditions_r832_21 contenu booléen donnée remplit_conditions_r832_21 contenu booléen
```
#### Calcul et éligibilité pour tous les secteurs
```catala-metadata
déclaration énumération PrestationReçue:
-- AllocationsFamiliales
-- ComplémentFamilial
-- AllocationJeuneEnfant
-- AllocationSoutienFamilial
-- AllocationSoutienEnfantHandicapé
-- AllocationAdulteHandicapé
déclaration énumération TypeContratTravail:
-- CDI
-- Autres
déclaration énumération ModeOccupation: déclaration énumération ModeOccupation:
-- Locataire contenu Location -- Locataire contenu Location
-- RésidentLogementFoyer contenu LogementFoyer -- RésidentLogementFoyer contenu LogementFoyer
@ -146,6 +210,58 @@ déclaration énumération Nationalité:
-- Française -- Française
-- Étrangère -- Étrangère
déclaration énumération ZoneDHabitation:
-- Zone1
-- Zone2
-- Zone3
déclaration énumération CatégorieCalculAPL:
-- Location
-- AccessionPropriété
-- LogementFoyer
déclaration énumération InformationsCalculAPL:
-- InfosLocatif contenu InformationsCalculAPLLocatif
-- InfosLogementFoyer
-- InfosAccessionPropriété contenu
InformationsCalculAPLAccessionPropriété
```
### Informations concernant l'évaluation des ressources du ménage
```catala-metadata
déclaration structure PersonneVivantHabituellementAuFoyer:
donnée durée_résidence_durant_période_r_822_3_1 contenu durée
donnée ressources contenu argent
déclaration énumération PaiementLogementDistinctProfessionnel:
-- OuiAvecLoyerOuCharges contenu argent
-- Non
```
### Informations relatives aux impayés de dépense de logement
```catala-metadata
déclaration énumération VersementÀ:
-- Bailleur
-- Bénéficiaire
-- ÉtablissementHabilité
déclaration énumération DépenseLogement:
-- TotalAnnuelÉchéances contenu argent
-- Mensualité contenu argent
-- Loyer contenu argent
déclaration énumération ModeOccupationImpayé:
-- ImpayéLoyer
-- ImpayéPrêt
```
## Déclarations des champs d'application
### Éligibilité à l'aide personnelle au logement
```catala-metadata
déclaration champ d'application ÉligibilitéAidePersonnelleLogement: déclaration champ d'application ÉligibilitéAidePersonnelleLogement:
entrée ménage contenu Ménage entrée ménage contenu Ménage
entrée demandeur contenu Demandeur entrée demandeur contenu Demandeur
@ -197,7 +313,11 @@ champ d'application ÉligibilitéAidePersonnelleLogement:
condition_logement_mode_occupation et condition_logement_mode_occupation et
éligibilité_logement éligibilité_logement
conséquence rempli conséquence rempli
```
### Éligibilité à la prime de déménagement
```catala-metadata
déclaration champ d'application ÉligibilitéPrimeDeDéménagement: déclaration champ d'application ÉligibilitéPrimeDeDéménagement:
entrée date_emménagement contenu date entrée date_emménagement contenu date
entrée ménage contenu Ménage entrée ménage contenu Ménage
@ -224,15 +344,11 @@ champ d'application ÉligibilitéPrimeDeDéménagement:
date_ouverture_droits date_ouverture_droits
définition base_mensuelle_allocations_familiales.date_courante égal à définition base_mensuelle_allocations_familiales.date_courante égal à
date_ouverture_droits date_ouverture_droits
```
déclaration structure PersonneVivantHabituellementAuFoyer: ### Prise en compte des ressources pour l'aide personnelle au logement
donnée durée_résidence_durant_période_r_822_3_1 contenu durée
donnée ressources contenu argent
déclaration énumération PaiementLogementDistinctProfessionnel:
-- OuiAvecLoyerOuCharges contenu argent
-- Non
```catala-metadata
déclaration champ d'application RessourcesAidePersonnelleLogement: déclaration champ d'application RessourcesAidePersonnelleLogement:
entrée ressources_demandeur contenu argent entrée ressources_demandeur contenu argent
entrée ressources_conjoint contenu argent entrée ressources_conjoint contenu argent
@ -261,42 +377,26 @@ déclaration champ d'application RessourcesAidePersonnelleLogement:
BaseMensuelleAllocationsFamiliales BaseMensuelleAllocationsFamiliales
sortie ressources_prises_en_compte contenu argent sortie ressources_prises_en_compte contenu argent
```
déclaration énumération ZoneDHabitation: ### Calcul des contributions sociales s'appliquant à l'aide personnelle au logement
-- Zone1
-- Zone2
-- Zone3
déclaration énumération CatégorieCalculAPL:
-- Location
-- AccessionPropriété
-- LogementFoyer
déclaration énumération TypeTravauxLogement:
-- SurLocauxNonHabitation
-- SurLogementExistant
-- PasDeTravaux
déclaration énumération AmélioréParOccupant:
-- Oui
-- Non
déclaration énumération NeufOuAncien:
-- Neuf
-- Ancien contenu AmélioréParOccupant
déclaration énumération LimiteTranche:
-- Revenu contenu argent
-- Infini
déclaration structure TrancheRevenu:
donnée haut contenu LimiteTranche
donnée bas contenu argent
donnée taux contenu décimal
```catala-metadata
déclaration champ d'application ContributionsSocialesAidePersonnelleLogement: déclaration champ d'application ContributionsSocialesAidePersonnelleLogement:
sortie montant contenu argent dépend de argent sortie montant contenu argent dépend de argent
champ d'application ContributionsSocialesAidePersonnelleLogement:
# TODO juridique: mettre ce bout de code à côté des articles de loi qui le
# justifient. (Pas de CSG mais la CRDS pour les APL)
définition montant de aide_finale égal à
aide_finale *€ 0,5%
```
### Calcul du montant de l'aide personnelle au logement
#### Secteur locatif
```catala-metadata
déclaration champ d'application CalculAidePersonnelleLogementLocatif: déclaration champ d'application CalculAidePersonnelleLogementLocatif:
entrée loyer_principal contenu argent entrée loyer_principal contenu argent
entrée ressources_ménage_arrondies contenu argent entrée ressources_ménage_arrondies contenu argent
@ -343,7 +443,11 @@ déclaration champ d'application CalculAidePersonnelleLogementLocatif:
état contributions_sociales_arrondi état contributions_sociales_arrondi
état réduction_loyer_solidarité état réduction_loyer_solidarité
état montant_minimal état montant_minimal
```
#### Secteur logement-foyer
```catala-metadata
déclaration champ d'application CalculAidePersonnelleLogementFoyer: déclaration champ d'application CalculAidePersonnelleLogementFoyer:
entrée mode_occupation contenu ModeOccupation entrée mode_occupation contenu ModeOccupation
entrée ressources_ménage_arrondies contenu argent entrée ressources_ménage_arrondies contenu argent
@ -381,7 +485,11 @@ déclaration champ d'application CalculAidePersonnelleLogementFoyer:
état abattement état abattement
état contributions_sociales_arrondi état contributions_sociales_arrondi
état montant_minimal état montant_minimal
```
#### Secteur accession à la propriété
```catala-metadata
déclaration champ d'application déclaration champ d'application
CalculAidePersonnelleLogementAccessionPropriété: CalculAidePersonnelleLogementAccessionPropriété:
entrée mensualité_principale contenu argent entrée mensualité_principale contenu argent
@ -435,36 +543,11 @@ déclaration champ d'application
état abattement état abattement
état contributions_sociales_arrondi état contributions_sociales_arrondi
état montant_minimal état montant_minimal
```
déclaration structure InformationsCalculAPLLocatif: #### Tous secteurs
donnée loyer_principal contenu argent
donnée bénéficiaire_aide_adulte_ou_enfant_handicapés contenu booléen
donnée logement_est_chambre contenu booléen
donnée colocation contenu booléen
donnée personne_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
contenu booléen
# TODO informatique et juridique: calculer type_aide!
donnée type_aide contenu TypeAidePersonnelleLogement
donnée réduction_loyer_solidarité contenu argent
déclaration structure InformationsCalculAPLAccessionPropriété:
donnée mensualité_principale contenu argent
donnée date_signature_prêt contenu date
donnée date_entrée_logement contenu date
donnée type_travaux_logement contenu TypeTravauxLogement
donnée local_habité_première_fois_bénéficiaire contenu booléen
donnée copropriété contenu booléen
donnée situation_r822_11_13_17 contenu booléen
donnée type_prêt contenu TypePrêt
donnée ancienneté_logement contenu NeufOuAncien
déclaration énumération InformationsCalculAPL:
-- InfosLocatif contenu InformationsCalculAPLLocatif
-- InfosLogementFoyer
-- InfosAccessionPropriété contenu
InformationsCalculAPLAccessionPropriété
```catala-metadata
déclaration champ d'application CalculAidePersonnelleLogement: déclaration champ d'application CalculAidePersonnelleLogement:
entrée mode_occupation contenu ModeOccupation entrée mode_occupation contenu ModeOccupation
entrée informations_calcul contenu InformationsCalculAPL entrée informations_calcul contenu InformationsCalculAPL
@ -485,32 +568,19 @@ déclaration champ d'application CalculAidePersonnelleLogement:
CalculAidePersonnelleLogementAccessionPropriété CalculAidePersonnelleLogementAccessionPropriété
sortie aide_finale contenu argent sortie aide_finale contenu argent
```
### Date d'ouverture des droits à la retraite
champ d'application ContributionsSocialesAidePersonnelleLogement: ```catala-metadata
# TODO juridique: mettre ce bout de code à côté des articles de loi qui le
# justifient. (Pas de CSG mais la CRDS pour les APL)
définition montant de aide_finale égal à
aide_finale *€ 0,5%
déclaration champ d'application OuvertureDroitsRetraite: déclaration champ d'application OuvertureDroitsRetraite:
sortie âge_ouverture_droit contenu durée sortie âge_ouverture_droit contenu durée
entrée date_naissance_assuré contenu date entrée date_naissance_assuré contenu date
```
déclaration énumération VersementÀ: ### Quantification des impayés de dépense de logement
-- Bailleur
-- Bénéficiaire
-- ÉtablissementHabilité
déclaration énumération DépenseLogement:
-- TotalAnnuelÉchéances contenu argent
-- Mensualité contenu argent
-- Loyer contenu argent
déclaration énumération ModeOccupationImpayé:
-- ImpayéLoyer
-- ImpayéPrêt
```catala-metadata
déclaration champ d'application ImpayéDépenseLogement: déclaration champ d'application ImpayéDépenseLogement:
entrée mode_occupation contenu ModeOccupation entrée mode_occupation contenu ModeOccupation
entrée aide_versée contenu VersementÀ entrée aide_versée contenu VersementÀ