catala/french_law/ocaml/law_source/aides_logement.ml
2023-04-18 14:46:25 +02:00

42065 lines
2.7 MiB
Generated

(** This file has been generated by the Catala compiler, do not edit! *)
open Runtime_ocaml.Runtime
[@@@ocaml.warning "-4-26-27-32-41-42"]
module TypePret = struct
type t =
| D331_32 of unit
| D331_63_64 of unit
| D331_59_8 of unit
| D331_76_1 of unit
| Autre of unit
end
let embed_type_pret (x: TypePret.t) : runtime_value =
Enum(["TypePrêt"],
match x with
| D331_32 x -> ("D331_32", embed_unit x)
| D331_63_64 x -> ("D331_63_64", embed_unit x)
| D331_59_8 x -> ("D331_59_8", embed_unit x)
| D331_76_1 x -> ("D331_76_1", embed_unit x)
| Autre x -> ("Autre", embed_unit x))
module TitulairePret = struct
type t =
| Demandeur of unit
| VendeurQuandDemandeurAContratLocationAccession of unit
end
let embed_titulaire_pret (x: TitulairePret.t) : runtime_value =
Enum(["TitulairePrêt"],
match x with
| Demandeur x -> ("Demandeur", embed_unit x)
| VendeurQuandDemandeurAContratLocationAccession x ->
("VendeurQuandDemandeurAContratLocationAccession", embed_unit x))
module TypeTravauxLogementD83215 = struct
type t =
| TravauxPourAcquisitionD832_15_1 of unit
| TravauxSurLogementDejaAcquisD832_15_2 of unit
| PasDeTravaux of unit
end
let embed_type_travaux_logement_d832_15 (x: TypeTravauxLogementD83215.t)
: runtime_value =
Enum(["TypeTravauxLogementD832_15"],
match x with
| TravauxPourAcquisitionD832_15_1 x ->
("TravauxPourAcquisitionD832_15_1", embed_unit x)
| TravauxSurLogementDejaAcquisD832_15_2 x ->
("TravauxSurLogementDéjàAcquisD832_15_2", embed_unit x)
| PasDeTravaux x -> ("PasDeTravaux", embed_unit x))
module TypeTravauxLogementR8425 = struct
type t =
| ObjectifDecenceLogement of unit
| PrevuDansListeR321_15 of unit
| AgrandirOuRendreHabitableD331_63 of unit
| PasDeTravaux of unit
end
let embed_type_travaux_logement_r842_5 (x: TypeTravauxLogementR8425.t)
: runtime_value =
Enum(["TypeTravauxLogementR842_5"],
match x with
| ObjectifDecenceLogement x -> ("ObjectifDécenceLogement", embed_unit x)
| PrevuDansListeR321_15 x -> ("PrévuDansListeR321_15", embed_unit x)
| AgrandirOuRendreHabitableD331_63 x ->
("AgrandirOuRendreHabitableD331_63", embed_unit x)
| PasDeTravaux x -> ("PasDeTravaux", embed_unit x))
module AmelioreParOccupant = struct
type t =
| Oui of unit
| Non of unit
end
let embed_ameliore_par_occupant (x: AmelioreParOccupant.t) : runtime_value =
Enum(["AmélioréParOccupant"],
match x with
| Oui x -> ("Oui", embed_unit x)
| Non x -> ("Non", embed_unit x))
module LimiteTranche = struct
type t =
| Revenu of money
| Infini of unit
end
let embed_limite_tranche (x: LimiteTranche.t) : runtime_value =
Enum(["LimiteTranche"],
match x with
| Revenu x -> ("Revenu", embed_money x)
| Infini x -> ("Infini", embed_unit x))
module LimiteTrancheDecimal = struct
type t =
| Revenu of decimal
| Infini of unit
end
let embed_limite_tranche_decimal (x: LimiteTrancheDecimal.t)
: runtime_value =
Enum(["LimiteTrancheDécimal"],
match x with
| Revenu x -> ("Revenu", embed_decimal x)
| Infini x -> ("Infini", embed_unit x))
module PrestationRecue = struct
type t =
| AllocationsFamiliales of unit
| ComplementFamilial of unit
| AllocationSoutienFamilial of unit
| AllocationSoutienEnfantHandicape of unit
end
let embed_prestation_recue (x: PrestationRecue.t) : runtime_value =
Enum(["PrestationReçue"],
match x with
| AllocationsFamiliales x -> ("AllocationsFamiliales", embed_unit x)
| ComplementFamilial x -> ("ComplémentFamilial", embed_unit x)
| AllocationSoutienFamilial x ->
("AllocationSoutienFamilial", embed_unit x)
| AllocationSoutienEnfantHandicape x ->
("AllocationSoutienEnfantHandicapé", embed_unit x))
module ParentOuAutre = struct
type t =
| DemandeurOuConjointOuParentOuViaPartsSocietes of decimal
| Autre of unit
end
let embed_parent_ou_autre (x: ParentOuAutre.t) : runtime_value =
Enum(["ParentOuAutre"],
match x with
| DemandeurOuConjointOuParentOuViaPartsSocietes x ->
("DemandeurOuConjointOuParentOuViaPartsSociétés", embed_decimal x)
| Autre x -> ("Autre", embed_unit x))
module SituationGardeAlternee = struct
type t =
| PasDeGardeAlternee of unit
| GardeAlterneeCoefficientPriseEnCharge of decimal
end
let embed_situation_garde_alternee (x: SituationGardeAlternee.t)
: runtime_value =
Enum(["SituationGardeAlternée"],
match x with
| PasDeGardeAlternee x -> ("PasDeGardeAlternée", embed_unit x)
| GardeAlterneeCoefficientPriseEnCharge x ->
("GardeAlternéeCoefficientPriseEnCharge", embed_decimal x))
module Parente = struct
type t =
| Ascendant of unit
| Descendant of unit
| CollateralDeuxiemeTroisiemeDegre of unit
end
let embed_parente (x: Parente.t) : runtime_value =
Enum(["Parenté"],
match x with
| Ascendant x -> ("Ascendant", embed_unit x)
| Descendant x -> ("Descendant", embed_unit x)
| CollateralDeuxiemeTroisiemeDegre x ->
("CollatéralDeuxièmeTroisièmeDegré", embed_unit x))
module DateDeNaissanceOuMoisDeGrossesse = struct
type t =
| DateDeNaissance of date
| AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse of unit
| ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse of unit
end
let embed_date_de_naissance_ou_mois_de_grossesse
(x: DateDeNaissanceOuMoisDeGrossesse.t) : runtime_value =
Enum(["DateDeNaissanceOuMoisDeGrossesse"],
match x with
| DateDeNaissance x -> ("DateDeNaissance", embed_date x)
| AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse x ->
("AvantPremierJourMoisCivilTroisièmeMoisDeGrossesse", embed_unit x)
| ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse x ->
("AprèsPremierJourMoisCivilTroisièmeMoisDeGrossesse", embed_unit x))
module ZoneDHabitation = struct
type t =
| Zone1 of unit
| Zone2 of unit
| Zone3 of unit
end
let embed_zone_d_habitation (x: ZoneDHabitation.t) : runtime_value =
Enum(["ZoneDHabitation"],
match x with
| Zone1 x -> ("Zone1", embed_unit x)
| Zone2 x -> ("Zone2", embed_unit x)
| Zone3 x -> ("Zone3", embed_unit x))
module VersementA = struct
type t =
| Bailleur of unit
| Beneficiaire of unit
| EtablissementHabilite of unit
end
let embed_versement_a (x: VersementA.t) : runtime_value =
Enum(["VersementÀ"],
match x with
| Bailleur x -> ("Bailleur", embed_unit x)
| Beneficiaire x -> ("Bénéficiaire", embed_unit x)
| EtablissementHabilite x -> ("ÉtablissementHabilité", embed_unit x))
module DepenseLogement = struct
type t =
| TotalAnnuelEcheances of money
| Mensualite of money
| Loyer of money
end
let embed_depense_logement (x: DepenseLogement.t) : runtime_value =
Enum(["DépenseLogement"],
match x with
| TotalAnnuelEcheances x -> ("TotalAnnuelÉchéances", embed_money x)
| Mensualite x -> ("Mensualité", embed_money x)
| Loyer x -> ("Loyer", embed_money x))
module ModeOccupationImpaye = struct
type t =
| ImpayeLoyer of unit
| ImpayePret of unit
end
let embed_mode_occupation_impaye (x: ModeOccupationImpaye.t)
: runtime_value =
Enum(["ModeOccupationImpayé"],
match x with
| ImpayeLoyer x -> ("ImpayéLoyer", embed_unit x)
| ImpayePret x -> ("ImpayéPrêt", embed_unit x))
module TypeEligibiliteAllocationLogement = struct
type t =
| PasEligible of unit
| AllocationLogementFamiliale of unit
| AllocationLogementSociale of unit
end
let embed_type_eligibilite_allocation_logement
(x: TypeEligibiliteAllocationLogement.t) : runtime_value =
Enum(["TypeÉligibilitéAllocationLogement"],
match x with
| PasEligible x -> ("PasÉligible", embed_unit x)
| AllocationLogementFamiliale x ->
("AllocationLogementFamiliale", embed_unit x)
| AllocationLogementSociale x ->
("AllocationLogementSociale", embed_unit x))
module AccordFinancementRepresentantEtatOutreMer = struct
type t =
| Accord of date
| PasdAccord of unit
end
let embed_accord_financement_representant_etat_outre_mer
(x: AccordFinancementRepresentantEtatOutreMer.t) : runtime_value =
Enum(["AccordFinancementReprésentantÉtatOutreMer"],
match x with
| Accord x -> ("Accord", embed_date x)
| PasdAccord x -> ("PasdAccord", embed_unit x))
module TypeAidesPersonnelleLogement = struct
type t =
| AidePersonnaliseeLogement of unit
| AllocationLogementFamiliale of unit
| AllocationLogementSociale of unit
end
let embed_type_aides_personnelle_logement (x: TypeAidesPersonnelleLogement.t)
: runtime_value =
Enum(["TypeAidesPersonnelleLogement"],
match x with
| AidePersonnaliseeLogement x ->
("AidePersonnaliséeLogement", embed_unit x)
| AllocationLogementFamiliale x ->
("AllocationLogementFamiliale", embed_unit x)
| AllocationLogementSociale x ->
("AllocationLogementSociale", embed_unit x))
module SituationFamiliale = struct
type t =
| Celibataire of unit
| Maries of date
| Pacses of unit
| Concubins of unit
| CelibataireSepareDeFait of unit
| ConcubinageDontSepareDeFait of unit
end
let embed_situation_familiale (x: SituationFamiliale.t) : runtime_value =
Enum(["SituationFamiliale"],
match x with
| Celibataire x -> ("Célibataire", embed_unit x)
| Maries x -> ("Mariés", embed_date x)
| Pacses x -> ("Pacsés", embed_unit x)
| Concubins x -> ("Concubins", embed_unit x)
| CelibataireSepareDeFait x ->
("CélibataireSéparéDeFait", embed_unit x)
| ConcubinageDontSepareDeFait x ->
("ConcubinageDontSéparéDeFait", embed_unit x))
module TypeLogementFoyer = struct
type t =
| LogementPersonnesAgeesOuHandicapees of unit
| ResidenceSociale of unit
| FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 of unit
| Autre of unit
end
let embed_type_logement_foyer (x: TypeLogementFoyer.t) : runtime_value =
Enum(["TypeLogementFoyer"],
match x with
| LogementPersonnesAgeesOuHandicapees x ->
("LogementPersonnesÂgéesOuHandicapées", embed_unit x)
| ResidenceSociale x -> ("RésidenceSociale", embed_unit x)
| FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 x ->
("FoyerJeunesTrvailleursOuMigrantsConventionnéL353_2Avant1995", embed_unit x)
| Autre x -> ("Autre", embed_unit x))
module CategorieEquivalenceLoyerAllocationLogementFoyer = struct
type t =
| EtudiantLogeEnChambreCROUS of unit
| EtudiantLogeEnChambreCROUSRehabilitee of unit
| PersonnesAgeesSelon3DeD842_16 of unit
| AutresPersonnes of unit
end
let embed_categorie_equivalence_loyer_allocation_logement_foyer
(x: CategorieEquivalenceLoyerAllocationLogementFoyer.t) : runtime_value =
Enum(["CatégorieÉquivalenceLoyerAllocationLogementFoyer"],
match x with
| EtudiantLogeEnChambreCROUS x ->
("ÉtudiantLogéEnChambreCROUS", embed_unit x)
| EtudiantLogeEnChambreCROUSRehabilitee x ->
("ÉtudiantLogéEnChambreCROUSRéhabilitée", embed_unit x)
| PersonnesAgeesSelon3DeD842_16 x ->
("PersonnesÂgéesSelon3DeD842_16", embed_unit x)
| AutresPersonnes x -> ("AutresPersonnes", embed_unit x))
module SituationFamilialeCalculAPL = struct
type t =
| PersonneSeule of unit
| Couple of unit
end
let embed_situation_familiale_calcul_a_p_l (x: SituationFamilialeCalculAPL.t)
: runtime_value =
Enum(["SituationFamilialeCalculAPL"],
match x with
| PersonneSeule x -> ("PersonneSeule", embed_unit x)
| Couple x -> ("Couple", embed_unit x))
module Collectivite = struct
type t =
| Guadeloupe of unit
| Guyane of unit
| Martinique of unit
| LaReunion of unit
| SaintBarthelemy of unit
| SaintMartin of unit
| Metropole of unit
| SaintPierreEtMiquelon of unit
| Mayotte of unit
end
let embed_collectivite (x: Collectivite.t) : runtime_value =
Enum(["Collectivité"],
match x with
| Guadeloupe x -> ("Guadeloupe", embed_unit x)
| Guyane x -> ("Guyane", embed_unit x)
| Martinique x -> ("Martinique", embed_unit x)
| LaReunion x -> ("LaRéunion", embed_unit x)
| SaintBarthelemy x -> ("SaintBarthélemy", embed_unit x)
| SaintMartin x -> ("SaintMartin", embed_unit x)
| Metropole x -> ("Métropole", embed_unit x)
| SaintPierreEtMiquelon x -> ("SaintPierreEtMiquelon", embed_unit x)
| Mayotte x -> ("Mayotte", embed_unit x))
module SituationObligationScolaire = struct
type t =
| Avant of unit
| Pendant of unit
| Apres of unit
end
let embed_situation_obligation_scolaire (x: SituationObligationScolaire.t)
: runtime_value =
Enum(["SituationObligationScolaire"],
match x with
| Avant x -> ("Avant", embed_unit x)
| Pendant x -> ("Pendant", embed_unit x)
| Apres x -> ("Après", embed_unit x))
module ConventionBailleurSocial = struct
type t = {
conventionne_livre_III_titre_V_chap_III: bool;
reduction_loyer_solidarite_percue: money
}
end
let embed_convention_bailleur_social (x: ConventionBailleurSocial.t) : runtime_value =
Struct(["ConventionBailleurSocial"],
[("conventionné_livre_III_titre_V_chap_III", embed_bool
x.ConventionBailleurSocial.conventionne_livre_III_titre_V_chap_III);
("réduction_loyer_solidarité_perçue", embed_money
x.ConventionBailleurSocial.reduction_loyer_solidarite_percue)])
module ConventionANHA = struct
type t = {conventionne_livre_III_titre_II_chap_I_sec_3: bool}
end
let embed_convention_a_n_h_a (x: ConventionANHA.t) : runtime_value =
Struct(["ConventionANHA"],
[("conventionné_livre_III_titre_II_chap_I_sec_3", embed_bool
x.ConventionANHA.conventionne_livre_III_titre_II_chap_I_sec_3)])
module PersonneSousLocation = struct
type t = {
date_naissance_personne_sous_location: date;
conforme_article_l442_1: bool
}
end
let embed_personne_sous_location (x: PersonneSousLocation.t) : runtime_value =
Struct(["PersonneSousLocation"],
[("date_naissance_personne_sous_location", embed_date
x.PersonneSousLocation.date_naissance_personne_sous_location);
("conforme_article_l442_1", embed_bool
x.PersonneSousLocation.conforme_article_l442_1)])
module ConditionsEtrangers = struct
type t = {
satisfait_conditions_l512_2_code_securite_sociale: bool;
satisfait_art_4_ordonnance_2002_mayotte: bool
}
end
let embed_conditions_etrangers (x: ConditionsEtrangers.t) : runtime_value =
Struct(["ConditionsÉtrangers"],
[("satisfait_conditions_l512_2_code_sécurité_sociale", embed_bool
x.ConditionsEtrangers.satisfait_conditions_l512_2_code_securite_sociale);
("satisfait_art_4_ordonnance_2002_mayotte", embed_bool
x.ConditionsEtrangers.satisfait_art_4_ordonnance_2002_mayotte)])
module EligibiliteAidePersonnaliseeLogement = struct
type t = {
date_courante: date;
eligibilite: bool;
nombre_personnes_a_charge_prises_en_compte: integer;
coefficents_enfants_garde_alternee_pris_en_compte: decimal array
}
end
let embed_eligibilite_aide_personnalisee_logement (x: EligibiliteAidePersonnaliseeLogement.t) : runtime_value =
Struct(["ÉligibilitéAidePersonnaliséeLogement"],
[("date_courante", embed_date
x.EligibiliteAidePersonnaliseeLogement.date_courante);
("éligibilité", embed_bool
x.EligibiliteAidePersonnaliseeLogement.eligibilite);
("nombre_personnes_à_charge_prises_en_compte", embed_integer
x.EligibiliteAidePersonnaliseeLogement.nombre_personnes_a_charge_prises_en_compte);
("coefficents_enfants_garde_alternée_pris_en_compte",
embed_array (embed_decimal)
x.EligibiliteAidePersonnaliseeLogement.coefficents_enfants_garde_alternee_pris_en_compte)])
module EligibilitePrimeDeDemenagement = struct
type t = {eligibilite: bool; montant_prime_demenagement: money}
end
let embed_eligibilite_prime_de_demenagement (x: EligibilitePrimeDeDemenagement.t) : runtime_value =
Struct(["ÉligibilitéPrimeDeDéménagement"],
[("éligibilité", embed_bool
x.EligibilitePrimeDeDemenagement.eligibilite);
("montant_prime_déménagement", embed_money
x.EligibilitePrimeDeDemenagement.montant_prime_demenagement)])
module ContributionsSocialesAidesPersonnelleLogement = struct
type t = {montant: money -> money}
end
let embed_contributions_sociales_aides_personnelle_logement (x: ContributionsSocialesAidesPersonnelleLogement.t) : runtime_value =
Struct(["ContributionsSocialesAidesPersonnelleLogement"],
[("montant", unembeddable
x.ContributionsSocialesAidesPersonnelleLogement.montant)])
module CalculAidePersonnaliseeLogementLocatif = struct
type t = {
montant_forfaitaire_charges_d823_16: money;
plafond_loyer_d823_16_2: money;
participation_minimale: money;
taux_composition_familiale: decimal;
participation_personnelle: money;
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_aide_personnalisee_logement_locatif (x: CalculAidePersonnaliseeLogementLocatif.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementLocatif"],
[("montant_forfaitaire_charges_d823_16", embed_money
x.CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16);
("plafond_loyer_d823_16_2", embed_money
x.CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2);
("participation_minimale", embed_money
x.CalculAidePersonnaliseeLogementLocatif.participation_minimale);
("taux_composition_familiale", embed_decimal
x.CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale);
("participation_personnelle", embed_money
x.CalculAidePersonnaliseeLogementLocatif.participation_personnelle);
("aide_finale_formule", embed_money
x.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale)])
module CalculEquivalenceLoyerMinimale = struct
type t = {montant: money}
end
let embed_calcul_equivalence_loyer_minimale (x: CalculEquivalenceLoyerMinimale.t) : runtime_value =
Struct(["CalculÉquivalenceLoyerMinimale"],
[("montant", embed_money x.CalculEquivalenceLoyerMinimale.montant)])
module CalculNombrePartLogementFoyer = struct
type t = {n_nombre_parts_d832_25: decimal}
end
let embed_calcul_nombre_part_logement_foyer (x: CalculNombrePartLogementFoyer.t) : runtime_value =
Struct(["CalculNombrePartLogementFoyer"],
[("n_nombre_parts_d832_25", embed_decimal
x.CalculNombrePartLogementFoyer.n_nombre_parts_d832_25)])
module CalculAidePersonnaliseeLogementFoyer = struct
type t = {
coefficient_multiplicateur_d832_25: money;
coefficient_r_d832_25: money;
n_nombre_parts_d832_25: decimal;
equivalence_loyer_eligible: money;
plafond_equivalence_loyer_eligible: money;
equivalence_loyer_minimale: money;
coefficient_prise_en_charge_d832_25: decimal;
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_aide_personnalisee_logement_foyer (x: CalculAidePersonnaliseeLogementFoyer.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementFoyer"],
[("coefficient_multiplicateur_d832_25", embed_money
x.CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25);
("coefficient_r_d832_25", embed_money
x.CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25);
("n_nombre_parts_d832_25", embed_decimal
x.CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25);
("équivalence_loyer_éligible", embed_money
x.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible);
("plafond_équivalence_loyer_éligible", embed_money
x.CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible);
("équivalence_loyer_minimale", embed_money
x.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale);
("coefficient_prise_en_charge_d832_25", embed_decimal
x.CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25);
("aide_finale_formule", embed_money
x.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale)])
module CalculNombrePartsAccessionPropriete = struct
type t = {n_nombre_parts_d832_11: decimal}
end
let embed_calcul_nombre_parts_accession_propriete (x: CalculNombrePartsAccessionPropriete.t) : runtime_value =
Struct(["CalculNombrePartsAccessionPropriété"],
[("n_nombre_parts_d832_11", embed_decimal
x.CalculNombrePartsAccessionPropriete.n_nombre_parts_d832_11)])
module CalculAidePersonnaliseeLogementAccessionPropriete = struct
type t = {
mensualite_eligible: money;
mensualite_minimale: money;
coefficient_prise_en_charge_d832_10: decimal;
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_aide_personnalisee_logement_accession_propriete (x: CalculAidePersonnaliseeLogementAccessionPropriete.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementAccessionPropriété"],
[("mensualité_éligible", embed_money
x.CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_eligible);
("mensualité_minimale", embed_money
x.CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_minimale);
("coefficient_prise_en_charge_d832_10", embed_decimal
x.CalculAidePersonnaliseeLogementAccessionPropriete.coefficient_prise_en_charge_d832_10);
("aide_finale_formule", embed_money
x.CalculAidePersonnaliseeLogementAccessionPropriete.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAidePersonnaliseeLogementAccessionPropriete.traitement_aide_finale)])
module TraitementFormuleAideFinale = struct
type t = {
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_traitement_formule_aide_finale (x: TraitementFormuleAideFinale.t) : runtime_value =
Struct(["Traitement_formule_aide_finale"],
[("aide_finale_formule", embed_money
x.TraitementFormuleAideFinale.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.TraitementFormuleAideFinale.traitement_aide_finale)])
module CalculAidePersonnaliseeLogement = struct
type t = {
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_aide_personnalisee_logement (x: CalculAidePersonnaliseeLogement.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogement"],
[("aide_finale_formule", embed_money
x.CalculAidePersonnaliseeLogement.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAidePersonnaliseeLogement.traitement_aide_finale)])
module InfosChangementLogementD8424 = struct
type t = {
ancien_loyer_principal: money;
ancienne_allocation_logement: money
}
end
let embed_infos_changement_logement_d842_4 (x: InfosChangementLogementD8424.t) : runtime_value =
Struct(["InfosChangementLogementD842_4"],
[("ancien_loyer_principal", embed_money
x.InfosChangementLogementD8424.ancien_loyer_principal);
("ancienne_allocation_logement", embed_money
x.InfosChangementLogementD8424.ancienne_allocation_logement)])
module CalculAllocationLogementLocatif = struct
type t = {
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_allocation_logement_locatif (x: CalculAllocationLogementLocatif.t) : runtime_value =
Struct(["CalculAllocationLogementLocatif"],
[("aide_finale_formule", embed_money
x.CalculAllocationLogementLocatif.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAllocationLogementLocatif.traitement_aide_finale)])
module CalculAllocationLogementAccessionPropriete = struct
type t = {
mensualite_eligible: money;
mensualite_minimale: money;
coefficient_prise_en_charge: decimal;
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_allocation_logement_accession_propriete (x: CalculAllocationLogementAccessionPropriete.t) : runtime_value =
Struct(["CalculAllocationLogementAccessionPropriété"],
[("mensualité_éligible", embed_money
x.CalculAllocationLogementAccessionPropriete.mensualite_eligible);
("mensualité_minimale", embed_money
x.CalculAllocationLogementAccessionPropriete.mensualite_minimale);
("coefficient_prise_en_charge", embed_decimal
x.CalculAllocationLogementAccessionPropriete.coefficient_prise_en_charge);
("aide_finale_formule", embed_money
x.CalculAllocationLogementAccessionPropriete.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAllocationLogementAccessionPropriete.traitement_aide_finale)])
module CalculAllocationLogementFoyer = struct
type t = {
coefficient_prise_en_charge: decimal;
equivalence_loyer: money;
montant_forfaitaire_charges: money;
loyer_minimal: money;
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_allocation_logement_foyer (x: CalculAllocationLogementFoyer.t) : runtime_value =
Struct(["CalculAllocationLogementFoyer"],
[("coefficient_prise_en_charge", embed_decimal
x.CalculAllocationLogementFoyer.coefficient_prise_en_charge);
("équivalence_loyer", embed_money
x.CalculAllocationLogementFoyer.equivalence_loyer);
("montant_forfaitaire_charges", embed_money
x.CalculAllocationLogementFoyer.montant_forfaitaire_charges);
("loyer_minimal", embed_money
x.CalculAllocationLogementFoyer.loyer_minimal);
("aide_finale_formule", embed_money
x.CalculAllocationLogementFoyer.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAllocationLogementFoyer.traitement_aide_finale)])
module CalculAllocationLogement = struct
type t = {
aide_finale_formule: money;
traitement_aide_finale: money -> money
}
end
let embed_calcul_allocation_logement (x: CalculAllocationLogement.t) : runtime_value =
Struct(["CalculAllocationLogement"],
[("aide_finale_formule", embed_money
x.CalculAllocationLogement.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculAllocationLogement.traitement_aide_finale)])
module OuvertureDroitsRetraite = struct
type t = {age_ouverture_droit: duration}
end
let embed_ouverture_droits_retraite (x: OuvertureDroitsRetraite.t) : runtime_value =
Struct(["OuvertureDroitsRetraite"],
[("âge_ouverture_droit", embed_duration
x.OuvertureDroitsRetraite.age_ouverture_droit)])
module ImpayeDepenseLogement = struct
type t = {montant_impaye: money}
end
let embed_impaye_depense_logement (x: ImpayeDepenseLogement.t) : runtime_value =
Struct(["ImpayéDépenseLogement"],
[("montant_impayé", embed_money x.ImpayeDepenseLogement.montant_impaye)])
module CalculetteAidesAuLogement = struct
type t = {
eligibilite: bool;
aide_finale_formule: money;
traitement_aide_finale: money -> money;
coefficents_enfants_garde_alternee_pris_en_compte: decimal array
}
end
let embed_calculette_aides_au_logement (x: CalculetteAidesAuLogement.t) : runtime_value =
Struct(["CalculetteAidesAuLogement"],
[("éligibilité", embed_bool
x.CalculetteAidesAuLogement.eligibilite);
("aide_finale_formule", embed_money
x.CalculetteAidesAuLogement.aide_finale_formule);
("traitement_aide_finale", unembeddable
x.CalculetteAidesAuLogement.traitement_aide_finale);
("coefficents_enfants_garde_alternée_pris_en_compte",
embed_array (embed_decimal)
x.CalculetteAidesAuLogement.coefficents_enfants_garde_alternee_pris_en_compte)])
module CalculetteAidesAuLogementGardeAlternee = struct
type t = {eligibilite: bool; aide_finale: money}
end
let embed_calculette_aides_au_logement_garde_alternee (x: CalculetteAidesAuLogementGardeAlternee.t) : runtime_value =
Struct(["CalculetteAidesAuLogementGardeAlternée"],
[("éligibilité", embed_bool
x.CalculetteAidesAuLogementGardeAlternee.eligibilite);
("aide_finale", embed_money
x.CalculetteAidesAuLogementGardeAlternee.aide_finale)])
module BaseMensuelleAllocationsFamiliales = struct
type t = {montant: money}
end
let embed_base_mensuelle_allocations_familiales (x: BaseMensuelleAllocationsFamiliales.t) : runtime_value =
Struct(["BaseMensuelleAllocationsFamiliales"],
[("montant", embed_money x.BaseMensuelleAllocationsFamiliales.montant)])
module VerificationAgeInferieurOuEgalA = struct
type t = {est_inferieur_ou_egal: bool}
end
let embed_verification_age_inferieur_ou_egal_a (x: VerificationAgeInferieurOuEgalA.t) : runtime_value =
Struct(["VérificationÂgeInférieurOuÉgalÀ"],
[("est_inférieur_ou_égal", embed_bool
x.VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal)])
module VerificationAgeSuperieurA = struct
type t = {est_superieur: bool}
end
let embed_verification_age_superieur_a (x: VerificationAgeSuperieurA.t) : runtime_value =
Struct(["VérificationÂgeSupérieurÀ"],
[("est_supérieur", embed_bool x.VerificationAgeSuperieurA.est_superieur)])
module Smic = struct
type t = {brut_horaire: money}
end
let embed_smic (x: Smic.t) : runtime_value = Struct(["Smic"],
[("brut_horaire", embed_money x.Smic.brut_horaire)])
module NeufOuAncien = struct
type t =
| Neuf of unit
| Ancien of AmelioreParOccupant.t
end
let embed_neuf_ou_ancien (x: NeufOuAncien.t) : runtime_value =
Enum(["NeufOuAncien"],
match x with
| Neuf x -> ("Neuf", embed_unit x)
| Ancien x -> ("Ancien", embed_ameliore_par_occupant x))
module TrancheRevenu = struct
type t = {haut: LimiteTranche.t; bas: money; taux: decimal}
end
let embed_tranche_revenu (x: TrancheRevenu.t) : runtime_value =
Struct(["TrancheRevenu"],
[("haut", embed_limite_tranche x.TrancheRevenu.haut);
("bas", embed_money x.TrancheRevenu.bas);
("taux", embed_decimal x.TrancheRevenu.taux)])
module TrancheRevenuDecimal = struct
type t = {haut: LimiteTrancheDecimal.t; bas: decimal; taux: decimal}
end
let embed_tranche_revenu_decimal (x: TrancheRevenuDecimal.t) : runtime_value =
Struct(["TrancheRevenuDécimal"],
[("haut", embed_limite_tranche_decimal x.TrancheRevenuDecimal.haut);
("bas", embed_decimal x.TrancheRevenuDecimal.bas);
("taux", embed_decimal x.TrancheRevenuDecimal.taux)])
module AutrePersonneACharge = struct
type t = {
date_naissance: date;
ressources: money;
ascendant_descendant_collateral_deuxieme_troisieme_degre: bool;
parente: Parente.t;
incapacite_80_pourcent_ou_restriction_emploi: bool;
beneficiaire_l161_19_l351_8_l643_3_secu: bool;
titulaire_allocation_personne_agee: bool
}
end
let embed_autre_personne_a_charge (x: AutrePersonneACharge.t) : runtime_value =
Struct(["AutrePersonneÀCharge"],
[("date_naissance", embed_date
x.AutrePersonneACharge.date_naissance);
("ressources", embed_money
x.AutrePersonneACharge.ressources);
("ascendant_descendant_collatéral_deuxième_troisième_degré",
embed_bool
x.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre);
("parenté", embed_parente
x.AutrePersonneACharge.parente);
("incapacité_80_pourcent_ou_restriction_emploi", embed_bool
x.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi);
("bénéficiaire_l161_19_l351_8_l643_3_sécu", embed_bool
x.AutrePersonneACharge.beneficiaire_l161_19_l351_8_l643_3_secu);
("titulaire_allocation_personne_âgée", embed_bool
x.AutrePersonneACharge.titulaire_allocation_personne_agee)])
module DateNaissanceTroisiemeOuDernierPlusEnfant = struct
type t =
| MoinsDeTroisEnfants of unit
| PlusDeTroisEnfants of DateDeNaissanceOuMoisDeGrossesse.t
end
let embed_date_naissance_troisieme_ou_dernier_plus_enfant
(x: DateNaissanceTroisiemeOuDernierPlusEnfant.t) : runtime_value =
Enum(["DateNaissanceTroisièmeOuDernierPlusEnfant"],
match x with
| MoinsDeTroisEnfants x -> ("MoinsDeTroisEnfants", embed_unit x)
| PlusDeTroisEnfants x ->
("PlusDeTroisEnfants", embed_date_de_naissance_ou_mois_de_grossesse x))
module EligibiliteAllocationLogement = struct
type t = {
eligibilite: TypeEligibiliteAllocationLogement.t;
nombre_personnes_a_charge_prises_en_compte: integer;
coefficents_enfants_garde_alternee_pris_en_compte: decimal array
}
end
let embed_eligibilite_allocation_logement (x: EligibiliteAllocationLogement.t) : runtime_value =
Struct(["ÉligibilitéAllocationLogement"],
[("éligibilité", embed_type_eligibilite_allocation_logement
x.EligibiliteAllocationLogement.eligibilite);
("nombre_personnes_à_charge_prises_en_compte", embed_integer
x.EligibiliteAllocationLogement.nombre_personnes_a_charge_prises_en_compte);
("coefficents_enfants_garde_alternée_pris_en_compte",
embed_array (embed_decimal)
x.EligibiliteAllocationLogement.coefficents_enfants_garde_alternee_pris_en_compte)])
module Pret = struct
type t = {
type_pret: TypePret.t;
date_signature: date;
titulaire_pret: TitulairePret.t;
accord_financement_representant_Etat_outre_mer:
AccordFinancementRepresentantEtatOutreMer.t
}
end
let embed_pret (x: Pret.t) : runtime_value = Struct(["Prêt"],
[("type_prêt", embed_type_pret x.Pret.type_pret);
("date_signature", embed_date x.Pret.date_signature);
("titulaire_prêt", embed_titulaire_pret
x.Pret.titulaire_pret);
("accord_financement_représentant_État_outre_mer",
embed_accord_financement_representant_etat_outre_mer
x.Pret.accord_financement_representant_Etat_outre_mer)])
module LogementFoyer = struct
type t = {
type_user: TypeLogementFoyer.t;
remplit_conditions_r832_21: bool;
conventionne_livre_III_titre_V_chap_III: bool;
conventionne_selon_regles_drom: bool;
date_conventionnement: date;
construit_application_loi_1957_12_III: bool;
redevance: money;
categorie_equivalence_loyer_d842_16:
CategorieEquivalenceLoyerAllocationLogementFoyer.t;
beneficiaire_aide_adulte_ou_enfant_handicapes: bool;
logement_meuble_d842_2: bool
}
end
let embed_logement_foyer (x: LogementFoyer.t) : runtime_value =
Struct(["LogementFoyer"],
[("type", embed_type_logement_foyer
x.LogementFoyer.type_user);
("remplit_conditions_r832_21", embed_bool
x.LogementFoyer.remplit_conditions_r832_21);
("conventionné_livre_III_titre_V_chap_III", embed_bool
x.LogementFoyer.conventionne_livre_III_titre_V_chap_III);
("conventionné_selon_règles_drom", embed_bool
x.LogementFoyer.conventionne_selon_regles_drom);
("date_conventionnement", embed_date
x.LogementFoyer.date_conventionnement);
("construit_application_loi_1957_12_III", embed_bool
x.LogementFoyer.construit_application_loi_1957_12_III);
("redevance", embed_money
x.LogementFoyer.redevance);
("catégorie_équivalence_loyer_d842_16",
embed_categorie_equivalence_loyer_allocation_logement_foyer
x.LogementFoyer.categorie_equivalence_loyer_d842_16);
("bénéficiaire_aide_adulte_ou_enfant_handicapés", embed_bool
x.LogementFoyer.beneficiaire_aide_adulte_ou_enfant_handicapes);
("logement_meublé_d842_2", embed_bool
x.LogementFoyer.logement_meuble_d842_2)])
module EnfantPrestationsFamiliales = struct
type t = {
identifiant: integer;
obligation_scolaire: SituationObligationScolaire.t;
remuneration_mensuelle: money;
date_de_naissance: date;
a_deja_ouvert_droit_aux_allocations_familiales: bool;
beneficie_titre_personnel_aide_personnelle_logement: bool
}
end
let embed_enfant_prestations_familiales (x: EnfantPrestationsFamiliales.t) : runtime_value =
Struct(["EnfantPrestationsFamiliales"],
[("identifiant", embed_integer
x.EnfantPrestationsFamiliales.identifiant);
("obligation_scolaire", embed_situation_obligation_scolaire
x.EnfantPrestationsFamiliales.obligation_scolaire);
("rémuneration_mensuelle", embed_money
x.EnfantPrestationsFamiliales.remuneration_mensuelle);
("date_de_naissance", embed_date
x.EnfantPrestationsFamiliales.date_de_naissance);
("a_déjà_ouvert_droit_aux_allocations_familiales", embed_bool
x.EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales);
("bénéficie_titre_personnel_aide_personnelle_logement", embed_bool
x.EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement)])
module TypeBailleur = struct
type t =
| BailleurSocial of ConventionBailleurSocial.t
| BailleurPriveAvecConventionnementSocial of ConventionANHA.t
| BailleurPrive of unit
end
let embed_type_bailleur (x: TypeBailleur.t) : runtime_value =
Enum(["TypeBailleur"],
match x with
| BailleurSocial x ->
("BailleurSocial", embed_convention_bailleur_social x)
| BailleurPriveAvecConventionnementSocial x ->
("BailleurPrivéAvecConventionnementSocial", embed_convention_a_n_h_a x)
| BailleurPrive x -> ("BailleurPrivé", embed_unit x))
module LoueOuSousLoueADesTiers = struct
type t =
| Non of unit
| Oui of PersonneSousLocation.t
end
let embed_loue_ou_sous_loue_a_des_tiers (x: LoueOuSousLoueADesTiers.t)
: runtime_value =
Enum(["LouéOuSousLouéÀDesTiers"],
match x with
| Non x -> ("Non", embed_unit x)
| Oui x -> ("Oui", embed_personne_sous_location x))
module Nationalite = struct
type t =
| Francaise of unit
| Etrangere of ConditionsEtrangers.t
end
let embed_nationalite (x: Nationalite.t) : runtime_value =
Enum(["Nationalité"],
match x with
| Francaise x -> ("Française", embed_unit x)
| Etrangere x -> ("Étrangère", embed_conditions_etrangers x))
module ChangementLogementD8424 = struct
type t =
| Changement of InfosChangementLogementD8424.t
| PasDeChangement of unit
end
let embed_changement_logement_d842_4 (x: ChangementLogementD8424.t)
: runtime_value =
Enum(["ChangementLogementD842_4"],
match x with
| Changement x ->
("Changement", embed_infos_changement_logement_d842_4 x)
| PasDeChangement x -> ("PasDeChangement", embed_unit x))
module InformationsPrimeDeDemenagement = struct
type t = {
nombre_enfants_a_naitre_apres_troisieme_mois_grossesse: integer;
date_naissance_troisieme_enfant_ou_dernier_si_plus:
DateNaissanceTroisiemeOuDernierPlusEnfant.t
}
end
let embed_informations_prime_de_demenagement (x: InformationsPrimeDeDemenagement.t) : runtime_value =
Struct(["InformationsPrimeDeDéménagement"],
[("nombre_enfants_à_naître_après_troisième_mois_grossesse",
embed_integer
x.InformationsPrimeDeDemenagement.nombre_enfants_a_naitre_apres_troisieme_mois_grossesse);
("date_naissance_troisième_enfant_ou_dernier_si_plus",
embed_date_naissance_troisieme_ou_dernier_plus_enfant
x.InformationsPrimeDeDemenagement.date_naissance_troisieme_enfant_ou_dernier_si_plus)])
module Proprietaire = struct
type t = {
mensualite_principale: money;
charges_mensuelles_pret: money;
date_entree_logement: date;
type_travaux_logement_d832_15: TypeTravauxLogementD83215.t;
type_travaux_logement_r842_5: TypeTravauxLogementR8425.t;
local_habite_premiere_fois_beneficiaire: bool;
copropriete: bool;
situation_r822_11_13_17: bool;
anciennete_logement: NeufOuAncien.t;
pret: Pret.t;
operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat:
bool
}
end
let embed_proprietaire (x: Proprietaire.t) : runtime_value =
Struct(["Propriétaire"],
[("mensualité_principale", embed_money
x.Proprietaire.mensualite_principale);
("charges_mensuelles_prêt", embed_money
x.Proprietaire.charges_mensuelles_pret);
("date_entrée_logement", embed_date
x.Proprietaire.date_entree_logement);
("type_travaux_logement_d832_15", embed_type_travaux_logement_d832_15
x.Proprietaire.type_travaux_logement_d832_15);
("type_travaux_logement_r842_5", embed_type_travaux_logement_r842_5
x.Proprietaire.type_travaux_logement_r842_5);
("local_habité_première_fois_bénéficiaire", embed_bool
x.Proprietaire.local_habite_premiere_fois_beneficiaire);
("copropriété", embed_bool
x.Proprietaire.copropriete);
("situation_r822_11_13_17", embed_bool
x.Proprietaire.situation_r822_11_13_17);
("ancienneté_logement", embed_neuf_ou_ancien
x.Proprietaire.anciennete_logement);
("prêt", embed_pret
x.Proprietaire.pret);
("opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État",
embed_bool
x.Proprietaire.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat)])
module EligibilitePrestationsFamiliales = struct
type t = {
age_l512_3_2: duration;
droit_ouvert: EnfantPrestationsFamiliales.t -> bool;
conditions_hors_age: EnfantPrestationsFamiliales.t -> bool;
regime_outre_mer_l751_1: bool
}
end
let embed_eligibilite_prestations_familiales (x: EligibilitePrestationsFamiliales.t) : runtime_value =
Struct(["ÉligibilitéPrestationsFamiliales"],
[("âge_l512_3_2", embed_duration
x.EligibilitePrestationsFamiliales.age_l512_3_2);
("droit_ouvert", unembeddable
x.EligibilitePrestationsFamiliales.droit_ouvert);
("conditions_hors_âge", unembeddable
x.EligibilitePrestationsFamiliales.conditions_hors_age);
("régime_outre_mer_l751_1", embed_bool
x.EligibilitePrestationsFamiliales.regime_outre_mer_l751_1)])
module Demandeur = struct
type t = {
date_naissance: date;
nationalite: Nationalite.t;
personne_hebergee_centre_soin_l_L162_22_3_securite_sociale: bool;
est_non_salarie_agricole_l781_8_l_781_46_code_rural: bool;
magistrat_fonctionnaire_centre_interets_materiels_familiaux_hors_mayotte:
bool
}
end
let embed_demandeur (x: Demandeur.t) : runtime_value = Struct(["Demandeur"],
[("date_naissance", embed_date x.Demandeur.date_naissance);
("nationalité", embed_nationalite
x.Demandeur.nationalite);
("personne_hébergée_centre_soin_l_L162_22_3_sécurité_sociale",
embed_bool
x.Demandeur.personne_hebergee_centre_soin_l_L162_22_3_securite_sociale);
("est_non_salarié_agricole_l781_8_l_781_46_code_rural", embed_bool
x.Demandeur.est_non_salarie_agricole_l781_8_l_781_46_code_rural);
("magistrat_fonctionnaire_centre_intérêts_matériels_familiaux_hors_mayotte",
embed_bool
x.Demandeur.magistrat_fonctionnaire_centre_interets_materiels_familiaux_hors_mayotte)])
module EnfantACharge = struct
type t = {
identifiant: integer;
nationalite: Nationalite.t;
beneficie_titre_personnel_aide_personnelle_logement: bool;
a_deja_ouvert_droit_aux_allocations_familiales: bool;
date_de_naissance: date;
remuneration_mensuelle: money;
obligation_scolaire: SituationObligationScolaire.t;
situation_garde_alternee: SituationGardeAlternee.t;
etudes_apprentissage_stage_formation_pro_impossibilite_travail: bool
}
end
let embed_enfant_a_charge (x: EnfantACharge.t) : runtime_value =
Struct(["EnfantÀCharge"],
[("identifiant", embed_integer
x.EnfantACharge.identifiant);
("nationalité", embed_nationalite
x.EnfantACharge.nationalite);
("bénéficie_titre_personnel_aide_personnelle_logement", embed_bool
x.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement);
("a_déjà_ouvert_droit_aux_allocations_familiales", embed_bool
x.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
("date_de_naissance", embed_date
x.EnfantACharge.date_de_naissance);
("rémuneration_mensuelle", embed_money
x.EnfantACharge.remuneration_mensuelle);
("obligation_scolaire", embed_situation_obligation_scolaire
x.EnfantACharge.obligation_scolaire);
("situation_garde_alternée", embed_situation_garde_alternee
x.EnfantACharge.situation_garde_alternee);
("études_apprentissage_stage_formation_pro_impossibilité_travail",
embed_bool
x.EnfantACharge.etudes_apprentissage_stage_formation_pro_impossibilite_travail)])
module Location = struct
type t = {
bailleur: TypeBailleur.t;
loyer_principal: money;
beneficiaire_aide_adulte_ou_enfant_handicapes: bool;
logement_est_chambre: bool;
colocation: bool;
agees_ou_handicap_adultes_hebergees_onereux_particuliers: bool;
logement_meuble_d842_2: bool;
changement_logement_d842_4: ChangementLogementD8424.t
}
end
let embed_location (x: Location.t) : runtime_value = Struct(["Location"],
[("bailleur", embed_type_bailleur x.Location.bailleur);
("loyer_principal", embed_money
x.Location.loyer_principal);
("bénéficiaire_aide_adulte_ou_enfant_handicapés", embed_bool
x.Location.beneficiaire_aide_adulte_ou_enfant_handicapes);
("logement_est_chambre", embed_bool
x.Location.logement_est_chambre);
("colocation", embed_bool
x.Location.colocation);
("âgées_ou_handicap_adultes_hébergées_onéreux_particuliers",
embed_bool
x.Location.agees_ou_handicap_adultes_hebergees_onereux_particuliers);
("logement_meublé_d842_2", embed_bool
x.Location.logement_meuble_d842_2);
("changement_logement_d842_4", embed_changement_logement_d842_4
x.Location.changement_logement_d842_4)])
module PersonneACharge = struct
type t =
| EnfantACharge of EnfantACharge.t
| AutrePersonneACharge of AutrePersonneACharge.t
end
let embed_personne_a_charge (x: PersonneACharge.t) : runtime_value =
Enum(["PersonneÀCharge"],
match x with
| EnfantACharge x -> ("EnfantÀCharge", embed_enfant_a_charge x)
| AutrePersonneACharge x ->
("AutrePersonneÀCharge", embed_autre_personne_a_charge x))
module CategorieCalculAPL = struct
type t =
| Location of Location.t
| AccessionPropriete of Proprietaire.t
| LogementFoyer of LogementFoyer.t
end
let embed_categorie_calcul_a_p_l (x: CategorieCalculAPL.t) : runtime_value =
Enum(["CatégorieCalculAPL"],
match x with
| Location x -> ("Location", embed_location x)
| AccessionPropriete x -> ("AccessionPropriété", embed_proprietaire x)
| LogementFoyer x -> ("LogementFoyer", embed_logement_foyer x))
module ModeOccupation = struct
type t =
| Locataire of Location.t
| ResidentLogementFoyer of LogementFoyer.t
| AccessionProprieteLocalUsageExclusifHabitation of Proprietaire.t
| SousLocataire of Location.t
| LocationAccession of Proprietaire.t
end
let embed_mode_occupation (x: ModeOccupation.t) : runtime_value =
Enum(["ModeOccupation"],
match x with
| Locataire x -> ("Locataire", embed_location x)
| ResidentLogementFoyer x ->
("RésidentLogementFoyer", embed_logement_foyer x)
| AccessionProprieteLocalUsageExclusifHabitation x ->
("AccessionPropriétéLocalUsageExclusifHabitation", embed_proprietaire x)
| SousLocataire x -> ("SousLocataire", embed_location x)
| LocationAccession x -> ("LocationAccession", embed_proprietaire x))
module EligibiliteAidesPersonnelleLogement = struct
type t = {
date_courante: date;
eligibilite: bool;
nombre_personnes_a_charge_prises_en_compte: integer;
coefficents_enfants_garde_alternee_pris_en_compte: decimal array;
condition_2_r823_4: PersonneACharge.t -> bool
}
end
let embed_eligibilite_aides_personnelle_logement (x: EligibiliteAidesPersonnelleLogement.t) : runtime_value =
Struct(["ÉligibilitéAidesPersonnelleLogement"],
[("date_courante", embed_date
x.EligibiliteAidesPersonnelleLogement.date_courante);
("éligibilité", embed_bool
x.EligibiliteAidesPersonnelleLogement.eligibilite);
("nombre_personnes_à_charge_prises_en_compte", embed_integer
x.EligibiliteAidesPersonnelleLogement.nombre_personnes_a_charge_prises_en_compte);
("coefficents_enfants_garde_alternée_pris_en_compte",
embed_array (embed_decimal)
x.EligibiliteAidesPersonnelleLogement.coefficents_enfants_garde_alternee_pris_en_compte);
("condition_2_r823_4", unembeddable
x.EligibiliteAidesPersonnelleLogement.condition_2_r823_4)])
module Logement = struct
type t = {
residence_principale: bool;
mode_occupation: ModeOccupation.t;
proprietaire: ParentOuAutre.t;
loue_ou_sous_loue_a_des_tiers: LoueOuSousLoueADesTiers.t;
usufruit: ParentOuAutre.t;
logement_decent_l89_462: bool;
surface_m_carres: integer;
zone: ZoneDHabitation.t
}
end
let embed_logement (x: Logement.t) : runtime_value = Struct(["Logement"],
[("résidence_principale", embed_bool
x.Logement.residence_principale);
("mode_occupation", embed_mode_occupation
x.Logement.mode_occupation);
("propriétaire", embed_parent_ou_autre
x.Logement.proprietaire);
("loué_ou_sous_loué_à_des_tiers", embed_loue_ou_sous_loue_a_des_tiers
x.Logement.loue_ou_sous_loue_a_des_tiers);
("usufruit", embed_parent_ou_autre
x.Logement.usufruit);
("logement_decent_l89_462", embed_bool
x.Logement.logement_decent_l89_462);
("surface_m_carrés", embed_integer x.Logement.surface_m_carres);
("zone", embed_zone_d_habitation x.Logement.zone)])
module Menage = struct
type t = {
prestations_recues: PrestationRecue.t array;
logement: Logement.t;
personnes_a_charge: PersonneACharge.t array;
nombre_autres_occupants_logement: integer;
situation_familiale: SituationFamiliale.t;
condition_rattache_foyer_fiscal_parent_ifi: bool;
enfant_a_naitre_apres_quatrieme_mois_grossesse: bool;
personnes_agees_handicapees_foyer_r844_4: bool;
residence: Collectivite.t
}
end
let embed_menage (x: Menage.t) : runtime_value = Struct(["Ménage"],
[("prestations_reçues", embed_array (embed_prestation_recue)
x.Menage.prestations_recues);
("logement", embed_logement x.Menage.logement);
("personnes_à_charge", embed_array (embed_personne_a_charge)
x.Menage.personnes_a_charge);
("nombre_autres_occupants_logement", embed_integer
x.Menage.nombre_autres_occupants_logement);
("situation_familiale", embed_situation_familiale
x.Menage.situation_familiale);
("condition_rattaché_foyer_fiscal_parent_ifi", embed_bool
x.Menage.condition_rattache_foyer_fiscal_parent_ifi);
("enfant_à_naître_après_quatrième_mois_grossesse", embed_bool
x.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse);
("personnes_âgées_handicapées_foyer_r844_4", embed_bool
x.Menage.personnes_agees_handicapees_foyer_r844_4);
("résidence", embed_collectivite x.Menage.residence)])
module EligibiliteAidesPersonnelleLogementIn = struct
type t = {
menage_in: Menage.t;
demandeur_in: Demandeur.t;
date_courante_in: date;
condition_logement_residence_principale_in: unit -> bool;
condition_logement_surface_in: unit -> bool;
date_entree_vigueur_differee_cch_in: unit -> date
}
end
let embed_eligibilite_aides_personnelle_logement_in (x: EligibiliteAidesPersonnelleLogementIn.t) : runtime_value =
Struct(["ÉligibilitéAidesPersonnelleLogement_in"],
[("ménage_in", embed_menage
x.EligibiliteAidesPersonnelleLogementIn.menage_in);
("demandeur_in", embed_demandeur
x.EligibiliteAidesPersonnelleLogementIn.demandeur_in);
("date_courante_in", embed_date
x.EligibiliteAidesPersonnelleLogementIn.date_courante_in);
("condition_logement_résidence_principale_in", unembeddable
x.EligibiliteAidesPersonnelleLogementIn.condition_logement_residence_principale_in);
("condition_logement_surface_in", unembeddable
x.EligibiliteAidesPersonnelleLogementIn.condition_logement_surface_in);
("date_entrée_vigueur_différée_cch_in", unembeddable
x.EligibiliteAidesPersonnelleLogementIn.date_entree_vigueur_differee_cch_in)])
module EligibiliteAidePersonnaliseeLogementIn = struct
type t = {
menage_in: Menage.t;
demandeur_in: Demandeur.t;
date_courante_in: date
}
end
let embed_eligibilite_aide_personnalisee_logement_in (x: EligibiliteAidePersonnaliseeLogementIn.t) : runtime_value =
Struct(["ÉligibilitéAidePersonnaliséeLogement_in"],
[("ménage_in", embed_menage
x.EligibiliteAidePersonnaliseeLogementIn.menage_in);
("demandeur_in", embed_demandeur
x.EligibiliteAidePersonnaliseeLogementIn.demandeur_in);
("date_courante_in", embed_date
x.EligibiliteAidePersonnaliseeLogementIn.date_courante_in)])
module EligibiliteAllocationLogementIn = struct
type t = {
date_courante_in: date;
menage_in: Menage.t;
demandeur_in: Demandeur.t;
beneficie_aide_personnalisee_logement_in: bool
}
end
let embed_eligibilite_allocation_logement_in (x: EligibiliteAllocationLogementIn.t) : runtime_value =
Struct(["ÉligibilitéAllocationLogement_in"],
[("date_courante_in", embed_date
x.EligibiliteAllocationLogementIn.date_courante_in);
("ménage_in", embed_menage
x.EligibiliteAllocationLogementIn.menage_in);
("demandeur_in", embed_demandeur
x.EligibiliteAllocationLogementIn.demandeur_in);
("bénéficie_aide_personnalisée_logement_in", embed_bool
x.EligibiliteAllocationLogementIn.beneficie_aide_personnalisee_logement_in)])
module EligibilitePrimeDeDemenagementIn = struct
type t = {
informations_in: InformationsPrimeDeDemenagement.t;
date_emmenagement_in: date;
menage_in: Menage.t;
demandeur_in: Demandeur.t;
date_courante_in: date;
depenses_justifiees_reellement_engagees_in: money
}
end
let embed_eligibilite_prime_de_demenagement_in (x: EligibilitePrimeDeDemenagementIn.t) : runtime_value =
Struct(["ÉligibilitéPrimeDeDéménagement_in"],
[("informations_in", embed_informations_prime_de_demenagement
x.EligibilitePrimeDeDemenagementIn.informations_in);
("date_emménagement_in", embed_date
x.EligibilitePrimeDeDemenagementIn.date_emmenagement_in);
("ménage_in", embed_menage
x.EligibilitePrimeDeDemenagementIn.menage_in);
("demandeur_in", embed_demandeur
x.EligibilitePrimeDeDemenagementIn.demandeur_in);
("date_courante_in", embed_date
x.EligibilitePrimeDeDemenagementIn.date_courante_in);
("dépenses_justifiées_réellement_engagées_in", embed_money
x.EligibilitePrimeDeDemenagementIn.depenses_justifiees_reellement_engagees_in)])
module ContributionsSocialesAidesPersonnelleLogementIn = struct
type t = {date_courante_in: date}
end
let embed_contributions_sociales_aides_personnelle_logement_in (x: ContributionsSocialesAidesPersonnelleLogementIn.t) : runtime_value =
Struct(["ContributionsSocialesAidesPersonnelleLogement_in"],
[("date_courante_in", embed_date
x.ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in)])
module CalculAidePersonnaliseeLogementLocatifIn = struct
type t = {
loyer_principal_base_in: money;
ressources_menage_arrondies_in: money;
beneficiaire_aide_adulte_ou_enfant_handicapes_in: bool;
date_courante_in: date;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
zone_in: ZoneDHabitation.t;
logement_est_chambre_in: bool;
agees_ou_handicap_adultes_hebergees_onereux_particuliers_in: bool;
type_aide_in: TypeAidesPersonnelleLogement.t;
colocation_in: bool;
reduction_loyer_solidarite_in: money;
logement_meuble_d842_2_in: bool;
residence_in: Collectivite.t
}
end
let embed_calcul_aide_personnalisee_logement_locatif_in (x: CalculAidePersonnaliseeLogementLocatifIn.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementLocatif_in"],
[("loyer_principal_base_in", embed_money
x.CalculAidePersonnaliseeLogementLocatifIn.loyer_principal_base_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculAidePersonnaliseeLogementLocatifIn.ressources_menage_arrondies_in);
("bénéficiaire_aide_adulte_ou_enfant_handicapés_in", embed_bool
x.CalculAidePersonnaliseeLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in);
("date_courante_in", embed_date
x.CalculAidePersonnaliseeLogementLocatifIn.date_courante_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAidePersonnaliseeLogementLocatifIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAidePersonnaliseeLogementLocatifIn.situation_familiale_calcul_apl_in);
("zone_in", embed_zone_d_habitation
x.CalculAidePersonnaliseeLogementLocatifIn.zone_in);
("logement_est_chambre_in", embed_bool
x.CalculAidePersonnaliseeLogementLocatifIn.logement_est_chambre_in);
("âgées_ou_handicap_adultes_hébergées_onéreux_particuliers_in",
embed_bool
x.CalculAidePersonnaliseeLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in);
("type_aide_in", embed_type_aides_personnelle_logement
x.CalculAidePersonnaliseeLogementLocatifIn.type_aide_in);
("colocation_in", embed_bool
x.CalculAidePersonnaliseeLogementLocatifIn.colocation_in);
("réduction_loyer_solidarité_in", embed_money
x.CalculAidePersonnaliseeLogementLocatifIn.reduction_loyer_solidarite_in);
("logement_meublé_d842_2_in", embed_bool
x.CalculAidePersonnaliseeLogementLocatifIn.logement_meuble_d842_2_in);
("résidence_in", embed_collectivite
x.CalculAidePersonnaliseeLogementLocatifIn.residence_in)])
module CalculEquivalenceLoyerMinimaleIn = struct
type t = {
date_courante_in: date;
ressources_menage_arrondies_in: money;
condition_2_du_832_25_in: bool;
n_nombre_parts_d832_25_in: decimal
}
end
let embed_calcul_equivalence_loyer_minimale_in (x: CalculEquivalenceLoyerMinimaleIn.t) : runtime_value =
Struct(["CalculÉquivalenceLoyerMinimale_in"],
[("date_courante_in", embed_date
x.CalculEquivalenceLoyerMinimaleIn.date_courante_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in);
("condition_2_du_832_25_in", embed_bool
x.CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in);
("n_nombre_parts_d832_25_in", embed_decimal
x.CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in)])
module CalculNombrePartLogementFoyerIn = struct
type t = {
condition_2_du_832_25_in: bool;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
limitation_majoration_personnes_a_charge_in: unit -> bool
}
end
let embed_calcul_nombre_part_logement_foyer_in (x: CalculNombrePartLogementFoyerIn.t) : runtime_value =
Struct(["CalculNombrePartLogementFoyer_in"],
[("condition_2_du_832_25_in", embed_bool
x.CalculNombrePartLogementFoyerIn.condition_2_du_832_25_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculNombrePartLogementFoyerIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculNombrePartLogementFoyerIn.situation_familiale_calcul_apl_in);
("limitation_majoration_personnes_à_charge_in", unembeddable
x.CalculNombrePartLogementFoyerIn.limitation_majoration_personnes_a_charge_in)])
module CalculAidePersonnaliseeLogementFoyerIn = struct
type t = {
type_logement_foyer_in: TypeLogementFoyer.t;
date_conventionnement_in: date;
ressources_menage_arrondies_in: money;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
zone_in: ZoneDHabitation.t;
date_courante_in: date;
redevance_in: money;
condition_2_du_832_25_in: unit -> bool;
limitation_majoration_personnes_a_charge_in: unit -> bool;
n_nombre_parts_d832_25_in: unit -> decimal
}
end
let embed_calcul_aide_personnalisee_logement_foyer_in (x: CalculAidePersonnaliseeLogementFoyerIn.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementFoyer_in"],
[("type_logement_foyer_in", embed_type_logement_foyer
x.CalculAidePersonnaliseeLogementFoyerIn.type_logement_foyer_in);
("date_conventionnement_in", embed_date
x.CalculAidePersonnaliseeLogementFoyerIn.date_conventionnement_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculAidePersonnaliseeLogementFoyerIn.ressources_menage_arrondies_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAidePersonnaliseeLogementFoyerIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAidePersonnaliseeLogementFoyerIn.situation_familiale_calcul_apl_in);
("zone_in", embed_zone_d_habitation
x.CalculAidePersonnaliseeLogementFoyerIn.zone_in);
("date_courante_in", embed_date
x.CalculAidePersonnaliseeLogementFoyerIn.date_courante_in);
("redevance_in", embed_money
x.CalculAidePersonnaliseeLogementFoyerIn.redevance_in);
("condition_2_du_832_25_in", unembeddable
x.CalculAidePersonnaliseeLogementFoyerIn.condition_2_du_832_25_in);
("limitation_majoration_personnes_à_charge_in", unembeddable
x.CalculAidePersonnaliseeLogementFoyerIn.limitation_majoration_personnes_a_charge_in);
("n_nombre_parts_d832_25_in", unembeddable
x.CalculAidePersonnaliseeLogementFoyerIn.n_nombre_parts_d832_25_in)])
module CalculNombrePartsAccessionProprieteIn = struct
type t = {
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t
}
end
let embed_calcul_nombre_parts_accession_propriete_in (x: CalculNombrePartsAccessionProprieteIn.t) : runtime_value =
Struct(["CalculNombrePartsAccessionPropriété_in"],
[("nombre_personnes_à_charge_in", embed_integer
x.CalculNombrePartsAccessionProprieteIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculNombrePartsAccessionProprieteIn.situation_familiale_calcul_apl_in)])
module CalculAidePersonnaliseeLogementAccessionProprieteIn = struct
type t = {
mensualite_principale_in: money;
ressources_menage_arrondies_in: money;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
type_travaux_logement_in: TypeTravauxLogementD83215.t;
date_signature_pret_in: date;
local_habite_premiere_fois_beneficiaire_in: bool;
date_entree_logement_in: date;
copropriete_in: bool;
situation_r822_11_13_17_in: bool;
zone_in: ZoneDHabitation.t;
type_pret_in: TypePret.t;
anciennete_logement_in: NeufOuAncien.t;
date_courante_in: date
}
end
let embed_calcul_aide_personnalisee_logement_accession_propriete_in (x: CalculAidePersonnaliseeLogementAccessionProprieteIn.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogementAccessionPropriété_in"],
[("mensualité_principale_in", embed_money
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.mensualite_principale_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.ressources_menage_arrondies_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_familiale_calcul_apl_in);
("type_travaux_logement_in", embed_type_travaux_logement_d832_15
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.type_travaux_logement_in);
("date_signature_prêt_in", embed_date
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_signature_pret_in);
("local_habité_première_fois_bénéficiaire_in", embed_bool
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in);
("date_entrée_logement_in", embed_date
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_entree_logement_in);
("copropriété_in", embed_bool
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.copropriete_in);
("situation_r822_11_13_17_in", embed_bool
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_r822_11_13_17_in);
("zone_in", embed_zone_d_habitation
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.zone_in);
("type_prêt_in", embed_type_pret
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.type_pret_in);
("ancienneté_logement_in", embed_neuf_ou_ancien
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.anciennete_logement_in);
("date_courante_in", embed_date
x.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_courante_in)])
module CalculAidePersonnaliseeLogementIn = struct
type t = {
mode_occupation_in: ModeOccupation.t;
type_aide_in: TypeAidesPersonnelleLogement.t;
ressources_menage_sans_arrondi_in: money;
situation_familiale_in: SituationFamiliale.t;
nombre_personnes_a_charge_in: integer;
zone_in: ZoneDHabitation.t;
date_courante_in: date;
residence_in: Collectivite.t
}
end
let embed_calcul_aide_personnalisee_logement_in (x: CalculAidePersonnaliseeLogementIn.t) : runtime_value =
Struct(["CalculAidePersonnaliséeLogement_in"],
[("mode_occupation_in", embed_mode_occupation
x.CalculAidePersonnaliseeLogementIn.mode_occupation_in);
("type_aide_in", embed_type_aides_personnelle_logement
x.CalculAidePersonnaliseeLogementIn.type_aide_in);
("ressources_ménage_sans_arrondi_in", embed_money
x.CalculAidePersonnaliseeLogementIn.ressources_menage_sans_arrondi_in);
("situation_familiale_in", embed_situation_familiale
x.CalculAidePersonnaliseeLogementIn.situation_familiale_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAidePersonnaliseeLogementIn.nombre_personnes_a_charge_in);
("zone_in", embed_zone_d_habitation
x.CalculAidePersonnaliseeLogementIn.zone_in);
("date_courante_in", embed_date
x.CalculAidePersonnaliseeLogementIn.date_courante_in);
("résidence_in", embed_collectivite
x.CalculAidePersonnaliseeLogementIn.residence_in)])
module CalculAllocationLogementLocatifIn = struct
type t = {
loyer_principal_in: money;
ressources_menage_arrondies_in: money;
beneficiaire_aide_adulte_ou_enfant_handicapes_in: bool;
date_courante_in: date;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
zone_in: ZoneDHabitation.t;
logement_est_chambre_in: bool;
agees_ou_handicap_adultes_hebergees_onereux_particuliers_in: bool;
type_aide_in: TypeAidesPersonnelleLogement.t;
colocation_in: bool;
reduction_loyer_solidarite_in: money;
logement_meuble_d842_2_in: bool;
residence_in: Collectivite.t;
changement_logement_d842_4_in: ChangementLogementD8424.t
}
end
let embed_calcul_allocation_logement_locatif_in (x: CalculAllocationLogementLocatifIn.t) : runtime_value =
Struct(["CalculAllocationLogementLocatif_in"],
[("loyer_principal_in", embed_money
x.CalculAllocationLogementLocatifIn.loyer_principal_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculAllocationLogementLocatifIn.ressources_menage_arrondies_in);
("bénéficiaire_aide_adulte_ou_enfant_handicapés_in", embed_bool
x.CalculAllocationLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in);
("date_courante_in", embed_date
x.CalculAllocationLogementLocatifIn.date_courante_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAllocationLogementLocatifIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAllocationLogementLocatifIn.situation_familiale_calcul_apl_in);
("zone_in", embed_zone_d_habitation
x.CalculAllocationLogementLocatifIn.zone_in);
("logement_est_chambre_in", embed_bool
x.CalculAllocationLogementLocatifIn.logement_est_chambre_in);
("âgées_ou_handicap_adultes_hébergées_onéreux_particuliers_in",
embed_bool
x.CalculAllocationLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in);
("type_aide_in", embed_type_aides_personnelle_logement
x.CalculAllocationLogementLocatifIn.type_aide_in);
("colocation_in", embed_bool
x.CalculAllocationLogementLocatifIn.colocation_in);
("réduction_loyer_solidarité_in", embed_money
x.CalculAllocationLogementLocatifIn.reduction_loyer_solidarite_in);
("logement_meublé_d842_2_in", embed_bool
x.CalculAllocationLogementLocatifIn.logement_meuble_d842_2_in);
("résidence_in", embed_collectivite
x.CalculAllocationLogementLocatifIn.residence_in);
("changement_logement_d842_4_in", embed_changement_logement_d842_4
x.CalculAllocationLogementLocatifIn.changement_logement_d842_4_in)])
module CalculAllocationLogementAccessionProprieteIn = struct
type t = {
ressources_menage_arrondies_base_in: money;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
zone_in: ZoneDHabitation.t;
residence_in: Collectivite.t;
date_courante_in: date;
mensualite_principale_in: money;
situation_r822_11_13_17_in: bool;
date_signature_pret_in: date;
type_travaux_logement_in: TypeTravauxLogementR8425.t;
local_habite_premiere_fois_beneficiaire_in: bool;
date_entree_logement_in: date;
charges_mensuelles_pret_in: money;
copropriete_in: bool;
operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in:
bool
}
end
let embed_calcul_allocation_logement_accession_propriete_in (x: CalculAllocationLogementAccessionProprieteIn.t) : runtime_value =
Struct(["CalculAllocationLogementAccessionPropriété_in"],
[("ressources_ménage_arrondies_base_in", embed_money
x.CalculAllocationLogementAccessionProprieteIn.ressources_menage_arrondies_base_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAllocationLogementAccessionProprieteIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAllocationLogementAccessionProprieteIn.situation_familiale_calcul_apl_in);
("zone_in", embed_zone_d_habitation
x.CalculAllocationLogementAccessionProprieteIn.zone_in);
("résidence_in", embed_collectivite
x.CalculAllocationLogementAccessionProprieteIn.residence_in);
("date_courante_in", embed_date
x.CalculAllocationLogementAccessionProprieteIn.date_courante_in);
("mensualité_principale_in", embed_money
x.CalculAllocationLogementAccessionProprieteIn.mensualite_principale_in);
("situation_r822_11_13_17_in", embed_bool
x.CalculAllocationLogementAccessionProprieteIn.situation_r822_11_13_17_in);
("date_signature_prêt_in", embed_date
x.CalculAllocationLogementAccessionProprieteIn.date_signature_pret_in);
("type_travaux_logement_in", embed_type_travaux_logement_r842_5
x.CalculAllocationLogementAccessionProprieteIn.type_travaux_logement_in);
("local_habité_première_fois_bénéficiaire_in", embed_bool
x.CalculAllocationLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in);
("date_entrée_logement_in", embed_date
x.CalculAllocationLogementAccessionProprieteIn.date_entree_logement_in);
("charges_mensuelles_prêt_in", embed_money
x.CalculAllocationLogementAccessionProprieteIn.charges_mensuelles_pret_in);
("copropriété_in", embed_bool
x.CalculAllocationLogementAccessionProprieteIn.copropriete_in);
("opérations_logement_évolutifs_sociaux_accession_propriété_aidée_État_in",
embed_bool
x.CalculAllocationLogementAccessionProprieteIn.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in)])
module CalculAllocationLogementFoyerIn = struct
type t = {
type_logement_foyer_in: TypeLogementFoyer.t;
date_conventionnement_in: date;
residence_in: Collectivite.t;
redevance_in: money;
ressources_menage_arrondies_in: money;
nombre_personnes_a_charge_in: integer;
situation_familiale_calcul_apl_in: SituationFamilialeCalculAPL.t;
zone_in: ZoneDHabitation.t;
date_courante_in: date;
categorie_equivalence_loyer_d842_16_in:
CategorieEquivalenceLoyerAllocationLogementFoyer.t
}
end
let embed_calcul_allocation_logement_foyer_in (x: CalculAllocationLogementFoyerIn.t) : runtime_value =
Struct(["CalculAllocationLogementFoyer_in"],
[("type_logement_foyer_in", embed_type_logement_foyer
x.CalculAllocationLogementFoyerIn.type_logement_foyer_in);
("date_conventionnement_in", embed_date
x.CalculAllocationLogementFoyerIn.date_conventionnement_in);
("résidence_in", embed_collectivite
x.CalculAllocationLogementFoyerIn.residence_in);
("redevance_in", embed_money
x.CalculAllocationLogementFoyerIn.redevance_in);
("ressources_ménage_arrondies_in", embed_money
x.CalculAllocationLogementFoyerIn.ressources_menage_arrondies_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAllocationLogementFoyerIn.nombre_personnes_a_charge_in);
("situation_familiale_calcul_apl_in",
embed_situation_familiale_calcul_a_p_l
x.CalculAllocationLogementFoyerIn.situation_familiale_calcul_apl_in);
("zone_in", embed_zone_d_habitation
x.CalculAllocationLogementFoyerIn.zone_in);
("date_courante_in", embed_date
x.CalculAllocationLogementFoyerIn.date_courante_in);
("catégorie_équivalence_loyer_d842_16_in",
embed_categorie_equivalence_loyer_allocation_logement_foyer
x.CalculAllocationLogementFoyerIn.categorie_equivalence_loyer_d842_16_in)])
module CalculAllocationLogementIn = struct
type t = {
mode_occupation_in: ModeOccupation.t;
ressources_menage_sans_arrondi_in: money;
situation_familiale_in: SituationFamiliale.t;
nombre_personnes_a_charge_in: integer;
zone_in: ZoneDHabitation.t;
date_courante_in: date;
type_aide_in: TypeAidesPersonnelleLogement.t;
residence_in: Collectivite.t
}
end
let embed_calcul_allocation_logement_in (x: CalculAllocationLogementIn.t) : runtime_value =
Struct(["CalculAllocationLogement_in"],
[("mode_occupation_in", embed_mode_occupation
x.CalculAllocationLogementIn.mode_occupation_in);
("ressources_ménage_sans_arrondi_in", embed_money
x.CalculAllocationLogementIn.ressources_menage_sans_arrondi_in);
("situation_familiale_in", embed_situation_familiale
x.CalculAllocationLogementIn.situation_familiale_in);
("nombre_personnes_à_charge_in", embed_integer
x.CalculAllocationLogementIn.nombre_personnes_a_charge_in);
("zone_in", embed_zone_d_habitation
x.CalculAllocationLogementIn.zone_in);
("date_courante_in", embed_date
x.CalculAllocationLogementIn.date_courante_in);
("type_aide_in", embed_type_aides_personnelle_logement
x.CalculAllocationLogementIn.type_aide_in);
("résidence_in", embed_collectivite
x.CalculAllocationLogementIn.residence_in)])
module OuvertureDroitsRetraiteIn = struct
type t = {date_naissance_assure_in: date}
end
let embed_ouverture_droits_retraite_in (x: OuvertureDroitsRetraiteIn.t) : runtime_value =
Struct(["OuvertureDroitsRetraite_in"],
[("date_naissance_assuré_in", embed_date
x.OuvertureDroitsRetraiteIn.date_naissance_assure_in)])
module ImpayeDepenseLogementIn = struct
type t = {
mode_occupation_in: ModeOccupation.t;
aide_versee_in: VersementA.t;
montant_apl_in: money;
montant_charges_in: money;
depense_logement_in: DepenseLogement.t;
montant_dette_in: money
}
end
let embed_impaye_depense_logement_in (x: ImpayeDepenseLogementIn.t) : runtime_value =
Struct(["ImpayéDépenseLogement_in"],
[("mode_occupation_in", embed_mode_occupation
x.ImpayeDepenseLogementIn.mode_occupation_in);
("aide_versée_in", embed_versement_a
x.ImpayeDepenseLogementIn.aide_versee_in);
("montant_apl_in", embed_money
x.ImpayeDepenseLogementIn.montant_apl_in);
("montant_charges_in", embed_money
x.ImpayeDepenseLogementIn.montant_charges_in);
("dépense_logement_in", embed_depense_logement
x.ImpayeDepenseLogementIn.depense_logement_in);
("montant_dette_in", embed_money
x.ImpayeDepenseLogementIn.montant_dette_in)])
module CalculetteAidesAuLogementIn = struct
type t = {
menage_in: Menage.t;
demandeur_in: Demandeur.t;
date_courante_in: date;
ressources_menage_prises_en_compte_in: money
}
end
let embed_calculette_aides_au_logement_in (x: CalculetteAidesAuLogementIn.t) : runtime_value =
Struct(["CalculetteAidesAuLogement_in"],
[("ménage_in", embed_menage
x.CalculetteAidesAuLogementIn.menage_in);
("demandeur_in", embed_demandeur
x.CalculetteAidesAuLogementIn.demandeur_in);
("date_courante_in", embed_date
x.CalculetteAidesAuLogementIn.date_courante_in);
("ressources_ménage_prises_en_compte_in", embed_money
x.CalculetteAidesAuLogementIn.ressources_menage_prises_en_compte_in)])
module CalculetteAidesAuLogementGardeAlterneeIn = struct
type t = {
menage_in: Menage.t;
demandeur_in: Demandeur.t;
date_courante_in: date;
ressources_menage_prises_en_compte_in: money
}
end
let embed_calculette_aides_au_logement_garde_alternee_in (x: CalculetteAidesAuLogementGardeAlterneeIn.t) : runtime_value =
Struct(["CalculetteAidesAuLogementGardeAlternée_in"],
[("ménage_in", embed_menage
x.CalculetteAidesAuLogementGardeAlterneeIn.menage_in);
("demandeur_in", embed_demandeur
x.CalculetteAidesAuLogementGardeAlterneeIn.demandeur_in);
("date_courante_in", embed_date
x.CalculetteAidesAuLogementGardeAlterneeIn.date_courante_in);
("ressources_ménage_prises_en_compte_in", embed_money
x.CalculetteAidesAuLogementGardeAlterneeIn.ressources_menage_prises_en_compte_in)])
module BaseMensuelleAllocationsFamilialesIn = struct
type t = {date_courante_in: date}
end
let embed_base_mensuelle_allocations_familiales_in (x: BaseMensuelleAllocationsFamilialesIn.t) : runtime_value =
Struct(["BaseMensuelleAllocationsFamiliales_in"],
[("date_courante_in", embed_date
x.BaseMensuelleAllocationsFamilialesIn.date_courante_in)])
module VerificationAgeInferieurOuEgalAIn = struct
type t = {
date_naissance_in: date;
date_courante_in: date;
annees_in: duration
}
end
let embed_verification_age_inferieur_ou_egal_a_in (x: VerificationAgeInferieurOuEgalAIn.t) : runtime_value =
Struct(["VérificationÂgeInférieurOuÉgalÀ_in"],
[("date_naissance_in", embed_date
x.VerificationAgeInferieurOuEgalAIn.date_naissance_in);
("date_courante_in", embed_date
x.VerificationAgeInferieurOuEgalAIn.date_courante_in);
("années_in", embed_duration
x.VerificationAgeInferieurOuEgalAIn.annees_in)])
module VerificationAgeSuperieurAIn = struct
type t = {
date_naissance_in: date;
date_courante_in: date;
annees_in: duration
}
end
let embed_verification_age_superieur_a_in (x: VerificationAgeSuperieurAIn.t) : runtime_value =
Struct(["VérificationÂgeSupérieurÀ_in"],
[("date_naissance_in", embed_date
x.VerificationAgeSuperieurAIn.date_naissance_in);
("date_courante_in", embed_date
x.VerificationAgeSuperieurAIn.date_courante_in);
("années_in", embed_duration x.VerificationAgeSuperieurAIn.annees_in)])
module SmicIn = struct
type t = {date_courante_in: date; residence_in: Collectivite.t}
end
let embed_smic_in (x: SmicIn.t) : runtime_value = Struct(["Smic_in"],
[("date_courante_in", embed_date
x.SmicIn.date_courante_in);
("résidence_in", embed_collectivite x.SmicIn.residence_in)])
module EligibilitePrestationsFamilialesIn = struct
type t = {
date_courante_in: date;
residence_in: Collectivite.t;
age_l512_3_2_in: unit -> duration
}
end
let embed_eligibilite_prestations_familiales_in (x: EligibilitePrestationsFamilialesIn.t) : runtime_value =
Struct(["ÉligibilitéPrestationsFamiliales_in"],
[("date_courante_in", embed_date
x.EligibilitePrestationsFamilialesIn.date_courante_in);
("résidence_in", embed_collectivite
x.EligibilitePrestationsFamilialesIn.residence_in);
("âge_l512_3_2_in", unembeddable
x.EligibilitePrestationsFamilialesIn.age_l512_3_2_in)])
let contributions_sociales_aides_personnelle_logement (contributions_sociales_aides_personnelle_logement_in: ContributionsSocialesAidesPersonnelleLogementIn.t) : ContributionsSocialesAidesPersonnelleLogement.t =
let date_courante_: date = contributions_sociales_aides_personnelle_logement_in.ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in in
let exonere_csg_: bool = (log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement"; "exonéré_csg"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=37; start_column=9;
end_line=37; end_column=20;
law_headings=["Article L136-1-3";
"Section 1 : De la contribution sociale sur les revenus d'activité et sur les revenus de remplacement";
"Chapitre 6 : Contribution sociale généralisée";
"Titre III: Titre III : Dispositions communes relatives au financement";
"Partie législative";
"Code de la sécurité sociale"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=490; start_column=11;
end_line=490; end_column=22;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=490; start_column=11; end_line=490; end_column=22;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_crds_: decimal = (log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement"; "taux_crds"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=190; start_column=39;
end_line=190; end_column=68;
law_headings=["Article 19";
"Chapitre II : Des contributions pour le remboursement de la dette sociale.";
"Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))))
(fun (_: unit) -> decimal_of_string "0.005"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=489; start_column=11; end_line=489; end_column=20;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_: money -> money = (log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement"; "montant"]
(unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=152; start_column=5;
end_line=152; end_column=34;
law_headings=["Article 14";
"Chapitre II : Des contributions pour le remboursement de la dette sociale.";
"Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (9) (1)))))
(fun (_: unit) ->
o_mult_mon_rat aide_finale_ taux_crds_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=492; start_column=12; end_line=492; end_column=19;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let _: unit = if (try exonere_csg_ with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=156; start_column=13;
end_line=156; end_column=24;
law_headings=["Article 14";
"Chapitre II : Des contributions pour le remboursement de la dette sociale.";
"Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=156; start_column=13;
end_line=156; end_column=24;
law_headings=["Article 14";
"Chapitre II : Des contributions pour le remboursement de la dette sociale.";
"Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]}) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=497; start_column=13;
end_line=497; end_column=42;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=497; start_column=13;
end_line=497; end_column=42;
law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
{ContributionsSocialesAidesPersonnelleLogement.montant = montant_}
let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: CalculEquivalenceLoyerMinimaleIn.t) : CalculEquivalenceLoyerMinimale.t =
let date_courante_: date = calcul_equivalence_loyer_minimale_in.CalculEquivalenceLoyerMinimaleIn.date_courante_in in
let ressources_menage_arrondies_: money = calcul_equivalence_loyer_minimale_in.CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in in
let condition_2_du_832_25_: bool = calcul_equivalence_loyer_minimale_in.CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in in
let n_nombre_parts_d832_25_: decimal = calcul_equivalence_loyer_minimale_in.CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in in
let montant_forfaitaire_d832_26_: money = (log_variable_definition
["CalculÉquivalenceLoyerMinimale"; "montant_forfaitaire_d832_26"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2723; start_column=14;
end_line=2723; end_column=41;
law_headings=["Article 31";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gt_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
if condition_2_du_832_25_ then
(money_of_cents_string "7632") else
(money_of_cents_string "4557")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=589; start_column=11; end_line=589; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let tranches_revenus_d832_26_: TrancheRevenu.t array = (log_variable_definition
["CalculÉquivalenceLoyerMinimale"; "tranches_revenus_d832_26"]
(embed_array (embed_tranche_revenu)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2687; start_column=5;
end_line=2687; end_column=26;
law_headings=["Article 31";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gt_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
condition_2_du_832_25_)))
(fun (_: unit) ->
[|({TrancheRevenu.haut =
(LimiteTranche.Revenu
(money_of_cents_string "142303"));
TrancheRevenu.bas =
(money_of_cents_string "0");
TrancheRevenu.taux =
(decimal_of_string "0.")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu
(money_of_cents_string "204761"));
TrancheRevenu.bas =
(money_of_cents_string "142303");
TrancheRevenu.taux =
(decimal_of_string "0.024")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu
(money_of_cents_string "262985"));
TrancheRevenu.bas =
(money_of_cents_string "204761");
TrancheRevenu.taux =
(decimal_of_string "0.208")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu
(money_of_cents_string "409505"));
TrancheRevenu.bas =
(money_of_cents_string "262985");
TrancheRevenu.taux =
(decimal_of_string "0.232")});
({TrancheRevenu.haut =
(LimiteTranche.Infini ());
TrancheRevenu.bas =
(money_of_cents_string "409505");
TrancheRevenu.taux =
(decimal_of_string "0.328")})|]))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2637; start_column=14;
end_line=2637; end_column=38;
law_headings=["Article 31";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gt_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
[|({TrancheRevenu.haut =
(LimiteTranche.Revenu (money_of_cents_string
"194810"));
TrancheRevenu.bas = (money_of_cents_string
"0");
TrancheRevenu.taux =
(decimal_of_string "0.04")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu (money_of_cents_string
"267871"));
TrancheRevenu.bas = (money_of_cents_string
"194810");
TrancheRevenu.taux =
(decimal_of_string "0.104")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu (money_of_cents_string
"389618"));
TrancheRevenu.bas = (money_of_cents_string
"267871");
TrancheRevenu.taux =
(decimal_of_string "0.216")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu (money_of_cents_string
"535744"));
TrancheRevenu.bas = (money_of_cents_string
"389618");
TrancheRevenu.taux =
(decimal_of_string "0.264")});
({TrancheRevenu.haut =
(LimiteTranche.Revenu (money_of_cents_string
"633129"));
TrancheRevenu.bas = (money_of_cents_string
"535744");
TrancheRevenu.taux =
(decimal_of_string "0.32")});
({TrancheRevenu.haut = (LimiteTranche.Infini ());
TrancheRevenu.bas = (money_of_cents_string
"633129");
TrancheRevenu.taux =
(decimal_of_string "0.48")})|]))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=586; start_column=11; end_line=586; end_column=35;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let tranches_revenus_d832_26_multipliees_: TrancheRevenuDecimal.t array = (log_variable_definition
["CalculÉquivalenceLoyerMinimale";
"tranches_revenus_d832_26_multipliées"]
(embed_array (embed_tranche_revenu_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4020; start_column=14;
end_line=4020; end_column=50;
law_headings=["Article D832-26";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_map
(fun (tranche_: TrancheRevenu.t) ->
{TrancheRevenuDecimal.haut =
(match (tranche_.TrancheRevenu.haut)
with
| LimiteTranche.Revenu tranche_haut_ ->
(LimiteTrancheDecimal.Revenu
(o_mult_rat_rat
(o_torat_mon tranche_haut_)
n_nombre_parts_d832_25_))
| LimiteTranche.Infini _ ->
(LimiteTrancheDecimal.Infini ()));
TrancheRevenuDecimal.bas =
(o_mult_rat_rat
(o_torat_mon
(tranche_.TrancheRevenu.bas))
n_nombre_parts_d832_25_);
TrancheRevenuDecimal.taux =
(tranche_.TrancheRevenu.taux)})
tranches_revenus_d832_26_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=587; start_column=11; end_line=587; end_column=47;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_: money = (log_variable_definition
["CalculÉquivalenceLoyerMinimale"; "montant"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4071; start_column=5;
end_line=4071; end_column=26;
law_headings=["Article D832-26";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
(let ressources_menage_arrondies_ : decimal
=
(o_torat_mon ressources_menage_arrondies_)
in
(o_tomoney_rat
(o_div_rat_rat
(o_add_rat_rat
(o_reduce
(fun (sum1_: decimal)
(sum2_: decimal) ->
o_add_rat_rat sum1_ sum2_)
(decimal_of_string "0.")
(o_map
(fun
(tranche_:
TrancheRevenuDecimal.t) ->
if
(o_lte_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
then
(decimal_of_string "0.")
else
(match
(tranche_.TrancheRevenuDecimal.haut)
with
| LimiteTrancheDecimal.Revenu tranche_haut_ ->
( if
(o_gte_rat_rat
ressources_menage_arrondies_
tranche_haut_)
then
(o_mult_rat_rat
(o_sub_rat_rat
tranche_haut_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux))
else
(o_mult_rat_rat
(o_sub_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux)))
| LimiteTrancheDecimal.Infini _ ->
(o_mult_rat_rat
(o_sub_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux))))
tranches_revenus_d832_26_multipliees_))
(o_torat_mon
montant_forfaitaire_d832_26_))
(decimal_of_string "12."))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4033; start_column=14;
end_line=4033; end_column=21;
law_headings=["Article D832-26";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let ressources_menage_arrondies_ : decimal =
(o_torat_mon ressources_menage_arrondies_)
in
(o_tomoney_rat
(o_div_rat_rat
(o_add_rat_rat
(o_reduce
(fun (sum1_: decimal)
(sum2_: decimal) ->
o_add_rat_rat sum1_ sum2_)
(decimal_of_string "0.")
(o_map
(fun
(tranche_: TrancheRevenuDecimal.t) ->
if
(o_lte_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
then (decimal_of_string "0.")
else
(match
(tranche_.TrancheRevenuDecimal.haut)
with
| LimiteTrancheDecimal.Revenu tranche_haut_ ->
( if
(o_gte_rat_rat
ressources_menage_arrondies_
tranche_haut_) then
(o_mult_rat_rat
(o_sub_rat_rat
tranche_haut_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux))
else
(o_mult_rat_rat
(o_sub_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux)))
| LimiteTrancheDecimal.Infini _ ->
(o_mult_rat_rat
(o_sub_rat_rat
ressources_menage_arrondies_
(tranche_.TrancheRevenuDecimal.bas))
(tranche_.TrancheRevenuDecimal.taux))))
tranches_revenus_d832_26_multipliees_))
(o_mult_rat_rat
(o_torat_mon
montant_forfaitaire_d832_26_)
n_nombre_parts_d832_25_))
(decimal_of_string "12."))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=591; start_column=12; end_line=591; end_column=19;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{CalculEquivalenceLoyerMinimale.montant = montant_}
let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: CalculNombrePartLogementFoyerIn.t) : CalculNombrePartLogementFoyer.t =
let condition_2_du_832_25_: bool = calcul_nombre_part_logement_foyer_in.CalculNombrePartLogementFoyerIn.condition_2_du_832_25_in in
let nombre_personnes_a_charge_: integer = calcul_nombre_part_logement_foyer_in.CalculNombrePartLogementFoyerIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_nombre_part_logement_foyer_in.CalculNombrePartLogementFoyerIn.situation_familiale_calcul_apl_in in
let limitation_majoration_personnes_a_charge_: unit -> bool = calcul_nombre_part_logement_foyer_in.CalculNombrePartLogementFoyerIn.limitation_majoration_personnes_a_charge_in in
let limitation_majoration_personnes_a_charge_: bool = (log_variable_definition
["CalculNombrePartLogementFoyer";
"limitation_majoration_personnes_à_charge"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> limitation_majoration_personnes_a_charge_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=598; start_column=12;
end_line=598; end_column=52;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=598; start_column=12; end_line=598; end_column=52;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let n_nombre_parts_d832_25_base_: decimal = (log_variable_definition
["CalculNombrePartLogementFoyer"; "n_nombre_parts_d832_25_base"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3981; start_column=5;
end_line=3981; end_column=26;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "1.2")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "1.5")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "2.5") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "3.") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "3.7") else
(decimal_of_string "4.3"))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3888; start_column=14;
end_line=3888; end_column=41;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "1.4")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "1.8")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "2.5") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "3.") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "3.7") else
(decimal_of_string "4.3"))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=600; start_column=11; end_line=600; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let n_nombre_parts_d832_25_majoration_: decimal = (log_variable_definition
["CalculNombrePartLogementFoyer"; "n_nombre_parts_d832_25_majoration"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5529; start_column=5;
end_line=5530; end_column=34;
law_headings=["Article D861-8";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
limitation_majoration_personnes_a_charge_
(o_gt_int_int
nombre_personnes_a_charge_
(integer_of_string "6")))))
(fun (_: unit) ->
decimal_of_string "1."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3998; start_column=5;
end_line=3998; end_column=26;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
if
(o_gt_int_int nombre_personnes_a_charge_
(integer_of_string "4")) then
(o_mult_rat_rat (decimal_of_string "0.5")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))) else
(decimal_of_string "0.")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3903; start_column=14;
end_line=3903; end_column=47;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gt_int_int nombre_personnes_a_charge_
(integer_of_string "4")) then
(o_mult_rat_rat (decimal_of_string "0.5")
(o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "4")))) else
(decimal_of_string "0.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=601; start_column=11; end_line=601; end_column=44;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let n_nombre_parts_d832_25_: decimal = (log_variable_definition
["CalculNombrePartLogementFoyer"; "n_nombre_parts_d832_25"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3908; start_column=14;
end_line=3908; end_column=36;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_add_rat_rat n_nombre_parts_d832_25_base_
n_nombre_parts_d832_25_majoration_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=603; start_column=12; end_line=603; end_column=34;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{CalculNombrePartLogementFoyer.n_nombre_parts_d832_25 =
n_nombre_parts_d832_25_}
let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propriete_in: CalculNombrePartsAccessionProprieteIn.t) : CalculNombrePartsAccessionPropriete.t =
let nombre_personnes_a_charge_: integer = calcul_nombre_parts_accession_propriete_in.CalculNombrePartsAccessionProprieteIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_nombre_parts_accession_propriete_in.CalculNombrePartsAccessionProprieteIn.situation_familiale_calcul_apl_in in
let n_nombre_parts_d832_11_: decimal = (log_variable_definition
["CalculNombrePartsAccessionPropriété"; "n_nombre_parts_d832_11"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3232; start_column=14;
end_line=3232; end_column=36;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "1.4")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "1.8")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "2.5") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "3.") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "3.7") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(decimal_of_string "4.3") else
(o_add_rat_rat
(decimal_of_string "4.3")
(o_mult_rat_rat
(decimal_of_string "0.5")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=667; start_column=12; end_line=667; end_column=34;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{CalculNombrePartsAccessionPropriete.n_nombre_parts_d832_11 =
n_nombre_parts_d832_11_}
let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetraiteIn.t) : OuvertureDroitsRetraite.t =
let date_naissance_assure_: date = ouverture_droits_retraite_in.OuvertureDroitsRetraiteIn.date_naissance_assure_in in
let age_ouverture_droit_: duration = (log_variable_definition
["OuvertureDroitsRetraite"; "âge_ouverture_droit"] (embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=119; start_column=5;
end_line=119; end_column=42;
law_headings=["Article L161-17-2";
"Paragraphe 1 : Information et simplification des démarches des assurés.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Titre III: Titre III : Dispositions communes relatives au financement";
"Partie législative";
"Code de la sécurité sociale"]}
(o_gte_dat_dat date_naissance_assure_
(date_of_numbers (1955) (1) (1)))))
(fun (_: unit) -> duration_of_numbers (62) (0) (0)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=256; start_column=5;
end_line=256; end_column=41;
law_headings=["Article D161-2-1-9";
"Paragraphe 2 : Ouverture du droit et liquidation.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_lt_dat_dat date_naissance_assure_
(date_of_numbers (1951) (7) (1)))))
(fun (_: unit) -> duration_of_numbers (60) (0) (0)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=266; start_column=5;
end_line=267; end_column=42;
law_headings=["Article D161-2-1-9";
"Paragraphe 2 : Ouverture du droit et liquidation.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gte_dat_dat date_naissance_assure_
(date_of_numbers (1951) (7) (1)))
(o_lte_dat_dat date_naissance_assure_
(date_of_numbers (1951) (12) (31))))))
(fun (_: unit) ->
o_add_dur_dur (duration_of_numbers (60) (0) (0))
(duration_of_numbers (0) (4) (0))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=276; start_column=5;
end_line=276; end_column=48;
law_headings=["Article D161-2-1-9";
"Paragraphe 2 : Ouverture du droit et liquidation.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_eq (o_getYear date_naissance_assure_)
(integer_of_string "1952"))))
(fun (_: unit) ->
o_add_dur_dur (duration_of_numbers (60) (0) (0))
(duration_of_numbers (0) (9) (0))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=285; start_column=5;
end_line=285; end_column=48;
law_headings=["Article D161-2-1-9";
"Paragraphe 2 : Ouverture du droit et liquidation.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_eq (o_getYear date_naissance_assure_)
(integer_of_string "1953"))))
(fun (_: unit) ->
o_add_dur_dur (duration_of_numbers (61) (0) (0))
(duration_of_numbers (0) (2) (0))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=294; start_column=5;
end_line=294; end_column=48;
law_headings=["Article D161-2-1-9";
"Paragraphe 2 : Ouverture du droit et liquidation.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_eq (o_getYear date_naissance_assure_)
(integer_of_string "1954"))))
(fun (_: unit) ->
o_add_dur_dur (duration_of_numbers (61) (0) (0))
(duration_of_numbers (0) (7) (0))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1010; start_column=12; end_line=1010; end_column=31;
law_headings=["Date d'ouverture des droits à la retraite";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
{OuvertureDroitsRetraite.age_ouverture_droit = age_ouverture_droit_}
let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn.t) : ImpayeDepenseLogement.t =
let mode_occupation_: ModeOccupation.t = impaye_depense_logement_in.ImpayeDepenseLogementIn.mode_occupation_in in
let aide_versee_: VersementA.t = impaye_depense_logement_in.ImpayeDepenseLogementIn.aide_versee_in in
let montant_apl_: money = impaye_depense_logement_in.ImpayeDepenseLogementIn.montant_apl_in in
let montant_charges_: money = impaye_depense_logement_in.ImpayeDepenseLogementIn.montant_charges_in in
let depense_logement_: DepenseLogement.t = impaye_depense_logement_in.ImpayeDepenseLogementIn.depense_logement_in in
let montant_dette_: money = impaye_depense_logement_in.ImpayeDepenseLogementIn.montant_dette_in in
let mode_occupation_impaye_: ModeOccupationImpaye.t = (log_variable_definition
["ImpayéDépenseLogement"; "mode_occupation_impayé"]
(embed_mode_occupation_impaye) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2317; start_column=14;
end_line=2317; end_column=36;
law_headings=["Article R824-3";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match mode_occupation_
with
| ModeOccupation.Locataire _ ->
(ModeOccupationImpaye.ImpayeLoyer ())
| ModeOccupation.ResidentLogementFoyer _ ->
(ModeOccupationImpaye.ImpayePret ())
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
(ModeOccupationImpaye.ImpayePret ())
| ModeOccupation.SousLocataire _ ->
(ModeOccupationImpaye.ImpayeLoyer ())
| ModeOccupation.LocationAccession _ ->
(ModeOccupationImpaye.ImpayeLoyer ())))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1026; start_column=11; end_line=1026; end_column=33;
law_headings=["Quantification des impayés de dépense de logement";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let depense_logement_brute_: DepenseLogement.t = (log_variable_definition
["ImpayéDépenseLogement"; "dépense_logement_brute"]
(embed_depense_logement) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2285; start_column=14;
end_line=2285; end_column=36;
law_headings=["Article R824-2";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ ->
false
| ModeOccupationImpaye.ImpayePret _ -> true)))
(fun (_: unit) -> depense_logement_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2189; start_column=14;
end_line=2189; end_column=36;
law_headings=["Article R824-1";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> true
| ModeOccupationImpaye.ImpayePret _ -> false)))
(fun (_: unit) -> depense_logement_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1027; start_column=11; end_line=1027; end_column=33;
law_headings=["Quantification des impayés de dépense de logement";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let depense_logement_nette_: DepenseLogement.t = (log_variable_definition
["ImpayéDépenseLogement"; "dépense_logement_nette"]
(embed_depense_logement) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2198; start_column=14;
end_line=2198; end_column=36;
law_headings=["Article R824-1";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> true
| ModeOccupationImpaye.ImpayePret _ -> false)))
(fun (_: unit) ->
match depense_logement_brute_
with
| DepenseLogement.TotalAnnuelEcheances total_ ->
(DepenseLogement.TotalAnnuelEcheances total_)
| DepenseLogement.Mensualite mensualite_ ->
(DepenseLogement.Mensualite mensualite_)
| DepenseLogement.Loyer montant_loyer_ ->
(DepenseLogement.Loyer
(o_sub_mon_mon montant_loyer_ montant_apl_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2294; start_column=14;
end_line=2294; end_column=36;
law_headings=["Article R824-2";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> false
| ModeOccupationImpaye.ImpayePret _ -> true)))
(fun (_: unit) ->
match depense_logement_
with
| DepenseLogement.TotalAnnuelEcheances total_echeances_ ->
(DepenseLogement.TotalAnnuelEcheances
(o_sub_mon_mon total_echeances_
(o_mult_mon_rat montant_apl_
(decimal_of_string "12."))))
| DepenseLogement.Mensualite mensualite_ ->
(DepenseLogement.Mensualite
(o_sub_mon_mon mensualite_ montant_apl_))
| DepenseLogement.Loyer loyer_ ->
(DepenseLogement.Loyer loyer_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1028; start_column=11; end_line=1028; end_column=33;
law_headings=["Quantification des impayés de dépense de logement";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let seuil_impaye_depense_de_logement_: money = (log_variable_definition
["ImpayéDépenseLogement"; "seuil_impayé_dépense_de_logement"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2159; start_column=20;
end_line=2159; end_column=55;
law_headings=["Article R824-1";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> true
| ModeOccupationImpaye.ImpayePret _ -> false)
(match aide_versee_
with
| VersementA.Bailleur _ -> false
| VersementA.Beneficiaire _ -> true
| VersementA.EtablissementHabilite _ -> false))))
(fun (_: unit) ->
match depense_logement_brute_
with
| DepenseLogement.TotalAnnuelEcheances _ ->
(money_of_cents_string "0")
| DepenseLogement.Mensualite _ ->
(money_of_cents_string "0")
| DepenseLogement.Loyer loyer_brut_ ->
(o_mult_mon_rat
(o_add_mon_mon loyer_brut_ montant_charges_)
(decimal_of_string "2."))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2175; start_column=20;
end_line=2175; end_column=51;
law_headings=["Article R824-1";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> true
| ModeOccupationImpaye.ImpayePret _ -> false)
(match aide_versee_
with
| VersementA.Bailleur _ -> true
| VersementA.Beneficiaire _ -> false
| VersementA.EtablissementHabilite _ -> false))))
(fun (_: unit) ->
match depense_logement_nette_
with
| DepenseLogement.TotalAnnuelEcheances _ ->
(money_of_cents_string "0")
| DepenseLogement.Mensualite _ ->
(money_of_cents_string "0")
| DepenseLogement.Loyer loyer_net_ ->
(o_mult_mon_rat
(o_add_mon_mon loyer_net_ montant_charges_)
(decimal_of_string "2."))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2241; start_column=7;
end_line=2241; end_column=42;
law_headings=["Article R824-2";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> false
| ModeOccupationImpaye.ImpayePret _ -> true)
(match aide_versee_
with
| VersementA.Bailleur _ -> false
| VersementA.Beneficiaire _ -> true
| VersementA.EtablissementHabilite _ -> false))))
(fun (_: unit) ->
match depense_logement_brute_
with
| DepenseLogement.TotalAnnuelEcheances echeance_pret_brute_ ->
(o_mult_mon_rat echeance_pret_brute_
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "6.")))
| DepenseLogement.Mensualite mensualite_brute_ ->
(o_mult_mon_rat mensualite_brute_
(decimal_of_string "2."))
| DepenseLogement.Loyer _ -> (money_of_cents_string
"0")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2269; start_column=7;
end_line=2269; end_column=51;
law_headings=["Article R824-2";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> false
| ModeOccupationImpaye.ImpayePret _ -> true)
(match aide_versee_
with
| VersementA.Bailleur _ -> false
| VersementA.Beneficiaire _ -> false
| VersementA.EtablissementHabilite _ -> true))))
(fun (_: unit) ->
match depense_logement_nette_
with
| DepenseLogement.TotalAnnuelEcheances echeance_pret_nette_ ->
(o_mult_mon_rat echeance_pret_nette_
(o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "6.")))
| DepenseLogement.Mensualite mensualite_nette_ ->
(o_mult_mon_rat mensualite_nette_
(decimal_of_string "2."))
| DepenseLogement.Loyer _ -> (money_of_cents_string
"0")))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1025; start_column=11; end_line=1025; end_column=43;
law_headings=["Quantification des impayés de dépense de logement";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_impaye_: money = (log_variable_definition
["ImpayéDépenseLogement"; "montant_impayé"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2217; start_column=14;
end_line=2217; end_column=28;
law_headings=["Article R824-2";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ ->
false
| ModeOccupationImpaye.ImpayePret _ -> true)))
(fun (_: unit) ->
if
(o_gte_mon_mon montant_dette_
seuil_impaye_depense_de_logement_) then
montant_dette_ else
(money_of_cents_string "0")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2154; start_column=14;
end_line=2154; end_column=28;
law_headings=["Article R824-1";
"Section 1 : Seuils de constitution d'un impayé";
"Chapitre IV : Impayés de dépenses de logement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match mode_occupation_impaye_
with
| ModeOccupationImpaye.ImpayeLoyer _ -> true
| ModeOccupationImpaye.ImpayePret _ -> false)))
(fun (_: unit) ->
if
(o_gte_mon_mon montant_dette_
seuil_impaye_depense_de_logement_) then
montant_dette_ else (money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1030; start_column=12; end_line=1030; end_column=26;
law_headings=["Quantification des impayés de dépense de logement";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
{ImpayeDepenseLogement.montant_impaye = montant_impaye_}
let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales_in: BaseMensuelleAllocationsFamilialesIn.t) : BaseMensuelleAllocationsFamiliales.t =
let date_courante_: date = base_mensuelle_allocations_familiales_in.BaseMensuelleAllocationsFamilialesIn.date_courante_in in
let montant_: money = (log_variable_definition
["BaseMensuelleAllocationsFamiliales"; "montant"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=32; start_column=5;
end_line=33; end_column=33;
law_headings=["Instruction ministérielle N°DSS/SD2B/2019/65 du 25 mars 2019 relative à la revalorisation au 1er avril 2019 des prestations familiales servies en métropole";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41316"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=52; start_column=5;
end_line=53; end_column=33;
law_headings=["Instruction interministérielle no DSS/SD2B/2020/33 du 18 février 2020 relative à la revalorisation au 1er avril 2020 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41440"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=68; start_column=5;
end_line=69; end_column=33;
law_headings=["Instruction interministérielle n°DSS/2B/2021/65 du 19 mars 2021 relative à la revalorisation au 1er avril 2021 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (4) (1))))))
(fun (_: unit) -> money_of_cents_string "41481"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=86; start_column=5;
end_line=86; end_column=34;
law_headings=["Instruction interministérielle n°DSS/2B/2022/82 du 28 mars 2022 relative à la revalorisation au 1er avril 2022 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte";
"Montant de la base mensuelle des allocations familiales"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (4) (1)))))
(fun (_: unit) -> money_of_cents_string "42228"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=6; start_column=12; end_line=6; end_column=19;
law_headings=["Montant de la base mensuelle des allocations familiales"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (4) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=10; start_column=13;
end_line=10; end_column=42;
law_headings=["Montant de la base mensuelle des allocations familiales"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr";
start_line=10; start_column=13;
end_line=10; end_column=42;
law_headings=["Montant de la base mensuelle des allocations familiales"]}) in
{BaseMensuelleAllocationsFamiliales.montant = montant_}
let verification_age_inferieur_ou_egal_a (verification_age_inferieur_ou_egal_a_in: VerificationAgeInferieurOuEgalAIn.t) : VerificationAgeInferieurOuEgalA.t =
let date_naissance_: date = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.date_naissance_in in
let date_courante_: date = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.date_courante_in in
let annees_: duration = verification_age_inferieur_ou_egal_a_in.VerificationAgeInferieurOuEgalAIn.annees_in in
let est_inferieur_ou_egal_: bool = (log_variable_definition
["VérificationÂgeInférieurOuÉgalÀ"; "est_inférieur_ou_égal"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=25; start_column=14;
end_line=25; end_column=35;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
true))
(fun (_: unit) ->
o_lte_dat_dat
(o_add_dat_dur RoundUp date_naissance_ annees_)
date_courante_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=22; start_column=12; end_line=22; end_column=33;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
{VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal =
est_inferieur_ou_egal_}
let verification_age_superieur_a (verification_age_superieur_a_in: VerificationAgeSuperieurAIn.t) : VerificationAgeSuperieurA.t =
let date_naissance_: date = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.date_naissance_in in
let date_courante_: date = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.date_courante_in in
let annees_: duration = verification_age_superieur_a_in.VerificationAgeSuperieurAIn.annees_in in
let est_superieur_: bool = (log_variable_definition
["VérificationÂgeSupérieurÀ"; "est_supérieur"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=36; start_column=14;
end_line=36; end_column=27;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}
true))
(fun (_: unit) ->
o_gt_dat_dat
(o_add_dat_dur RoundUp date_naissance_ annees_)
date_courante_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr";
start_line=33; start_column=12; end_line=33; end_column=25;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
{VerificationAgeSuperieurA.est_superieur = est_superieur_}
let smic (smic_in: SmicIn.t) : Smic.t =
let date_courante_: date = smic_in.SmicIn.date_courante_in in
let residence_: Collectivite.t = smic_in.SmicIn.residence_in in
let brut_horaire_: money = (log_variable_definition
["Smic"; "brut_horaire"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=34; start_column=5;
end_line=43; end_column=6;
law_headings=["Article 1";
"Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1003"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=52; start_column=5;
end_line=54; end_column=6;
law_headings=["Article 1";
"Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2019) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "757"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=73; start_column=5;
end_line=82; end_column=6;
law_headings=["Article 1";
"Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1015"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=91; start_column=5;
end_line=93; end_column=6;
law_headings=["Article 1";
"Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2020) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "766"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=112; start_column=5;
end_line=121; end_column=6;
law_headings=["Article 1";
"Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1025"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=130; start_column=5;
end_line=132; end_column=6;
law_headings=["Article 1";
"Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2021) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "774"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=151; start_column=5;
end_line=160; end_column=6;
law_headings=["Article 1";
"Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (4) (30)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1057"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=170; start_column=5;
end_line=172; end_column=6;
law_headings=["Article 1";
"Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (4) (30)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "798"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=191; start_column=5;
end_line=200; end_column=6;
law_headings=["Article 2";
"Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (5) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (7) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1085"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=209; start_column=5;
end_line=211; end_column=6;
law_headings=["Article 2";
"Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (5) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (7) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "819"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=230; start_column=5;
end_line=239; end_column=6;
law_headings=["Article 2";
"Arrêté du 29 juillet 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (8) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31)))
(o_or
(o_eq residence_
(Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
())))))))))))))
(fun (_: unit) -> money_of_cents_string "1107"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=248; start_column=5;
end_line=250; end_column=6;
law_headings=["Article 2";
"Arrêté du 29 juillet 2022 relatif au relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (8) (1)))
(o_and
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31)))
(o_eq residence_ (Collectivite.Mayotte ()))))))
(fun (_: unit) -> money_of_cents_string "835"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=270; start_column=5;
end_line=279; end_column=6;
law_headings=["Article 1";
"Décret n° 2022-1608 du 22 décembre 2022 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(o_or
(o_eq residence_ (Collectivite.Metropole ()))
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_or
(o_eq residence_
(Collectivite.SaintMartin
()))
(o_eq residence_
(Collectivite.SaintPierreEtMiquelon
()))))))))))))
(fun (_: unit) -> money_of_cents_string "1127"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=288; start_column=5;
end_line=290; end_column=6;
law_headings=["Article 1";
"Décret n° 2022-1608 du 22 décembre 2022 portant relèvement du salaire minimum de croissance";
"Montant du salaire minimum de croissance"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(o_eq residence_ (Collectivite.Mayotte ())))))
(fun (_: unit) -> money_of_cents_string "851"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=11; start_column=12; end_line=11; end_column=24;
law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=16; start_column=13;
end_line=16; end_column=42;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr";
start_line=16; start_column=13;
end_line=16; end_column=42;
law_headings=["Prologue";
"Montant du salaire minimum de croissance"]}) in
{Smic.brut_horaire = brut_horaire_}
let arrondi_centaine_superieure_ : money -> money =
fun (ressources_menage_: money) ->
o_mult_mon_rat
(o_round_mon
(o_add_mon_mon
(o_mult_mon_rat ressources_menage_ (decimal_of_string "0.01"))
(money_of_cents_string "49"))) (decimal_of_string "100.")
let traitement_nul_tout_le_temps_ : money -> money =
fun (aide_finale_: money) -> money_of_cents_string "0"
let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logement_locatif_in: CalculAidePersonnaliseeLogementLocatifIn.t) : CalculAidePersonnaliseeLogementLocatif.t =
let loyer_principal_base_: money = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.loyer_principal_base_in in
let ressources_menage_arrondies_: money = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.ressources_menage_arrondies_in in
let beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in in
let date_courante_: date = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.date_courante_in in
let nombre_personnes_a_charge_: integer = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.situation_familiale_calcul_apl_in in
let zone_: ZoneDHabitation.t = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.zone_in in
let logement_est_chambre_: bool = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.logement_est_chambre_in in
let agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in in
let type_aide_: TypeAidesPersonnelleLogement.t = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.type_aide_in in
let colocation_: bool = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.colocation_in in
let reduction_loyer_solidarite_: money = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.reduction_loyer_solidarite_in in
let logement_meuble_d842_2_: bool = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.logement_meuble_d842_2_in in
let residence_: Collectivite.t = calcul_aide_personnalisee_logement_locatif_in.CalculAidePersonnaliseeLogementLocatifIn.residence_in in
let fraction_l832_3_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "fraction_l832_3"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1860; start_column=14;
end_line=1860; end_column=29;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> decimal_of_string "0.98"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=531; start_column=11; end_line=531; end_column=26;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let contributions_sociales_dot_date_courante_: date =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"contributions_sociales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=563; start_column=14;
end_line=563; end_column=50;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=563; start_column=14; end_line=563; end_column=50;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call
["CalculAidePersonnaliséeLogementLocatif"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"]
contributions_sociales_aides_personnelle_logement)
({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in =
contributions_sociales_dot_date_courante_}))) in
let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in
let montant_forfaitaire_d823_16_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"montant_forfaitaire_d823_16"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=288; start_column=14;
end_line=288; end_column=41;
law_headings=["Article 11";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=534; start_column=11; end_line=534; end_column=38;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let multiplicateur_majoration_charges_d823_16_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"multiplicateur_majoration_charges_d823_16"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2188; start_column=14;
end_line=2188; end_column=55;
law_headings=["Article 9";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
o_torat_int
nombre_personnes_a_charge_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1106; start_column=14;
end_line=1106; end_column=55;
law_headings=["Article 9";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=238; start_column=14;
end_line=238; end_column=55;
law_headings=["Article 9";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=539; start_column=11; end_line=539; end_column=52;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_minimal_aide_d823_16_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"montant_minimal_aide_d823_16"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=301; start_column=14;
end_line=301; end_column=42;
law_headings=["Article 12";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
match type_aide_
with
| TypeAidesPersonnelleLogement.AidePersonnaliseeLogement _ ->
(money_of_cents_string "0")
| TypeAidesPersonnelleLogement.AllocationLogementFamiliale _ ->
(money_of_cents_string "1000")
| TypeAidesPersonnelleLogement.AllocationLogementSociale _ ->
(money_of_cents_string "1000")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=535; start_column=11; end_line=535; end_column=39;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let loyer_principal_avec_reduction_meuble_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"loyer_principal_avec_réduction_meublé"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4229; start_column=14;
end_line=4229; end_column=29;
law_headings=["Article D842-2";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if logement_meuble_d842_2_ then
(o_mult_mon_rat loyer_principal_base_
(o_div_rat_rat (decimal_of_string "2.")
(decimal_of_string "3."))) else
loyer_principal_base_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=508; start_column=10; end_line=508; end_column=31;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_composition_familiale_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "taux_composition_familiale"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4513; start_column=6;
end_line=4520; end_column=28;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "0.0238") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "0.0217") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "0.0194") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(decimal_of_string "0.0169")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"6")) then
(decimal_of_string "0.0162")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"7")) then
(decimal_of_string "0.0167")
else
(o_sub_rat_rat
(decimal_of_string "0.0167")
(o_mult_rat_rat
(decimal_of_string "0.0006")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"7"))))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3605;
start_column=6;
end_line=3612; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(
match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true))))
(fun
(_: unit) ->
if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"0"))
then
(match
situation_familiale_calcul_apl_
with
|
SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
|
SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299"))
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"1"))
then
(decimal_of_string "0.0238")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"2"))
then
(decimal_of_string "0.0217")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"3"))
then
(decimal_of_string "0.0194")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"4"))
then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5"))
then
(decimal_of_string "0.0169")
else
(decimal_of_string "0.0162"))))))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3068;
start_column=6;
end_line=3075; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299"))
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"1")) then
(decimal_of_string "0.0238")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"2"))
then
(decimal_of_string "0.0217")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"3"))
then
(decimal_of_string "0.0194")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"4"))
then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5"))
then
(decimal_of_string "0.0169")
else
(decimal_of_string "0.0162"))))))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1996;
start_column=6;
end_line=2003; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299"))
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"1")) then
(decimal_of_string "0.0238")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"2")) then
(decimal_of_string "0.0217")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"3")) then
(decimal_of_string "0.0194")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"4")) then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5"))
then
(decimal_of_string "0.0169")
else
(decimal_of_string "0.0162"))))))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=881; start_column=6;
end_line=888; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299"))
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "1"))
then
(decimal_of_string "0.0238")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "2"))
then
(decimal_of_string "0.0217")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"3")) then
(decimal_of_string "0.0194")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"4")) then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(decimal_of_string "0.0169")
else
(decimal_of_string "0.0162"))))))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=385; start_column=6;
end_line=392; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0281")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0299")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "0.0238") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "0.0217") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "0.0194") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(decimal_of_string "0.018")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(decimal_of_string "0.0169")
else
(decimal_of_string "0.0162"))))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2251; start_column=29;
end_line=2251; end_column=55;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0283")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0315"))
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "1"))
then
(decimal_of_string "0.027")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "2"))
then
(decimal_of_string "0.0238")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"3")) then
(decimal_of_string "0.0201")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"4")) then
(decimal_of_string "0.0185")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(decimal_of_string "0.0179")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"6")) then
(decimal_of_string "0.0173")
else
(o_sub_rat_rat
(decimal_of_string "0.0173")
(o_mult_rat_rat
(decimal_of_string "0.0006")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1168; start_column=29;
end_line=1168; end_column=55;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0283")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0315")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "0.027") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "0.0238") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "0.0201") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(decimal_of_string "0.0185")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(decimal_of_string "0.0179")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"6")) then
(decimal_of_string "0.0173")
else
(o_sub_rat_rat
(decimal_of_string "0.0173")
(o_mult_rat_rat
(decimal_of_string "0.0006")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=363; start_column=29;
end_line=363; end_column=55;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(decimal_of_string "0.0283")
| SituationFamilialeCalculAPL.Couple _ ->
(decimal_of_string "0.0315")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(decimal_of_string "0.027") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(decimal_of_string "0.0238") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(decimal_of_string "0.0201") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(decimal_of_string "0.0185") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "5")) then
(decimal_of_string "0.0179") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "6")) then
(decimal_of_string "0.0173")
else
(o_sub_rat_rat
(decimal_of_string "0.0173")
(o_mult_rat_rat
(decimal_of_string "0.0006")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=546; start_column=12; end_line=546; end_column=38;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let multiplicateur_majoration_r0_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"multiplicateur_majoration_r0"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3387;
start_column=5;
end_line=3395; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(
o_and
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun
(_: unit) ->
decimal_of_string "0."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2851;
start_column=5;
end_line=2859; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match
residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "0."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1780;
start_column=5;
end_line=1788; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "0."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=662; start_column=5;
end_line=670; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) ->
decimal_of_string "0."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=168; start_column=5;
end_line=176; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) -> decimal_of_string "0."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3242;
start_column=14;
end_line=3242; end_column=42;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=529; start_column=14;
end_line=529; end_column=42;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=35; start_column=14;
end_line=35; end_column=42;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "6"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=485; start_column=14;
end_line=485; end_column=42;
law_headings=["Article 15";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "6"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=541; start_column=11; end_line=541; end_column=39;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let multiplicateur_majoration_loyer_reference_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"multiplicateur_majoration_loyer_référence"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3365;
start_column=5;
end_line=3373; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(
o_and
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun
(_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2830;
start_column=5;
end_line=2838; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match
residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1759;
start_column=5;
end_line=1767; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=640; start_column=5;
end_line=648; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=147; start_column=5;
end_line=155; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) -> decimal_of_string "5."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2332; start_column=14;
end_line=2332; end_column=55;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1252; start_column=14;
end_line=1252; end_column=55;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=445; start_column=14;
end_line=445; end_column=55;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=540; start_column=11; end_line=540; end_column=52;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let multiplicateur_majoration_plafond_loyer_d823_16_2_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"multiplicateur_majoration_plafond_loyer_d823_16_2"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3300;
start_column=5;
end_line=3308; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(
o_and
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun
(_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2765;
start_column=5;
end_line=2773; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match
residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1695;
start_column=5;
end_line=1703; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=575; start_column=5;
end_line=583; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) ->
decimal_of_string "5."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=82; start_column=5;
end_line=90; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) -> decimal_of_string "5."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2397;
start_column=14;
end_line=2397; end_column=63;
law_headings=
["Article 16";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
colocation_))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2078;
start_column=14;
end_line=2078; end_column=63;
law_headings=["Article 7";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1319; start_column=14;
end_line=1319; end_column=63;
law_headings=["Article 16";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=995; start_column=14;
end_line=995; end_column=63;
law_headings=["Article 7";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=128; start_column=14;
end_line=128; end_column=63;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_torat_int
(o_sub_int_int nombre_personnes_a_charge_
(integer_of_string "1"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=538; start_column=11; end_line=538; end_column=60;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_charges_d823_16_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"montant_forfaitaire_charges_d823_16"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4443;
start_column=5;
end_line=4451; end_column=15;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2023) (1) (1)))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true) colocation_))))
(fun (_: unit) ->
o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=314;
start_column=6;
end_line=321; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1926;
start_column=6;
end_line=1933; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ :
money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money
=
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon
montant_
limite_) then
limite_ else
montant_)))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=810;
start_column=6;
end_line=817; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2998;
start_column=6;
end_line=3005; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1864")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3625"))
(o_mult_mon_rat
(money_of_cents_string
"932")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1864")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3625"))
(o_mult_mon_rat
(money_of_cents_string
"932")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3534;
start_column=6;
end_line=3541; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1858")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3614"))
(o_mult_mon_rat
(money_of_cents_string
"929")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1858")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3614"))
(o_mult_mon_rat
(money_of_cents_string
"929")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=591; start_column=14;
end_line=591; end_column=49;
law_headings=["Article 16";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_)))
(fun (_: unit) ->
o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"2805")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"5612"))
(o_mult_mon_rat
(money_of_cents_string "1272")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1347; start_column=14;
end_line=1347; end_column=49;
law_headings=["Article 16";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_))))
(fun (_: unit) ->
o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"2710")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"5422"))
(o_mult_mon_rat
(money_of_cents_string "1229")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2426; start_column=14;
end_line=2426; end_column=49;
law_headings=["Article 16";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
colocation_))))
(fun (_: unit) ->
o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"2699")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"5399"))
(o_mult_mon_rat
(money_of_cents_string "1224")
multiplicateur_majoration_charges_d823_16_)))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4380; start_column=6;
end_line=4387; end_column=28;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "3767")
(o_mult_mon_rat (money_of_cents_string
"969")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=239; start_column=6;
end_line=246; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3767")
(o_mult_mon_rat (money_of_cents_string
"969")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3767")
(o_mult_mon_rat (money_of_cents_string
"969") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1852; start_column=6;
end_line=1859; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=735; start_column=6;
end_line=742; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3640")
(o_mult_mon_rat (money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3640")
(o_mult_mon_rat (money_of_cents_string
"936") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2924; start_column=6;
end_line=2931; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3625")
(o_mult_mon_rat (money_of_cents_string
"932")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3625")
(o_mult_mon_rat (money_of_cents_string
"932") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3460; start_column=6;
end_line=3467; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3614")
(o_mult_mon_rat (money_of_cents_string
"929")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3614")
(o_mult_mon_rat (money_of_cents_string
"929") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=242; start_column=14;
end_line=242; end_column=49;
law_headings=["Article 9";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5612")
(o_mult_mon_rat (money_of_cents_string "1272")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1110; start_column=14;
end_line=1110; end_column=49;
law_headings=["Article 9";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5422")
(o_mult_mon_rat (money_of_cents_string "1229")
multiplicateur_majoration_charges_d823_16_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2192; start_column=14;
end_line=2192; end_column=49;
law_headings=["Article 9";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5399")
(o_mult_mon_rat (money_of_cents_string "1224")
multiplicateur_majoration_charges_d823_16_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=543; start_column=12; end_line=543; end_column=47;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let abattement_forfaitaire_d823_17_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"abattement_forfaitaire_d823_17"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4343; start_column=5;
end_line=4351; end_column=34;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "1"))))))
(fun (_: unit) -> money_of_cents_string
"818100"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4604; start_column=5;
end_line=4606; end_column=28;
law_headings=["Article 47";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(match residence_
with
| Collectivite.Guadeloupe _ -> false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ -> false))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "527200")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "755200"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "900800") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "921100")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "956300")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"991900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"1027100") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"6")) then
(money_of_cents_string
"1062600") else
(o_add_mon_mon
(money_of_cents_string
"1062600")
(o_mult_mon_rat
(money_of_cents_string
"35000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=211; start_column=5;
end_line=219; end_column=34;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "1"))))))
(fun (_: unit) -> money_of_cents_string
"805100"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=459; start_column=5;
end_line=461; end_column=28;
law_headings=["Article 47";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ -> false))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "487000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "697700"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "832200") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "850900")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "883400")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"916300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"948800") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"6")) then
(money_of_cents_string
"981600") else
(o_add_mon_mon
(money_of_cents_string
"981600")
(o_mult_mon_rat
(money_of_cents_string
"35000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=706; start_column=5;
end_line=714; end_column=34;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "1"))))))
(fun (_: unit) -> money_of_cents_string
"774200"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3184; start_column=5;
end_line=3193; end_column=28;
law_headings=["Article 47";
"Articles en vigueur à partir du 01 janvier 2021 - Arrêté du 31 décembre 2020 relatif au calcul des aides personnelles au logement pour l'année 2021 NOR : LOGL2028351A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "427400")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "612200"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "699000") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "743200")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "785400")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"828300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"871100") else
(money_of_cents_string
"913900"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3431;
start_column=5;
end_line=3439; end_column=34;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
(fun (_: unit) ->
money_of_cents_string
"758400"))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2894; start_column=5;
end_line=2902; end_column=34;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_eq
nombre_personnes_a_charge_
(integer_of_string "1"))))))
(fun (_: unit) -> money_of_cents_string
"758400"))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1824; start_column=5;
end_line=1832; end_column=34;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "1"))))))
(fun (_: unit) -> money_of_cents_string
"758400"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3693; start_column=5;
end_line=3702; end_column=28;
law_headings=["Article 47";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "396000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "567300"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "639600") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "684900")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "738600")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"793500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"848400") else
(money_of_cents_string
"903200"))))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=489; start_column=14;
end_line=489; end_column=44;
law_headings=["Article 15";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "494900")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "709000")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "845600") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "864600") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "897700") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(money_of_cents_string "931100") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "5")) then
(money_of_cents_string "964200")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "6")) then
(money_of_cents_string "997500")
else
(o_add_mon_mon
(money_of_cents_string
"997500")
(o_mult_mon_rat
(money_of_cents_string
"32800")
multiplicateur_majoration_r0_))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=39; start_column=14;
end_line=39; end_column=44;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2022) (12) (31))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "487000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "697700")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "832200") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "850900") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "883400") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(money_of_cents_string "916300") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "5")) then
(money_of_cents_string "948800")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "6")) then
(money_of_cents_string "981600")
else
(o_add_mon_mon
(money_of_cents_string
"981600")
(o_mult_mon_rat
(money_of_cents_string
"32300")
multiplicateur_majoration_r0_))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=533; start_column=14;
end_line=533; end_column=44;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "468300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "670900")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "800200") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "819200") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "849500") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(money_of_cents_string "881100") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "5")) then
(money_of_cents_string "912400")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "6")) then
(money_of_cents_string "943900")
else
(o_add_mon_mon
(money_of_cents_string
"943900")
(o_mult_mon_rat
(money_of_cents_string
"31100")
multiplicateur_majoration_r0_))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3246; start_column=14;
end_line=3246; end_column=44;
law_headings=["Article 15";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "458800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "657200")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "783900") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "801500") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "832200") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "4")) then
(money_of_cents_string "863100") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "5")) then
(money_of_cents_string "893800")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "6")) then
(money_of_cents_string "924600")
else
(o_add_mon_mon
(money_of_cents_string
"924600")
(o_mult_mon_rat
(money_of_cents_string
"30500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"6")))))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=536; start_column=11; end_line=536; end_column=41;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let loyer_reference_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "loyer_référence"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=448; start_column=14;
end_line=448; end_column=29;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26887")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32910")) else
(o_add_mon_mon (money_of_cents_string "37032")
(o_mult_mon_rat (money_of_cents_string "5390")
multiplicateur_majoration_loyer_reference_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1255; start_column=14;
end_line=1255; end_column=29;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25978")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31797")) else
(o_add_mon_mon (money_of_cents_string "35780")
(o_mult_mon_rat (money_of_cents_string "5208")
multiplicateur_majoration_loyer_reference_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2335; start_column=14;
end_line=2335; end_column=29;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25869")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31664")) else
(o_add_mon_mon (money_of_cents_string "35630")
(o_mult_mon_rat (money_of_cents_string "5186")
multiplicateur_majoration_loyer_reference_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=530; start_column=11; end_line=530; end_column=26;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_loyer_d823_16_2_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "plafond_loyer_d823_16_2"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=549; start_column=5;
end_line=550; end_column=34;
law_headings=["Article 16";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_)
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "23138")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "20165")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18900")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=558; start_column=5;
end_line=559; end_column=34;
law_headings=["Article 16";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_)
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "27905")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "24683")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "22911")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=567; start_column=5;
end_line=567; end_column=35;
law_headings=["Article 16";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_)
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string
"31539")
(o_mult_mon_rat
(money_of_cents_string "4576")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string
"27774")
(o_mult_mon_rat
(money_of_cents_string "4043")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string
"25689")
(o_mult_mon_rat
(money_of_cents_string "3682")
multiplicateur_majoration_plafond_loyer_d823_16_2_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1301; start_column=5;
end_line=1302; end_column=34;
law_headings=["Article 16";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "22355")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "19484")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18261")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1310; start_column=5;
end_line=1311; end_column=34;
law_headings=["Article 16";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "26962")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "23848")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "22136")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1323; start_column=5;
end_line=1323; end_column=35;
law_headings=["Article 16";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
colocation_))
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string
"30473")
(o_mult_mon_rat
(money_of_cents_string "4421")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string
"26835")
(o_mult_mon_rat
(money_of_cents_string "3906")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string
"24821")
(o_mult_mon_rat
(money_of_cents_string "3557")
multiplicateur_majoration_plafond_loyer_d823_16_2_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2379; start_column=5;
end_line=2380; end_column=34;
law_headings=["Article 16";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
colocation_))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "22262")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "19402")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18185")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2388; start_column=5;
end_line=2389; end_column=34;
law_headings=["Article 16";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
colocation_))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "26849")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "23748")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "22044")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2401; start_column=5;
end_line=2401; end_column=35;
law_headings=["Article 16";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
colocation_))
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string
"30345")
(o_mult_mon_rat
(money_of_cents_string "4403")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string
"26723")
(o_mult_mon_rat
(money_of_cents_string "3890")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string
"24717")
(o_mult_mon_rat
(money_of_cents_string "3542")
multiplicateur_majoration_plafond_loyer_d823_16_2_))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=201; start_column=5;
end_line=201; end_column=61;
law_headings=["Article 8";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
logement_est_chambre_)
agees_ou_handicap_adultes_hebergees_onereux_particuliers_)))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "23138")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "20165")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18900")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1069; start_column=5;
end_line=1069; end_column=61;
law_headings=["Article 8";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1)))
logement_est_chambre_))
agees_ou_handicap_adultes_hebergees_onereux_particuliers_)))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "22355")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "19484")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18261")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2151; start_column=5;
end_line=2151; end_column=61;
law_headings=["Article 8";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
logement_est_chambre_))
agees_ou_handicap_adultes_hebergees_onereux_particuliers_)))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "22262")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "19402")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "18185")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=194; start_column=14;
end_line=194; end_column=37;
law_headings=["Article 8";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
logement_est_chambre_)))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "27765")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "24198")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "22680")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1062; start_column=14;
end_line=1062; end_column=37;
law_headings=["Article 8";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
logement_est_chambre_))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "26826")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "23380")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "21913")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2144; start_column=14;
end_line=2144; end_column=37;
law_headings=["Article 8";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
logement_est_chambre_))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(money_of_cents_string "26714")
| ZoneDHabitation.Zone2 _ ->
(money_of_cents_string "23282")
| ZoneDHabitation.Zone3 _ ->
(money_of_cents_string "21821")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=109; start_column=5;
end_line=110; end_column=34;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"30850")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"26887")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"25200")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=119; start_column=5;
end_line=120; end_column=34;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"37207")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"32910")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"30548")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=133; start_column=5;
end_line=133; end_column=35;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string "42052")
(o_mult_mon_rat (money_of_cents_string
"6101")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string "37032")
(o_mult_mon_rat (money_of_cents_string
"5390")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string "34252")
(o_mult_mon_rat (money_of_cents_string
"4909")
multiplicateur_majoration_plafond_loyer_d823_16_2_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=976; start_column=5;
end_line=977; end_column=34;
law_headings=["Article 7";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"29807")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"25978")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"24348")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=986; start_column=5;
end_line=987; end_column=34;
law_headings=["Article 7";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"35949")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"31797")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"29515")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1000; start_column=5;
end_line=1000; end_column=35;
law_headings=["Article 7";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string "40630")
(o_mult_mon_rat (money_of_cents_string
"5895")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string "35780")
(o_mult_mon_rat (money_of_cents_string
"5208")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string "33094")
(o_mult_mon_rat (money_of_cents_string
"4743")
multiplicateur_majoration_plafond_loyer_d823_16_2_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2059; start_column=5;
end_line=2060; end_column=34;
law_headings=["Article 7";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
true
| SituationFamilialeCalculAPL.Couple _ ->
false)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"29682")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"25859")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"24246")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2069; start_column=5;
end_line=2070; end_column=34;
law_headings=["Article 7";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(o_and
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
false
| SituationFamilialeCalculAPL.Couple _ ->
true)
(o_eq nombre_personnes_a_charge_
(integer_of_string "0"))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ -> (money_of_cents_string
"35799")
| ZoneDHabitation.Zone2 _ -> (money_of_cents_string
"31664")
| ZoneDHabitation.Zone3 _ -> (money_of_cents_string
"29392")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2083; start_column=5;
end_line=2083; end_column=35;
law_headings=["Article 7";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "1")))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_add_mon_mon (money_of_cents_string "40460")
(o_mult_mon_rat (money_of_cents_string
"5870")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone2 _ ->
(o_add_mon_mon (money_of_cents_string "35630")
(o_mult_mon_rat (money_of_cents_string
"5186")
multiplicateur_majoration_plafond_loyer_d823_16_2_))
| ZoneDHabitation.Zone3 _ ->
(o_add_mon_mon (money_of_cents_string "32956")
(o_mult_mon_rat (money_of_cents_string
"4723")
multiplicateur_majoration_plafond_loyer_d823_16_2_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=544; start_column=12; end_line=544; end_column=35;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_suppression_d823_16_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"plafond_suppression_d823_16"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=272; start_column=14;
end_line=272; end_column=41;
law_headings=["Article 10";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "4."))
| ZoneDHabitation.Zone2 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "3.1"))
| ZoneDHabitation.Zone3 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "3.1"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=533; start_column=11; end_line=533; end_column=38;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_degressivite_d823_16_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"plafond_dégressivité_d823_16"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=266; start_column=14;
end_line=266; end_column=42;
law_headings=["Article 10";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "3.4"))
| ZoneDHabitation.Zone2 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "2.5"))
| ZoneDHabitation.Zone3 _ ->
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "2.5"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=532; start_column=11; end_line=532; end_column=39;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let loyer_eligible_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "loyer_éligible"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1761; start_column=14;
end_line=1761; end_column=28;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gt_mon_mon
loyer_principal_avec_reduction_meuble_
plafond_loyer_d823_16_2_) then
plafond_loyer_d823_16_2_ else
loyer_principal_avec_reduction_meuble_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=525; start_column=11; end_line=525; end_column=25;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_diminue_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_diminué"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1810; start_column=5;
end_line=1810; end_column=50;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
beneficiaire_aide_adulte_ou_enfant_handicapes_))
(fun (_: unit) -> aide_finale_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1796; start_column=14;
end_line=1796; end_column=36;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gt_mon_mon
loyer_principal_avec_reduction_meuble_
plafond_suppression_d823_16_) then
(money_of_cents_string "0") else
( if
(o_gt_mon_mon
loyer_principal_avec_reduction_meuble_
plafond_degressivite_d823_16_) then
(o_sub_mon_mon aide_finale_
(o_mult_mon_rat aide_finale_
(o_div_mon_mon
(o_sub_mon_mon
loyer_principal_avec_reduction_meuble_
plafond_degressivite_d823_16_)
(o_sub_mon_mon
plafond_suppression_d823_16_
plafond_degressivite_d823_16_))))
else aide_finale_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=556; start_column=10; end_line=556; end_column=17;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let participation_minimale_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "participation_minimale"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=317; start_column=14;
end_line=317; end_column=36;
law_headings=["Article 13";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_gte_mon_mon
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085"))
(money_of_cents_string "3663")) then
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085")) else
(money_of_cents_string "3663")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1124; start_column=14;
end_line=1124; end_column=36;
law_headings=["Article 13";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_gte_mon_mon
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085"))
(money_of_cents_string "3539")) then
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085")) else
(money_of_cents_string "3539")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2206; start_column=14;
end_line=2206; end_column=36;
law_headings=["Article 13";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
if
(o_gte_mon_mon
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085"))
(money_of_cents_string "3524")) then
(o_mult_mon_rat
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
(decimal_of_string "0.085")) else
(money_of_cents_string "3524")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=545; start_column=12; end_line=545; end_column=34;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let rapport_loyers_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "rapport_loyers"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2281; start_column=14;
end_line=2281; end_column=28;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_div_mon_mon
loyer_eligible_
loyer_reference_)
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1198; start_column=14;
end_line=1198; end_column=28;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_div_mon_mon loyer_eligible_
loyer_reference_)
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=393; start_column=14;
end_line=393; end_column=28;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_div_mon_mon loyer_eligible_
loyer_reference_)
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=529; start_column=11; end_line=529; end_column=25;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_minoration_forfaitaire"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1820; start_column=14;
end_line=1820; end_column=36;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_diminué"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_diminué"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_diminué"]
traitement_aide_finale_diminue_)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_diminué"; "input0"]
(embed_money) aide_finale_)))))))
in
( if
(o_gte_mon_mon
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d823_16_)
(money_of_cents_string "0")) then
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d823_16_) else
(money_of_cents_string "0")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=557; start_column=10; end_line=557; end_column=32;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_loyer_eligible_formule_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"taux_loyer_éligible_formule"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2305; start_column=14;
end_line=2305; end_column=33;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
if
(o_lt_rat_rat rapport_loyers_
(decimal_of_string "0.45"))
then (decimal_of_string "0.") else
( if
(o_and
(o_gte_rat_rat
rapport_loyers_
(decimal_of_string "0.45"))
(o_lt_rat_rat
rapport_loyers_
(decimal_of_string "0.75")))
then
(o_mult_rat_rat
(decimal_of_string "0.0045")
(o_sub_rat_rat
rapport_loyers_
(decimal_of_string "0.0045")))
else
( if
(o_gte_rat_rat
rapport_loyers_
(decimal_of_string "0.75"))
then
(o_add_rat_rat
(o_mult_rat_rat
(decimal_of_string "0.0045")
(decimal_of_string "0.3"))
(o_mult_rat_rat
(decimal_of_string "0.0068")
(o_sub_rat_rat
rapport_loyers_
(decimal_of_string "0.75"))))
else
(decimal_of_string "0.")))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1225; start_column=14;
end_line=1225; end_column=33;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_lt_rat_rat rapport_loyers_
(decimal_of_string "0.45")) then
(decimal_of_string "0.") else
( if
(o_and
(o_gte_rat_rat rapport_loyers_
(decimal_of_string "0.45"))
(o_lt_rat_rat rapport_loyers_
(decimal_of_string "0.75"))) then
(o_mult_rat_rat
(decimal_of_string "0.0045")
(o_sub_rat_rat rapport_loyers_
(decimal_of_string "0.0045")))
else
( if
(o_gte_rat_rat rapport_loyers_
(decimal_of_string "0.75")) then
(o_add_rat_rat
(o_mult_rat_rat
(decimal_of_string "0.0045")
(decimal_of_string "0.3"))
(o_mult_rat_rat
(decimal_of_string "0.0068")
(o_sub_rat_rat rapport_loyers_
(decimal_of_string "0.75"))))
else (decimal_of_string "0.")))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=419; start_column=14;
end_line=419; end_column=33;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_lt_rat_rat rapport_loyers_
(decimal_of_string "0.45")) then
(decimal_of_string "0.") else
( if
(o_and
(o_gte_rat_rat rapport_loyers_
(decimal_of_string "0.45"))
(o_lt_rat_rat rapport_loyers_
(decimal_of_string "0.75"))) then
(o_mult_rat_rat (decimal_of_string "0.0045")
(o_sub_rat_rat rapport_loyers_
(decimal_of_string "0.0045"))) else
( if
(o_gte_rat_rat rapport_loyers_
(decimal_of_string "0.75")) then
(o_add_rat_rat
(o_mult_rat_rat
(decimal_of_string "0.0045")
(decimal_of_string "0.3"))
(o_mult_rat_rat
(decimal_of_string "0.0068")
(o_sub_rat_rat rapport_loyers_
(decimal_of_string "0.75")))) else
(decimal_of_string "0.")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=527; start_column=10; end_line=527; end_column=17;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_contributions_sociales_arrondi_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_contributions_sociales_arrondi"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1837; start_column=14;
end_line=1837; end_column=36;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_minoration_forfaitaire"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_minoration_forfaitaire";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_minoration_forfaitaire"]
traitement_aide_finale_minoration_forfaitaire_)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_minoration_forfaitaire";
"input0"] (embed_money) aide_finale_)))))))
in
(let crds_ : money = ((log_end_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"] ((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "output"] (embed_money)
((log_begin_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"]
contributions_sociales_dot_montant_)
((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "input0"] (embed_money)
aide_finale_)))))))
in
(let aide_finale_moins_crds_arrondie_ : money =
(o_round_mon
(o_sub_mon_mon
(o_sub_mon_mon aide_finale_ crds_)
(money_of_cents_string "50")))
in
( if
(o_gte_mon_mon
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
(money_of_cents_string "0")) then
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
else (money_of_cents_string "0")))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=558; start_column=10; end_line=558; end_column=40;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_loyer_eligible_taux_arrondi_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"taux_loyer_éligible_taux_arrondi"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2312; start_column=14;
end_line=2312; end_column=33;
law_headings=["Article 14";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
taux_loyer_eligible_formule_
(decimal_of_string "100000.")))
(decimal_of_string "100000.")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1232; start_column=14;
end_line=1232; end_column=33;
law_headings=["Article 14";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
taux_loyer_eligible_formule_
(decimal_of_string "100000.")))
(decimal_of_string "100000.")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=426; start_column=14;
end_line=426; end_column=33;
law_headings=["Article 14";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat taux_loyer_eligible_formule_
(decimal_of_string "100000.")))
(decimal_of_string "100000.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=528; start_column=10; end_line=528; end_column=22;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_reduction_loyer_solidarite_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_réduction_loyer_solidarité"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=830; start_column=14;
end_line=830; end_column=36;
law_headings=["Article L832-3";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_contributions_sociales_arrondi"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_contributions_sociales_arrondi";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_contributions_sociales_arrondi"]
traitement_aide_finale_contributions_sociales_arrondi_)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_contributions_sociales_arrondi";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_gte_mon_mon
(o_sub_mon_mon aide_finale_
(o_mult_mon_rat
reduction_loyer_solidarite_
fraction_l832_3_))
(money_of_cents_string "0")) then
(o_sub_mon_mon aide_finale_
(o_mult_mon_rat reduction_loyer_solidarite_
fraction_l832_3_)) else
(money_of_cents_string "0")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=559; start_column=10; end_line=559; end_column=36;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_prise_compte_ressources_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"taux_prise_compte_ressources"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1920; start_column=14;
end_line=1920; end_column=42;
law_headings=["Article D823-17";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_add_rat_rat taux_composition_familiale_
taux_loyer_eligible_taux_arrondi_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=537; start_column=11; end_line=537; end_column=39;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_montant_minimal_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_montant_minimal"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1869; start_column=14;
end_line=1869; end_column=36;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_réduction_loyer_solidarité"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_réduction_loyer_solidarité";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_réduction_loyer_solidarité"]
traitement_aide_finale_reduction_loyer_solidarite_)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_réduction_loyer_solidarité";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon aide_finale_
montant_minimal_aide_d823_16_) then
(money_of_cents_string "0") else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=560; start_column=10; end_line=560; end_column=25;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let participation_personnelle_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "participation_personnelle"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1886; start_column=14;
end_line=1886; end_column=39;
law_headings=["Article D823-17";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let participation_ressources_ : money =
(o_mult_mon_rat
(o_sub_mon_mon ressources_menage_arrondies_
abattement_forfaitaire_d823_17_)
taux_prise_compte_ressources_)
in
(let participation_ressources_ : money =
( if
(o_lt_mon_mon participation_ressources_
(money_of_cents_string "0")) then
(money_of_cents_string "0") else
participation_ressources_)
in
(o_add_mon_mon participation_minimale_
participation_ressources_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=547; start_column=12; end_line=547; end_column=37;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementLocatif"; "aide_finale_formule"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1743; start_column=14;
end_line=1743; end_column=33;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money =
(o_sub_mon_mon
(o_add_mon_mon loyer_eligible_
montant_forfaitaire_charges_d823_16_)
participation_personnelle_)
in
( if
(o_lt_mon_mon aide_finale_ (money_of_cents_string
"0")) then (money_of_cents_string "0") else
aide_finale_))))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=552; start_column=12; end_line=552; end_column=31;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_gte_mon_mon plafond_degressivite_d823_16_
(o_mult_mon_rat plafond_loyer_d823_16_2_
(decimal_of_string "2.5")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1813; start_column=13;
end_line=1813; end_column=74;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1813; start_column=13;
end_line=1813; end_column=74;
law_headings=["Article D823-16";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}) in
let _: unit = if (
try
(o_and
(o_gte_rat_rat fraction_l832_3_
(decimal_of_string "0.9"))
(o_lte_rat_rat fraction_l832_3_
(decimal_of_string "0.98")))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=840; start_column=13;
end_line=840; end_column=61;
law_headings=["Article L832-3";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=840; start_column=13;
end_line=840; end_column=61;
law_headings=["Article L832-3";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}) in
let _: unit = if (
try (o_not (o_and logement_est_chambre_ colocation_)) with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=574; start_column=13;
end_line=574; end_column=53;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=574; start_column=13;
end_line=574; end_column=53;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
let _: unit = if (
try
(o_gte_int_int nombre_personnes_a_charge_
(integer_of_string "0"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=567; start_column=13;
end_line=567; end_column=43;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=567; start_column=13;
end_line=567; end_column=43;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=566; start_column=13;
end_line=566; end_column=42;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=566; start_column=13;
end_line=566; end_column=42;
law_headings=["Secteur locatif";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
{CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16 =
montant_forfaitaire_charges_d823_16_;
CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2 =
plafond_loyer_d823_16_2_;
CalculAidePersonnaliseeLogementLocatif.participation_minimale =
participation_minimale_;
CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale =
taux_composition_familiale_;
CalculAidePersonnaliseeLogementLocatif.participation_personnelle =
participation_personnelle_;
CalculAidePersonnaliseeLogementLocatif.aide_finale_formule =
aide_finale_formule_;
CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale =
traitement_aide_finale_montant_minimal_}
let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement_foyer_in: CalculAidePersonnaliseeLogementFoyerIn.t) : CalculAidePersonnaliseeLogementFoyer.t =
let type_logement_foyer_: TypeLogementFoyer.t = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.type_logement_foyer_in in
let date_conventionnement_: date = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.date_conventionnement_in in
let ressources_menage_arrondies_: money = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.ressources_menage_arrondies_in in
let nombre_personnes_a_charge_: integer = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.situation_familiale_calcul_apl_in in
let zone_: ZoneDHabitation.t = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.zone_in in
let date_courante_: date = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.date_courante_in in
let redevance_: money = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.redevance_in in
let condition_2_du_832_25_: unit -> bool = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.condition_2_du_832_25_in in
let limitation_majoration_personnes_a_charge_: unit -> bool = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.limitation_majoration_personnes_a_charge_in in
let n_nombre_parts_d832_25_: unit -> decimal = calcul_aide_personnalisee_logement_foyer_in.CalculAidePersonnaliseeLogementFoyerIn.n_nombre_parts_d832_25_in in
let limitation_majoration_personnes_a_charge_: bool = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"limitation_majoration_personnes_à_charge"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> limitation_majoration_personnes_a_charge_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=616; start_column=12;
end_line=616; end_column=52;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=616; start_column=12; end_line=616; end_column=52;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_2_du_832_25_: bool = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "condition_2_du_832_25"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> condition_2_du_832_25_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3822; start_column=14;
end_line=3822; end_column=35;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match type_logement_foyer_
with
| TypeLogementFoyer.LogementPersonnesAgeesOuHandicapees _ ->
false
| TypeLogementFoyer.ResidenceSociale _ ->
(o_gte_dat_dat date_conventionnement_
(date_of_numbers (1994) (12) (31)))
| TypeLogementFoyer.FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 _ ->
(o_gte_dat_dat date_conventionnement_
(date_of_numbers (1990) (9) (30)))
| TypeLogementFoyer.Autre _ -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=615; start_column=12; end_line=615; end_column=33;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let contributions_sociales_dot_date_courante_: date =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"contributions_sociales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=652; start_column=14;
end_line=652; end_column=50;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=652; start_column=14; end_line=652; end_column=50;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call
["CalculAidePersonnaliséeLogementFoyer"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"]
contributions_sociales_aides_personnelle_logement)
({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in =
contributions_sociales_dot_date_courante_}))) in
let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in
let montant_minimal_aide_d823_24_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "montant_minimal_aide_d823_24"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2584; start_column=14;
end_line=2584; end_column=42;
law_headings=["Article 29";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1000"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=629; start_column=11; end_line=629; end_column=39;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d832_24_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "montant_forfaitaire_d832_24"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2572; start_column=14;
end_line=2572; end_column=41;
law_headings=["Article 28";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=627; start_column=11; end_line=627; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_equivalence_loyer_eligible_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"plafond_équivalence_loyer_éligible"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2517; start_column=14;
end_line=2517; end_column=48;
law_headings=["Article 27";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "46192")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "54152")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "57741") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "61794") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "65862") else
(o_add_mon_mon
(money_of_cents_string "71039")
(o_mult_mon_rat
(money_of_cents_string "7368")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "42242")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "49299")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "52565") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "56268") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "59957") else
(o_add_mon_mon
(money_of_cents_string "63887")
(o_mult_mon_rat
(money_of_cents_string "6659")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "40096")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "46634")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "49475") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "52740") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "56004") else
(o_add_mon_mon
(money_of_cents_string "59675")
(o_mult_mon_rat
(money_of_cents_string "6180")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1449; start_column=14;
end_line=1449; end_column=48;
law_headings=["Article 27";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "44630")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "52321")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "55788") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "59704") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "63635") else
(o_add_mon_mon
(money_of_cents_string "68637")
(o_mult_mon_rat
(money_of_cents_string "7119")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "40814")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "47632")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "50787") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "54365") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "57929") else
(o_add_mon_mon
(money_of_cents_string "61727")
(o_mult_mon_rat
(money_of_cents_string "6434")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "38740")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "45057")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "47802") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "50957") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "54110") else
(o_add_mon_mon
(money_of_cents_string "57657")
(o_mult_mon_rat
(money_of_cents_string "5971")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2529; start_column=14;
end_line=2529; end_column=48;
law_headings=["Article 27";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "44443")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "52101")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "55555") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "59454") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "63369") else
(o_add_mon_mon
(money_of_cents_string "68350")
(o_mult_mon_rat
(money_of_cents_string "7089")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "40643")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "47433")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "50575") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "54138") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "57687") else
(o_add_mon_mon
(money_of_cents_string "61469")
(o_mult_mon_rat
(money_of_cents_string "6407")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "38578")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "44869")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "47602") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "50744") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "53884") else
(o_add_mon_mon
(money_of_cents_string "57416")
(o_mult_mon_rat
(money_of_cents_string "5946")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string "4")))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=622; start_column=12; end_line=622; end_column=46;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_r_d832_25_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "coefficient_r_d832_25"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2599; start_column=14;
end_line=2599; end_column=35;
law_headings=["Article 30";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "121726"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=619; start_column=12; end_line=619; end_column=33;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let calcul_nombre_parts_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_nombre_parts.condition_2_du_832_25"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3916; start_column=14;
end_line=3916; end_column=55;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> condition_2_du_832_25_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3916; start_column=14; end_line=3916; end_column=55;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3912; start_column=14;
end_line=3912; end_column=59;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3912; start_column=14; end_line=3912; end_column=59;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_nombre_parts.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3914; start_column=14;
end_line=3914; end_column=64;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3914; start_column=14; end_line=3914; end_column=64;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_nombre_parts.limitation_majoration_personnes_à_charge"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5546; start_column=5;
end_line=5546; end_column=45;
law_headings=["Article D861-8";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
limitation_majoration_personnes_a_charge_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))) in
let result_: CalculNombrePartLogementFoyer.t = (log_end_call
["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts";
"CalculNombrePartLogementFoyer"] ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts";
"CalculNombrePartLogementFoyer"] calcul_nombre_part_logement_foyer)
({CalculNombrePartLogementFoyerIn.condition_2_du_832_25_in =
calcul_nombre_parts_dot_condition_2_du_832_25_;
CalculNombrePartLogementFoyerIn.nombre_personnes_a_charge_in =
calcul_nombre_parts_dot_nombre_personnes_a_charge_;
CalculNombrePartLogementFoyerIn.situation_familiale_calcul_apl_in =
calcul_nombre_parts_dot_situation_familiale_calcul_apl_;
CalculNombrePartLogementFoyerIn.limitation_majoration_personnes_a_charge_in =
calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge_}))) in
let calcul_nombre_parts_dot_n_nombre_parts_d832_25_: decimal = result_.CalculNombrePartLogementFoyer.n_nombre_parts_d832_25 in
let montant_forfaitaire_d832_27_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "montant_forfaitaire_d832_27"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2757; start_column=14;
end_line=2757; end_column=41;
law_headings=["Article 32";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
if condition_2_du_832_25_ then
(money_of_cents_string "1500") else
(money_of_cents_string "2668")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=628; start_column=11; end_line=628; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_multiplicateur_d832_25_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"coefficient_multiplicateur_d832_25"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2610; start_column=14;
end_line=2610; end_column=48;
law_headings=["Article 30";
"Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
if condition_2_du_832_25_ then
(money_of_cents_string "2142091") else
(money_of_cents_string "1339340")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=618; start_column=12; end_line=618; end_column=46;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3755; start_column=14;
end_line=3755; end_column=36;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gte_mon_mon
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d832_24_)
(money_of_cents_string "0")) then
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d832_24_) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=646; start_column=10; end_line=646; end_column=32;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let equivalence_loyer_eligible_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "équivalence_loyer_éligible"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3729; start_column=14;
end_line=3729; end_column=40;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gte_mon_mon redevance_
plafond_equivalence_loyer_eligible_) then
plafond_equivalence_loyer_eligible_ else
redevance_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=621; start_column=12; end_line=621; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let n_nombre_parts_d832_25_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "n_nombre_parts_d832_25"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> n_nombre_parts_d832_25_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3918; start_column=14;
end_line=3918; end_column=36;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_nombre_parts_dot_n_nombre_parts_d832_25_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=620; start_column=21; end_line=620; end_column=43;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let depense_nette_minimale_d832_27_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"dépense_nette_minimale_d832_27"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4119; start_column=14;
end_line=4119; end_column=44;
law_headings=["Article D832-27";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_sub_mon_mon equivalence_loyer_eligible_
allocation_mensuelle_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=625; start_column=11; end_line=625; end_column=41;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let calcul_equivalence_loyer_minimale_dot_date_courante_: date =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=653; start_column=14;
end_line=653; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=653; start_column=14; end_line=653; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3745; start_column=14;
end_line=3745; end_column=75;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3745; start_column=14; end_line=3745; end_column=75;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale.condition_2_du_832_25"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3743; start_column=14;
end_line=3743; end_column=69;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> condition_2_du_832_25_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3743; start_column=14; end_line=3743; end_column=69;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"]
(embed_decimal)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3747; start_column=14;
end_line=3747; end_column=70;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> n_nombre_parts_d832_25_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3747; start_column=14; end_line=3747; end_column=70;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale)
({CalculEquivalenceLoyerMinimaleIn.date_courante_in =
calcul_equivalence_loyer_minimale_dot_date_courante_;
CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in =
calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_;
CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in =
calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_;
CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in =
calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in
let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in
let coefficient_prise_en_charge_d832_25_formule_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"coefficient_prise_en_charge_d832_25_formule"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3931; start_column=5;
end_line=3931; end_column=26;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
o_sub_rat_rat (decimal_of_string "0.9")
(o_div_mon_mon
ressources_menage_arrondies_
(o_mult_mon_rat
coefficient_multiplicateur_d832_25_
n_nombre_parts_d832_25_))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3837; start_column=14;
end_line=3837; end_column=49;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let denominateur_ : money =
(o_sub_mon_mon ressources_menage_arrondies_
(o_mult_mon_rat coefficient_r_d832_25_
n_nombre_parts_d832_25_))
in
(let denominateur_ : money =
( if
(o_lt_mon_mon denominateur_
(money_of_cents_string "0")) then
(money_of_cents_string "0") else denominateur_)
in
(o_sub_rat_rat (decimal_of_string "0.95")
(o_div_mon_mon denominateur_
(o_mult_mon_rat
coefficient_multiplicateur_d832_25_
n_nombre_parts_d832_25_)))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=639; start_column=10; end_line=639; end_column=17;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let abattement_depense_nette_minimale_d832_27_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"abattement_dépense_nette_minimale_d832_27"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4123; start_column=14;
end_line=4123; end_column=55;
law_headings=["Article D832-27";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let depense_nette_minimale_ : money =
((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"dépense_nette_minimale_d832_27"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"dépense_nette_minimale_d832_27"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"dépense_nette_minimale_d832_27"]
depense_nette_minimale_d832_27_)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"dépense_nette_minimale_d832_27"; "input0"]
(embed_money) allocation_mensuelle_)))))))
in
( if
(o_lte_mon_mon depense_nette_minimale_
montant_forfaitaire_d832_27_) then
(o_sub_mon_mon montant_forfaitaire_d832_27_
depense_nette_minimale_) else
(money_of_cents_string "0")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=623; start_column=11; end_line=623; end_column=52;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let equivalence_loyer_minimale_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "équivalence_loyer_minimale"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3741; start_column=14;
end_line=3741; end_column=40;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_equivalence_loyer_minimale_dot_montant_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=630; start_column=12; end_line=630; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_prise_en_charge_d832_25_coeff_arrondi_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"coefficient_prise_en_charge_d832_25_coeff_arrondi"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3948; start_column=5;
end_line=3948; end_column=26;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_sub_rat_rat
coefficient_prise_en_charge_d832_25_formule_
(decimal_of_string "0.005"))
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3858; start_column=14;
end_line=3858; end_column=49;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_sub_rat_rat
coefficient_prise_en_charge_d832_25_formule_
(decimal_of_string "0.005"))
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=640; start_column=10; end_line=640; end_column=23;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_abattement_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_abattement"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3769; start_column=14;
end_line=3769; end_column=36;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"]
traitement_aide_finale_minoration_forfaitaire_)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire";
"input0"] (embed_money) aide_finale_)))))))
in
(let aide_finale_ : money =
(o_sub_mon_mon aide_finale_ ((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"abattement_dépense_nette_minimale_d832_27"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"abattement_dépense_nette_minimale_d832_27";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"abattement_dépense_nette_minimale_d832_27"]
abattement_depense_nette_minimale_d832_27_)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"abattement_dépense_nette_minimale_d832_27";
"input0"] (embed_money)
aide_finale_))))))))
in
( if
(o_gte_mon_mon aide_finale_
(money_of_cents_string "0")) then
aide_finale_ else (money_of_cents_string "0"))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=647; start_column=10; end_line=647; end_column=20;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_prise_en_charge_d832_25_seuil_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"coefficient_prise_en_charge_d832_25_seuil"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3954; start_column=5;
end_line=3954; end_column=26;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_2_du_832_25_))
(fun (_: unit) ->
if
(o_gte_rat_rat
coefficient_prise_en_charge_d832_25_coeff_arrondi_
(decimal_of_string "0.9")) then
(decimal_of_string "0.9") else
coefficient_prise_en_charge_d832_25_coeff_arrondi_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3861; start_column=14;
end_line=3861; end_column=49;
law_headings=["Article D832-25";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gte_rat_rat
coefficient_prise_en_charge_d832_25_coeff_arrondi_
(decimal_of_string "0.95")) then
(decimal_of_string "0.95") else
coefficient_prise_en_charge_d832_25_coeff_arrondi_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=641; start_column=10; end_line=641; end_column=15;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_contributions_sociales_arrondi_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3783; start_column=14;
end_line=3783; end_column=36;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_abattement"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_abattement";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_abattement"]
traitement_aide_finale_abattement_)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_abattement";
"input0"] (embed_money) aide_finale_)))))))
in
(let crds_ : money = ((log_end_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"] ((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "output"] (embed_money)
((log_begin_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"]
contributions_sociales_dot_montant_)
((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "input0"] (embed_money)
aide_finale_)))))))
in
(let aide_finale_moins_crds_arrondie_ : money =
(o_round_mon
(o_sub_mon_mon
(o_sub_mon_mon aide_finale_ crds_)
(money_of_cents_string "50")))
in
( if
(o_gte_mon_mon
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
(money_of_cents_string "0")) then
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
else (money_of_cents_string "0")))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=648; start_column=10; end_line=648; end_column=40;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer"; "aide_finale_formule"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3708; start_column=14;
end_line=3708; end_column=33;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money =
(o_mult_mon_rat
(o_sub_mon_mon equivalence_loyer_eligible_
equivalence_loyer_minimale_)
coefficient_prise_en_charge_d832_25_seuil_)
in
( if
(o_lt_mon_mon aide_finale_ (money_of_cents_string
"0")) then (money_of_cents_string "0") else
aide_finale_))))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=643; start_column=12; end_line=643; end_column=31;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_montant_minimal_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_montant_minimal"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3804; start_column=14;
end_line=3804; end_column=36;
law_headings=["Article D832-24";
"Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"]
traitement_aide_finale_contributions_sociales_arrondi_)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon aide_finale_
montant_minimal_aide_d823_24_) then
(money_of_cents_string "0") else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=649; start_column=10; end_line=649; end_column=25;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=657; start_column=13;
end_line=657; end_column=42;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=657; start_column=13;
end_line=657; end_column=42;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
{CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25 =
coefficient_multiplicateur_d832_25_;
CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25 =
coefficient_r_d832_25_;
CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25 =
n_nombre_parts_d832_25_;
CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible =
equivalence_loyer_eligible_;
CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible =
plafond_equivalence_loyer_eligible_;
CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale =
equivalence_loyer_minimale_;
CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25 =
coefficient_prise_en_charge_d832_25_seuil_;
CalculAidePersonnaliseeLogementFoyer.aide_finale_formule =
aide_finale_formule_;
CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale =
traitement_aide_finale_montant_minimal_}
let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personnalisee_logement_accession_propriete_in: CalculAidePersonnaliseeLogementAccessionProprieteIn.t) : CalculAidePersonnaliseeLogementAccessionPropriete.t =
let mensualite_principale_: money = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.mensualite_principale_in in
let ressources_menage_arrondies_: money = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.ressources_menage_arrondies_in in
let nombre_personnes_a_charge_: integer = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_familiale_calcul_apl_in in
let type_travaux_logement_: TypeTravauxLogementD83215.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.type_travaux_logement_in in
let date_signature_pret_: date = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_signature_pret_in in
let local_habite_premiere_fois_beneficiaire_: bool = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in in
let date_entree_logement_: date = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_entree_logement_in in
let copropriete_: bool = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.copropriete_in in
let situation_r822_11_13_17_: bool = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_r822_11_13_17_in in
let zone_: ZoneDHabitation.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.zone_in in
let type_pret_: TypePret.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.type_pret_in in
let anciennete_logement_: NeufOuAncien.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.anciennete_logement_in in
let date_courante_: date = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_courante_in in
let taux_francs_vers_euros_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"taux_francs_vers_euros"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=327; start_column=14;
end_line=327; end_column=36;
law_headings=["Article premier";
"Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]}
true))
(fun (_: unit) ->
o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "6.55957")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=713; start_column=11; end_line=713; end_column=33;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3253; start_column=14;
end_line=3253; end_column=59;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3253; start_column=14; end_line=3253; end_column=59;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_nombre_parts.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3255; start_column=14;
end_line=3255; end_column=64;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3255; start_column=14; end_line=3255; end_column=64;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculNombrePartsAccessionPropriete.t = (log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_nombre_parts"; "CalculNombrePartsAccessionPropriété"]
((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_nombre_parts"; "CalculNombrePartsAccessionPropriété"]
calcul_nombre_parts_accession_propriete)
({CalculNombrePartsAccessionProprieteIn.nombre_personnes_a_charge_in =
calcul_nombre_parts_dot_nombre_personnes_a_charge_;
CalculNombrePartsAccessionProprieteIn.situation_familiale_calcul_apl_in =
calcul_nombre_parts_dot_situation_familiale_calcul_apl_}))) in
let calcul_nombre_parts_dot_n_nombre_parts_d832_11_: decimal = result_.CalculNombrePartsAccessionPropriete.n_nombre_parts_d832_11 in
let contributions_sociales_dot_date_courante_: date =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"contributions_sociales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=730; start_column=14;
end_line=730; end_column=50;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=730; start_column=14; end_line=730; end_column=50;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"]
contributions_sociales_aides_personnelle_logement)
({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in =
contributions_sociales_dot_date_courante_}))) in
let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in
let taux_tranche_superieure_d832_15_1_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"taux_tranche_supérieure_d832_15_1"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2410; start_column=14;
end_line=2410; end_column=47;
law_headings=["Article 23";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> decimal_of_string "0.416"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=712; start_column=11; end_line=712; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let taux_tranche_inferieure_d832_15_1_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"taux_tranche_inférieure_d832_15_1"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2409; start_column=14;
end_line=2409; end_column=47;
law_headings=["Article 23";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> decimal_of_string "0.208"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=711; start_column=11; end_line=711; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_limite_tranches_d832_15_1_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"montant_limite_tranches_d832_15_1"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2408; start_column=14;
end_line=2408; end_column=47;
law_headings=["Article 23";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "560085"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=710; start_column=11; end_line=710; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_multiplicateur_d832_18_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_multiplicateur_d832_18"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2488; start_column=14;
end_line=2488; end_column=48;
law_headings=["Article 26";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> decimal_of_string "16.25"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=709; start_column=11; end_line=709; end_column=45;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_multiplicateur_d832_11_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_multiplicateur_d832_11"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2392; start_column=14;
end_line=2392; end_column=48;
law_headings=["Article 22";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "2211133"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=708; start_column=11; end_line=708; end_column=45;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_multiplicateur_d832_17_3_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_multiplicateur_d832_17_3"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2469; start_column=14;
end_line=2469; end_column=50;
law_headings=["Article 25";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
match anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
( if
(o_lte_dat_dat date_signature_pret_
(date_of_numbers (1998) (10) (1))) then
(decimal_of_string "0.0226") else
(decimal_of_string "0.0234"))
| NeufOuAncien.Ancien ameliore_par_occupant_ ->
(match ameliore_par_occupant_
with
| AmelioreParOccupant.Oui _ ->
(decimal_of_string "0.0172")
| AmelioreParOccupant.Non _ ->
( if
(o_lte_dat_dat date_signature_pret_
(date_of_numbers (1998) (10) (1)))
then (decimal_of_string "0.0226") else
(decimal_of_string "0.0234")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=707; start_column=11; end_line=707; end_column=47;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_minimal_aide_d832_10_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"montant_minimal_aide_d832_10"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2382; start_column=14;
end_line=2382; end_column=42;
law_headings=["Article 21";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1000"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=706; start_column=11; end_line=706; end_column=39;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d832_10_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"montant_forfaitaire_d832_10"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2370; start_column=14;
end_line=2370; end_column=41;
law_headings=["Article 20";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=705; start_column=11; end_line=705; end_column=38;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_charges_d832_10_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"montant_forfaitaire_charges_d832_10"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2441; start_column=7;
end_line=2441; end_column=18;
law_headings=["Article 24";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2805")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5612"))
(o_mult_mon_rat (money_of_cents_string
"1272")
(o_torat_int nombre_personnes_a_charge_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1414; start_column=7;
end_line=1414; end_column=18;
law_headings=["Article 24";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2710")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5422"))
(o_mult_mon_rat (money_of_cents_string
"1229")
(o_torat_int nombre_personnes_a_charge_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2494; start_column=7;
end_line=2494; end_column=18;
law_headings=["Article 24";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2699")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5399"))
(o_mult_mon_rat (money_of_cents_string
"1224")
(o_torat_int nombre_personnes_a_charge_))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2358; start_column=29;
end_line=2358; end_column=64;
law_headings=["Article 19";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5612")
(o_mult_mon_rat (money_of_cents_string "1272")
(o_torat_int nombre_personnes_a_charge_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1380; start_column=29;
end_line=1380; end_column=64;
law_headings=["Article 19";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5422")
(o_mult_mon_rat (money_of_cents_string "1229")
(o_torat_int nombre_personnes_a_charge_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2460; start_column=29;
end_line=2460; end_column=64;
law_headings=["Article 19";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "5399")
(o_mult_mon_rat (money_of_cents_string "1224")
(o_torat_int nombre_personnes_a_charge_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=704; start_column=11; end_line=704; end_column=46;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let calcul_plafond_mensualite_d832_10_3_: date -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"] (unembeddable)
(fun (date_signature_pret_: date) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=830; start_column=5;
end_line=845; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2023) (1) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (1992) (6) (30)))
(o_and
(o_lte_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien ameliore_par_occupant_ ->
(match
ameliore_par_occupant_
with
| AmelioreParOccupant.Oui _ ->
true
| AmelioreParOccupant.Non _ ->
false))
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"86900")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"97100")) else
(o_add_mon_mon
(money_of_cents_string
"107300")
(o_mult_mon_rat
(money_of_cents_string
"10200")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
taux_francs_vers_euros_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1086; start_column=5;
end_line=1090; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (1992) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"208500")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"251500")) else
(o_add_mon_mon
(money_of_cents_string
"294500")
(o_mult_mon_rat
(money_of_cents_string
"43000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"186000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"223900")) else
(o_add_mon_mon
(money_of_cents_string
"261800")
(o_mult_mon_rat
(money_of_cents_string
"37900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"173600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"208200")) else
(o_add_mon_mon
(money_of_cents_string
"242800")
(o_mult_mon_rat
(money_of_cents_string
"34600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1119; start_column=5;
end_line=1123; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (1992) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"167800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"202500")) else
(o_add_mon_mon
(money_of_cents_string
"237200")
(o_mult_mon_rat
(money_of_cents_string
"34700")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"149600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"180100")) else
(o_add_mon_mon
(money_of_cents_string
"210600")
(o_mult_mon_rat
(money_of_cents_string
"30500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"139700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"167600")) else
(o_add_mon_mon
(money_of_cents_string
"195500")
(o_mult_mon_rat
(money_of_cents_string
"27900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1152; start_column=5;
end_line=1156; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2000) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"198100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"239000")) else
(o_add_mon_mon
(money_of_cents_string
"279900")
(o_mult_mon_rat
(money_of_cents_string
"40900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"176800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"212800")) else
(o_add_mon_mon
(money_of_cents_string
"248800")
(o_mult_mon_rat
(money_of_cents_string
"36000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"165000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"197900")) else
(o_add_mon_mon
(money_of_cents_string
"230800")
(o_mult_mon_rat
(money_of_cents_string
"32900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1185; start_column=5;
end_line=1189; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2000) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"159500")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"192500")) else
(o_add_mon_mon
(money_of_cents_string
"225500")
(o_mult_mon_rat
(money_of_cents_string
"33000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"142200")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"171200")) else
(o_add_mon_mon
(money_of_cents_string
"200200")
(o_mult_mon_rat
(money_of_cents_string
"29000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"132800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"159300")) else
(o_add_mon_mon
(money_of_cents_string
"185800")
(o_mult_mon_rat
(money_of_cents_string
"26500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1218; start_column=5;
end_line=1222; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2000) (6) (30)))
(o_and
(o_lte_dat_dat
date_signature_pret_
(date_of_numbers (2001) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"200100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"141400")) else
(o_add_mon_mon
(money_of_cents_string
"182700")
(o_mult_mon_rat
(money_of_cents_string
"41300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"178600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"215000")) else
(o_add_mon_mon
(money_of_cents_string
"251400")
(o_mult_mon_rat
(money_of_cents_string
"36400")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"166700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"199900")) else
(o_add_mon_mon
(money_of_cents_string
"233100")
(o_mult_mon_rat
(money_of_cents_string
"33200")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1251; start_column=5;
end_line=1255; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2000) (6) (30)))
(o_and
(o_lte_dat_dat
date_signature_pret_
(date_of_numbers (2001) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"161100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"194400")) else
(o_add_mon_mon
(money_of_cents_string
"227700")
(o_mult_mon_rat
(money_of_cents_string
"33300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"143600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"172900")) else
(o_add_mon_mon
(money_of_cents_string
"202200")
(o_mult_mon_rat
(money_of_cents_string
"29300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"134100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"160900")) else
(o_add_mon_mon
(money_of_cents_string
"187700")
(o_mult_mon_rat
(money_of_cents_string
"26800")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1284; start_column=5;
end_line=1288; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2001) (7) (1)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2001) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"202500")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"244300")) else
(o_add_mon_mon
(money_of_cents_string
"286100")
(o_mult_mon_rat
(money_of_cents_string
"41800")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"180700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"217500")) else
(o_add_mon_mon
(money_of_cents_string
"254300")
(o_mult_mon_rat
(money_of_cents_string
"36800")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"168700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"202300")) else
(o_add_mon_mon
(money_of_cents_string
"235900")
(o_mult_mon_rat
(money_of_cents_string
"33600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1317; start_column=5;
end_line=1321; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2002) (1) (1)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2002) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30871")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37243")) else
(o_add_mon_mon
(money_of_cents_string "43615")
(o_mult_mon_rat
(money_of_cents_string
"6372")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"27548")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33148")) else
(o_add_mon_mon
(money_of_cents_string "38768")
(o_mult_mon_rat
(money_of_cents_string
"5610")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25718")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30840")) else
(o_add_mon_mon
(money_of_cents_string "35962")
(o_mult_mon_rat
(money_of_cents_string
"5122")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1350; start_column=5;
end_line=1354; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2001) (7) (1)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2001) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"163000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"196700")) else
(o_add_mon_mon
(money_of_cents_string
"230400")
(o_mult_mon_rat
(money_of_cents_string
"33700")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"145300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"175000")) else
(o_add_mon_mon
(money_of_cents_string
"204700")
(o_mult_mon_rat
(money_of_cents_string
"29700")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"135700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"162800")) else
(o_add_mon_mon
(money_of_cents_string
"189900")
(o_mult_mon_rat
(money_of_cents_string
"27100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1383; start_column=5;
end_line=1387; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2002) (1) (1)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2002) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24849")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29987")) else
(o_add_mon_mon
(money_of_cents_string "35125")
(o_mult_mon_rat
(money_of_cents_string
"5138")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"22151")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"26679")) else
(o_add_mon_mon
(money_of_cents_string "31207")
(o_mult_mon_rat
(money_of_cents_string
"4528")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"20687")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"24818")) else
(o_add_mon_mon
(money_of_cents_string "28949")
(o_mult_mon_rat
(money_of_cents_string
"4131")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1416; start_column=5;
end_line=1420; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2002) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2003) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31241")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37689")) else
(o_add_mon_mon
(money_of_cents_string "44137")
(o_mult_mon_rat
(money_of_cents_string
"6448")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"27879")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33556")) else
(o_add_mon_mon
(money_of_cents_string "39233")
(o_mult_mon_rat
(money_of_cents_string
"5677")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26027")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31210")) else
(o_add_mon_mon
(money_of_cents_string "36393")
(o_mult_mon_rat
(money_of_cents_string
"5183")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1449; start_column=5;
end_line=1453; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2002) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2003) (6) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25147")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30347")) else
(o_add_mon_mon
(money_of_cents_string "35547")
(o_mult_mon_rat
(money_of_cents_string
"5200")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"22417")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"26999")) else
(o_add_mon_mon
(money_of_cents_string "31581")
(o_mult_mon_rat
(money_of_cents_string
"4582")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"20935")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"25116")) else
(o_add_mon_mon
(money_of_cents_string "29297")
(o_mult_mon_rat
(money_of_cents_string
"4181")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1482; start_column=5;
end_line=1486; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2003) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2005) (8) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31616")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"38141")) else
(o_add_mon_mon
(money_of_cents_string "44666")
(o_mult_mon_rat
(money_of_cents_string
"6525")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28214")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33959")) else
(o_add_mon_mon
(money_of_cents_string "39704")
(o_mult_mon_rat
(money_of_cents_string
"5745")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26339")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31584")) else
(o_add_mon_mon
(money_of_cents_string "36829")
(o_mult_mon_rat
(money_of_cents_string
"5245")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1515; start_column=5;
end_line=1519; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2003) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2005) (8) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25449")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30711")) else
(o_add_mon_mon
(money_of_cents_string "35973")
(o_mult_mon_rat
(money_of_cents_string
"5262")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"22686")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"27323")) else
(o_add_mon_mon
(money_of_cents_string "31960")
(o_mult_mon_rat
(money_of_cents_string
"4637")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"21186")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"25417")) else
(o_add_mon_mon
(money_of_cents_string "29648")
(o_mult_mon_rat
(money_of_cents_string
"4231")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1548; start_column=5;
end_line=1552; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2005) (8) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2006) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"32185")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"38827")) else
(o_add_mon_mon
(money_of_cents_string "45469")
(o_mult_mon_rat
(money_of_cents_string
"6642")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28722")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34570")) else
(o_add_mon_mon
(money_of_cents_string "40418")
(o_mult_mon_rat
(money_of_cents_string
"5848")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26813")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"32152")) else
(o_add_mon_mon
(money_of_cents_string "37491")
(o_mult_mon_rat
(money_of_cents_string
"5339")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1581; start_column=5;
end_line=1585; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2005) (8) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2006) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25907")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31264")) else
(o_add_mon_mon
(money_of_cents_string "36621")
(o_mult_mon_rat
(money_of_cents_string
"5357")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"23094")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"27814")) else
(o_add_mon_mon
(money_of_cents_string "32534")
(o_mult_mon_rat
(money_of_cents_string
"4720")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"21567")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"25874")) else
(o_add_mon_mon
(money_of_cents_string "30181")
(o_mult_mon_rat
(money_of_cents_string
"4307")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1614; start_column=5;
end_line=1618; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2006) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2007) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"33086")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"39914")) else
(o_add_mon_mon
(money_of_cents_string "46742")
(o_mult_mon_rat
(money_of_cents_string
"6828")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29526")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35538")) else
(o_add_mon_mon
(money_of_cents_string "41550")
(o_mult_mon_rat
(money_of_cents_string
"6012")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"27564")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33052")) else
(o_add_mon_mon
(money_of_cents_string "38541")
(o_mult_mon_rat
(money_of_cents_string
"5488")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1647; start_column=5;
end_line=1651; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2006) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2007) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26632")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"32139")) else
(o_add_mon_mon
(money_of_cents_string "37646")
(o_mult_mon_rat
(money_of_cents_string
"5507")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"23741")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"28593")) else
(o_add_mon_mon
(money_of_cents_string "33445")
(o_mult_mon_rat
(money_of_cents_string
"4852")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"22171")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36598")) else
(o_add_mon_mon
(money_of_cents_string "31026")
(o_mult_mon_rat
(money_of_cents_string
"4428")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1680; start_column=5;
end_line=1684; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2007) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2008) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"33999")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"41016")) else
(o_add_mon_mon
(money_of_cents_string "48032")
(o_mult_mon_rat
(money_of_cents_string
"7016")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30341")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36519")) else
(o_add_mon_mon
(money_of_cents_string "42697")
(o_mult_mon_rat
(money_of_cents_string
"6178")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28325")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33964")) else
(o_add_mon_mon
(money_of_cents_string "39605")
(o_mult_mon_rat
(money_of_cents_string
"5639")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1713; start_column=5;
end_line=1717; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2007) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2008) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"27367")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"33026")) else
(o_add_mon_mon
(money_of_cents_string "38685")
(o_mult_mon_rat
(money_of_cents_string
"5659")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24396")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29382")) else
(o_add_mon_mon
(money_of_cents_string "34368")
(o_mult_mon_rat
(money_of_cents_string
"4986")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"22783")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"27332")) else
(o_add_mon_mon
(money_of_cents_string "31882")
(o_mult_mon_rat
(money_of_cents_string
"4550")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1746; start_column=5;
end_line=1750; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2008) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2009) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"35002")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"42226")) else
(o_add_mon_mon
(money_of_cents_string "49449")
(o_mult_mon_rat
(money_of_cents_string
"7223")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31236")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37596")) else
(o_add_mon_mon
(money_of_cents_string "43957")
(o_mult_mon_rat
(money_of_cents_string
"6360")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29161")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34966")) else
(o_add_mon_mon
(money_of_cents_string "40773")
(o_mult_mon_rat
(money_of_cents_string
"5805")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1779; start_column=5;
end_line=1783; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2008) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2009) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28174")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34000")) else
(o_add_mon_mon
(money_of_cents_string "39826")
(o_mult_mon_rat
(money_of_cents_string
"5826")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25116")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30249")) else
(o_add_mon_mon
(money_of_cents_string "35382")
(o_mult_mon_rat
(money_of_cents_string
"5133")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"23455")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"28138")) else
(o_add_mon_mon
(money_of_cents_string "32823")
(o_mult_mon_rat
(money_of_cents_string
"4684")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1812; start_column=5;
end_line=1816; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2009) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2010) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"35114")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"42361")) else
(o_add_mon_mon
(money_of_cents_string "49607")
(o_mult_mon_rat
(money_of_cents_string
"7246")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31336")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37716")) else
(o_add_mon_mon
(money_of_cents_string "44098")
(o_mult_mon_rat
(money_of_cents_string
"6380")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29254")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35078")) else
(o_add_mon_mon
(money_of_cents_string "40903")
(o_mult_mon_rat
(money_of_cents_string
"5824")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1845; start_column=5;
end_line=1849; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2009) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2010) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28264")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34109")) else
(o_add_mon_mon
(money_of_cents_string "39953")
(o_mult_mon_rat
(money_of_cents_string
"5845")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25196")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30346")) else
(o_add_mon_mon
(money_of_cents_string "35495")
(o_mult_mon_rat
(money_of_cents_string
"5149")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"23530")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"28228")) else
(o_add_mon_mon
(money_of_cents_string "32928")
(o_mult_mon_rat
(money_of_cents_string
"4699")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1878; start_column=5;
end_line=1882; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2010) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2011) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"35500")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"42827")) else
(o_add_mon_mon
(money_of_cents_string "50153")
(o_mult_mon_rat
(money_of_cents_string
"7326")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31681")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"38131")) else
(o_add_mon_mon
(money_of_cents_string "44583")
(o_mult_mon_rat
(money_of_cents_string
"6450")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29576")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35464")) else
(o_add_mon_mon
(money_of_cents_string "41353")
(o_mult_mon_rat
(money_of_cents_string
"5888")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1911; start_column=5;
end_line=1915; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2010) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2011) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28575")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34484")) else
(o_add_mon_mon
(money_of_cents_string "40392")
(o_mult_mon_rat
(money_of_cents_string
"5909")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25473")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30680")) else
(o_add_mon_mon
(money_of_cents_string "35885")
(o_mult_mon_rat
(money_of_cents_string
"5206")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"23789")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"28539")) else
(o_add_mon_mon
(money_of_cents_string "33290")
(o_mult_mon_rat
(money_of_cents_string
"4751")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1944; start_column=5;
end_line=1948; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2011) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2012) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"35855")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"43255")) else
(o_add_mon_mon
(money_of_cents_string "50655")
(o_mult_mon_rat
(money_of_cents_string
"7399")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31998")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"38512")) else
(o_add_mon_mon
(money_of_cents_string "45029")
(o_mult_mon_rat
(money_of_cents_string
"6515")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35819")) else
(o_add_mon_mon
(money_of_cents_string "41767")
(o_mult_mon_rat
(money_of_cents_string
"5947")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=1977; start_column=5;
end_line=1981; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2011) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2012) (12) (31)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"28861")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"34829")) else
(o_add_mon_mon
(money_of_cents_string "40796")
(o_mult_mon_rat
(money_of_cents_string
"5968")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"25728")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"30987")) else
(o_add_mon_mon
(money_of_cents_string "36244")
(o_mult_mon_rat
(money_of_cents_string
"5258")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24027")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"28824")) else
(o_add_mon_mon
(money_of_cents_string "33623")
(o_mult_mon_rat
(money_of_cents_string
"4799")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2010; start_column=5;
end_line=2014; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2012) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2014) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"36626")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"44185")) else
(o_add_mon_mon
(money_of_cents_string "51744")
(o_mult_mon_rat
(money_of_cents_string
"7558")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"32686")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"39340")) else
(o_add_mon_mon
(money_of_cents_string "45997")
(o_mult_mon_rat
(money_of_cents_string
"6655")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30514")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36589")) else
(o_add_mon_mon
(money_of_cents_string "42665")
(o_mult_mon_rat
(money_of_cents_string
"6075")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2043; start_column=5;
end_line=2047; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2012) (12) (31)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2014) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29482")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35578")) else
(o_add_mon_mon
(money_of_cents_string "41673")
(o_mult_mon_rat
(money_of_cents_string
"6096")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26281")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31653")) else
(o_add_mon_mon
(money_of_cents_string "37023")
(o_mult_mon_rat
(money_of_cents_string
"5371")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24544")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29444")) else
(o_add_mon_mon
(money_of_cents_string "34346")
(o_mult_mon_rat
(money_of_cents_string
"4902")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2076; start_column=5;
end_line=2080; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2014) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2015) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"36835")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"44437")) else
(o_add_mon_mon
(money_of_cents_string "52039")
(o_mult_mon_rat
(money_of_cents_string
"7601")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"32872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"39564")) else
(o_add_mon_mon
(money_of_cents_string "46259")
(o_mult_mon_rat
(money_of_cents_string
"6693")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30688")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36798")) else
(o_add_mon_mon
(money_of_cents_string "42908")
(o_mult_mon_rat
(money_of_cents_string
"6110")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2109; start_column=5;
end_line=2113; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2014) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2015) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29650")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35781")) else
(o_add_mon_mon
(money_of_cents_string "41911")
(o_mult_mon_rat
(money_of_cents_string
"6131")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26431")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31833")) else
(o_add_mon_mon
(money_of_cents_string "37234")
(o_mult_mon_rat
(money_of_cents_string
"5402")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24684")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29612")) else
(o_add_mon_mon
(money_of_cents_string "34542")
(o_mult_mon_rat
(money_of_cents_string
"4930")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2142; start_column=5;
end_line=2146; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2015) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2017) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"36864")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"44473")) else
(o_add_mon_mon
(money_of_cents_string "52081")
(o_mult_mon_rat
(money_of_cents_string
"7607")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"32898")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"39596")) else
(o_add_mon_mon
(money_of_cents_string "46296")
(o_mult_mon_rat
(money_of_cents_string
"6698")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30713")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36827")) else
(o_add_mon_mon
(money_of_cents_string "42942")
(o_mult_mon_rat
(money_of_cents_string
"6115")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2175; start_column=5;
end_line=2179; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2015) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2017) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29674")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"35810")) else
(o_add_mon_mon
(money_of_cents_string "41945")
(o_mult_mon_rat
(money_of_cents_string
"6136")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26452")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"31858")) else
(o_add_mon_mon
(money_of_cents_string "37264")
(o_mult_mon_rat
(money_of_cents_string
"5406")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24704")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29636")) else
(o_add_mon_mon
(money_of_cents_string "34570")
(o_mult_mon_rat
(money_of_cents_string
"4934")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2208; start_column=5;
end_line=2212; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2017) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2019) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"37140")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"44807")) else
(o_add_mon_mon
(money_of_cents_string "52472")
(o_mult_mon_rat
(money_of_cents_string
"7664")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"33145")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"39893")) else
(o_add_mon_mon
(money_of_cents_string "46643")
(o_mult_mon_rat
(money_of_cents_string
"6748")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"30943")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37103")) else
(o_add_mon_mon
(money_of_cents_string "43264")
(o_mult_mon_rat
(money_of_cents_string
"6161")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2241; start_column=5;
end_line=2245; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2017) (9) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (2019) (9) (30)))
(o_and
(match
anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false))))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29897")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36079")) else
(o_add_mon_mon
(money_of_cents_string "42260")
(o_mult_mon_rat
(money_of_cents_string
"6182")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26650")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"32097")) else
(o_add_mon_mon
(money_of_cents_string "37543")
(o_mult_mon_rat
(money_of_cents_string
"5447")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24889")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29858")) else
(o_add_mon_mon
(money_of_cents_string "34829")
(o_mult_mon_rat
(money_of_cents_string
"4971")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2274; start_column=5;
end_line=2277; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2019) (9) (30)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ -> false)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"37252")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"44941")) else
(o_add_mon_mon
(money_of_cents_string "52629")
(o_mult_mon_rat
(money_of_cents_string
"7687")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"33244")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"40013")) else
(o_add_mon_mon
(money_of_cents_string "46783")
(o_mult_mon_rat
(money_of_cents_string
"6768")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"31036")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"37215")) else
(o_add_mon_mon
(money_of_cents_string "43394")
(o_mult_mon_rat
(money_of_cents_string
"6179")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2306; start_column=5;
end_line=2309; end_column=36;
law_headings=["Article 18";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_and
(o_gte_dat_dat
date_signature_pret_
(date_of_numbers (2019) (9) (30)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
true
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ -> false)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"29986")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"36187")) else
(o_add_mon_mon
(money_of_cents_string "42386")
(o_mult_mon_rat
(money_of_cents_string
"6201")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"26730")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"32193")) else
(o_add_mon_mon
(money_of_cents_string "37656")
(o_mult_mon_rat
(money_of_cents_string
"5463")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"24964")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"29948")) else
(o_add_mon_mon
(money_of_cents_string "34934")
(o_mult_mon_rat
(money_of_cents_string
"4986")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=638; start_column=5;
end_line=641; end_column=33;
law_headings=["Article 17";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1992) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ -> true
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ -> false)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"208500")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"251500")) else
(o_add_mon_mon
(money_of_cents_string
"294500")
(o_mult_mon_rat
(money_of_cents_string
"43000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"186000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"223900")) else
(o_add_mon_mon
(money_of_cents_string
"261800")
(o_mult_mon_rat
(money_of_cents_string
"37900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"173600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"208200")) else
(o_add_mon_mon
(money_of_cents_string
"242800")
(o_mult_mon_rat
(money_of_cents_string
"35600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=683; start_column=5;
end_line=686; end_column=33;
law_headings=["Article 17";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1992) (6) (30)))
(o_and
(o_lt_dat_dat
date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
(match type_pret_
with
| TypePret.D331_32 _ -> true
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ -> false)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"167800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"202500")) else
(o_add_mon_mon
(money_of_cents_string
"237200")
(o_mult_mon_rat
(money_of_cents_string
"34700")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"149600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"180100")) else
(o_add_mon_mon
(money_of_cents_string
"210600")
(o_mult_mon_rat
(money_of_cents_string
"30500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"139700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"167600")) else
(o_add_mon_mon
(money_of_cents_string
"195500")
(o_mult_mon_rat
(money_of_cents_string
"27900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=729; start_column=5;
end_line=731; end_column=33;
law_headings=["Article 17";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ -> true
| NeufOuAncien.Ancien _ ->
false)
(match type_pret_
with
| TypePret.D331_32 _ -> true
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ -> false
| TypePret.D331_76_1 _ -> false
| TypePret.Autre _ -> false))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"184000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"220000")) else
(o_add_mon_mon
(money_of_cents_string
"260000")
(o_mult_mon_rat
(money_of_cents_string
"38000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"164200")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"197700")) else
(o_add_mon_mon
(money_of_cents_string
"231200")
(o_mult_mon_rat
(money_of_cents_string
"33500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"153200")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"183700")) else
(o_add_mon_mon
(money_of_cents_string
"214200")
(o_mult_mon_rat
(money_of_cents_string
"30500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=773; start_column=5;
end_line=775; end_column=33;
law_headings=["Article 17";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(o_and
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1994) (11) (27)))
(o_and
(match anciennete_logement_
with
| NeufOuAncien.Neuf _ -> false
| NeufOuAncien.Ancien _ -> true)
(match type_pret_
with
| TypePret.D331_32 _ -> true
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ -> false
| TypePret.D331_76_1 _ -> false
| TypePret.Autre _ -> false))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"148100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"178700")) else
(o_add_mon_mon
(money_of_cents_string
"209300")
(o_mult_mon_rat
(money_of_cents_string
"30600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"132000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"158900")) else
(o_add_mon_mon
(money_of_cents_string
"185800")
(o_mult_mon_rat
(money_of_cents_string
"26900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1"))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "0"))
then
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"123300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"147900")) else
(o_add_mon_mon
(money_of_cents_string
"172500")
(o_mult_mon_rat
(money_of_cents_string
"24600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"1")))))))
taux_francs_vers_euros_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=692; start_column=55;
end_line=692; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
false)) (fun (_: unit) -> raise EmptyError))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=692; start_column=11; end_line=692; end_column=46;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let n_nombre_parts_d832_11_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"n_nombre_parts_d832_11"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3251; start_column=14;
end_line=3251; end_column=36;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_nombre_parts_dot_n_nombre_parts_d832_11_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=694; start_column=11; end_line=694; end_column=33;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let ressources_menage_avec_d832_18_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"ressources_ménage_avec_d832_18"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3567; start_column=5;
end_line=3567; end_column=28;
law_headings=["Article D832-18";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
situation_r822_11_13_17_))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3559; start_column=14;
end_line=3559; end_column=44;
law_headings=["Article D832-18";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_lte_mon_mon ressources_menage_arrondies_
(o_mult_mon_rat mensualite_principale_
coefficient_multiplicateur_d832_18_)) then
(o_mult_mon_rat mensualite_principale_
coefficient_multiplicateur_d832_18_) else
ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=703; start_column=11; end_line=703; end_column=41;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3102; start_column=14;
end_line=3102; end_column=36;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gte_mon_mon
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d832_10_)
(money_of_cents_string "0")) then
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d832_10_) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=724; start_column=10; end_line=724; end_column=32;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let depense_nette_minimale_d832_10_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"dépense_nette_minimale_d832_10"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3503; start_column=5;
end_line=3503; end_column=40;
law_headings=["Article D832-17";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1999) (6) (30)))))
(fun (_: unit) ->
o_sub_mon_mon
(o_add_mon_mon mensualite_principale_
montant_forfaitaire_charges_d832_10_)
allocation_mensuelle_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3514; start_column=14;
end_line=3514; end_column=44;
law_headings=["Article D832-17";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_sub_mon_mon mensualite_principale_
allocation_mensuelle_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=699; start_column=11; end_line=699; end_column=41;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_mensualite_d832_10_3_base_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"plafond_mensualité_d832_10_3_base"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3338; start_column=5;
end_line=3338; end_column=44;
law_headings=["Article D832-14";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
local_habite_premiere_fois_beneficiaire_))
(fun (_: unit) ->
(let plafond_signature_ : money =
((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3";
"output"] (embed_money)
((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
calcul_plafond_mensualite_d832_10_3_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3";
"input0"] (embed_date)
date_signature_pret_)))))))
in
(let plafond_entree_ : money =
((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3";
"output"] (embed_money)
((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
calcul_plafond_mensualite_d832_10_3_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3";
"input0"] (embed_date)
date_entree_logement_)))))))
in
( if
(o_lt_mon_mon plafond_signature_
plafond_entree_) then plafond_entree_
else plafond_signature_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3318; start_column=14;
end_line=3318; end_column=42;
law_headings=["Article D832-14";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> (log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"]
calcul_plafond_mensualite_d832_10_3_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_plafond_mensualité_d832_10_3"; "input0"]
(embed_date) date_signature_pret_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=690; start_column=10; end_line=690; end_column=14;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let calcul_equivalence_loyer_minimale_dot_date_courante_: date =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=731; start_column=14;
end_line=731; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=731; start_column=14; end_line=731; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3459; start_column=14;
end_line=3459; end_column=75;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3459; start_column=14; end_line=3459; end_column=75;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.condition_2_du_832_25"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3458; start_column=14;
end_line=3458; end_column=69;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3458; start_column=14; end_line=3458; end_column=69;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal =
try ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"]
(embed_decimal)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3461; start_column=14;
end_line=3461; end_column=70;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> n_nombre_parts_d832_11_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3461; start_column=14; end_line=3461; end_column=70;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale)
({CalculEquivalenceLoyerMinimaleIn.date_courante_in =
calcul_equivalence_loyer_minimale_dot_date_courante_;
CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in =
calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_;
CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in =
calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_;
CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in =
calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in
let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in
let coefficient_prise_en_charge_d832_10_formule_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_prise_en_charge_d832_10_formule"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3166; start_column=14;
end_line=3166; end_column=49;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_sub_rat_rat (decimal_of_string "0.95")
(o_div_mon_mon ressources_menage_arrondies_
(o_mult_mon_rat
coefficient_multiplicateur_d832_11_
n_nombre_parts_d832_11_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=696; start_column=10; end_line=696; end_column=17;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let abattement_depense_nette_minimale_d832_10_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"abattement_dépense_nette_minimale_d832_10"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3525; start_column=14;
end_line=3525; end_column=55;
law_headings=["Article D832-17";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let depense_nette_minimale_ : money =
((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"dépense_nette_minimale_d832_10"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"dépense_nette_minimale_d832_10"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"dépense_nette_minimale_d832_10"]
depense_nette_minimale_d832_10_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"dépense_nette_minimale_d832_10"; "input0"]
(embed_money) allocation_mensuelle_)))))))
in
( if
(o_lte_mon_mon depense_nette_minimale_
(o_mult_mon_rat
ressources_menage_avec_d832_18_
coefficient_multiplicateur_d832_17_3_))
then
(o_sub_mon_mon
(o_mult_mon_rat
ressources_menage_avec_d832_18_
coefficient_multiplicateur_d832_17_3_)
depense_nette_minimale_) else
(money_of_cents_string "0")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=701; start_column=11; end_line=701; end_column=52;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_mensualite_d832_10_3_coproprietaires_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"plafond_mensualité_d832_10_3_copropriétaires"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2474; start_column=14;
end_line=2474; end_column=42;
law_headings=["Article 24";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))))
(fun (_: unit) ->
if copropriete_ then
(o_mult_mon_rat
plafond_mensualite_d832_10_3_base_
(decimal_of_string "0.75"))
else
plafond_mensualite_d832_10_3_base_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1394; start_column=14;
end_line=1394; end_column=42;
law_headings=["Article 24";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if copropriete_ then
(o_mult_mon_rat
plafond_mensualite_d832_10_3_base_
(decimal_of_string "0.75")) else
plafond_mensualite_d832_10_3_base_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2422; start_column=14;
end_line=2422; end_column=42;
law_headings=["Article 24";
"Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if copropriete_ then
(o_mult_mon_rat plafond_mensualite_d832_10_3_base_
(decimal_of_string "0.75")) else
plafond_mensualite_d832_10_3_base_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=691; start_column=10; end_line=691; end_column=25;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let mensualite_minimale_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"mensualité_minimale"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3398; start_column=5;
end_line=3410; end_column=77;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_or
(match type_travaux_logement_
with
| TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ ->
true
| TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ ->
false
| TypeTravauxLogementD83215.PasDeTravaux _ ->
false)
(match type_travaux_logement_
with
| TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ ->
false
| TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ ->
false
| TypeTravauxLogementD83215.PasDeTravaux _ ->
true))))
(fun (_: unit) ->
(let ressources_menage_arrondies_ : decimal =
(o_torat_mon ressources_menage_arrondies_)
in
(let montant_limite_tranches_d832_15_1_ : decimal =
(o_torat_mon montant_limite_tranches_d832_15_1_)
in
(o_tomoney_rat
(o_div_rat_rat
(o_add_rat_rat
( if
(o_gte_rat_rat
ressources_menage_arrondies_
(o_mult_rat_rat
montant_limite_tranches_d832_15_1_
n_nombre_parts_d832_11_)) then
(o_mult_rat_rat
(o_sub_rat_rat
ressources_menage_arrondies_
(o_mult_rat_rat
montant_limite_tranches_d832_15_1_
n_nombre_parts_d832_11_))
taux_tranche_superieure_d832_15_1_)
else (decimal_of_string "0."))
( if
(o_lte_rat_rat
ressources_menage_arrondies_
(o_mult_rat_rat
montant_limite_tranches_d832_15_1_
n_nombre_parts_d832_11_)) then
(o_mult_rat_rat
ressources_menage_arrondies_
taux_tranche_inferieure_d832_15_1_)
else
(o_mult_rat_rat
(o_mult_rat_rat
montant_limite_tranches_d832_15_1_
n_nombre_parts_d832_11_)
taux_tranche_inferieure_d832_15_1_)))
(decimal_of_string "12.")))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3453; start_column=5;
end_line=3453; end_column=75;
law_headings=["Article D832-15";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match type_travaux_logement_
with
| TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ ->
false
| TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ ->
true
| TypeTravauxLogementD83215.PasDeTravaux _ -> false)))
(fun (_: unit) ->
calcul_equivalence_loyer_minimale_dot_montant_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=688; start_column=12; end_line=688; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_prise_en_charge_d832_10_coeff_arrondi_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_prise_en_charge_d832_10_coeff_arrondi"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3182; start_column=14;
end_line=3182; end_column=49;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_div_rat_rat
(o_round_rat
(o_mult_rat_rat
(o_sub_rat_rat
coefficient_prise_en_charge_d832_10_formule_
(decimal_of_string "0.005"))
(decimal_of_string "100.")))
(decimal_of_string "100.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=697; start_column=10; end_line=697; end_column=23;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_abattement_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_abattement"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3116; start_column=14;
end_line=3116; end_column=36;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"]
traitement_aide_finale_minoration_forfaitaire_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire";
"input0"] (embed_money) aide_finale_)))))))
in
(let aide_finale_ : money =
(o_sub_mon_mon aide_finale_ ((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"abattement_dépense_nette_minimale_d832_10"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"abattement_dépense_nette_minimale_d832_10";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"abattement_dépense_nette_minimale_d832_10"]
abattement_depense_nette_minimale_d832_10_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"abattement_dépense_nette_minimale_d832_10";
"input0"] (embed_money)
aide_finale_))))))))
in
( if
(o_gte_mon_mon aide_finale_
(money_of_cents_string "0")) then
aide_finale_ else (money_of_cents_string "0"))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=725; start_column=10; end_line=725; end_column=20;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let mensualite_eligible_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"mensualité_éligible"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3077; start_column=14;
end_line=3077; end_column=33;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gt_mon_mon mensualite_principale_
plafond_mensualite_d832_10_3_coproprietaires_)
then plafond_mensualite_d832_10_3_coproprietaires_
else mensualite_principale_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=687; start_column=12; end_line=687; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficient_prise_en_charge_d832_10_seuil_: decimal = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"coefficient_prise_en_charge_d832_10_seuil"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3185; start_column=14;
end_line=3185; end_column=49;
law_headings=["Article D832-11";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gte_rat_rat
coefficient_prise_en_charge_d832_10_coeff_arrondi_
(decimal_of_string "0.95")) then
(decimal_of_string "0.95") else
coefficient_prise_en_charge_d832_10_coeff_arrondi_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=698; start_column=10; end_line=698; end_column=15;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_contributions_sociales_arrondi_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3130; start_column=14;
end_line=3130; end_column=36;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_abattement"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_abattement";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_abattement"]
traitement_aide_finale_abattement_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_abattement";
"input0"] (embed_money) aide_finale_)))))))
in
(let crds_ : money = ((log_end_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"] ((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "output"] (embed_money)
((log_begin_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"]
contributions_sociales_dot_montant_)
((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "input0"] (embed_money)
aide_finale_)))))))
in
(let aide_finale_moins_crds_arrondie_ : money =
(o_round_mon
(o_sub_mon_mon
(o_sub_mon_mon aide_finale_ crds_)
(money_of_cents_string "50")))
in
( if
(o_gte_mon_mon
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
(money_of_cents_string "0")) then
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
else (money_of_cents_string "0")))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=726; start_column=10; end_line=726; end_column=40;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"aide_finale_formule"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3057; start_column=14;
end_line=3057; end_column=33;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money =
(o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon mensualite_eligible_
montant_forfaitaire_charges_d832_10_)
mensualite_minimale_)
coefficient_prise_en_charge_d832_10_seuil_)
in
( if
(o_lt_mon_mon aide_finale_ (money_of_cents_string
"0")) then (money_of_cents_string "0") else
aide_finale_))))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=721; start_column=12; end_line=721; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_montant_minimal_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_montant_minimal"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3150; start_column=14;
end_line=3150; end_column=36;
law_headings=["Article D832-10";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"]
traitement_aide_finale_contributions_sociales_arrondi_)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon aide_finale_
montant_minimal_aide_d832_10_) then
(money_of_cents_string "0") else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=727; start_column=10; end_line=727; end_column=25;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=735; start_column=13;
end_line=735; end_column=42;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=735; start_column=13;
end_line=735; end_column=42;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
{CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_eligible =
mensualite_eligible_;
CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_minimale =
mensualite_minimale_;
CalculAidePersonnaliseeLogementAccessionPropriete.coefficient_prise_en_charge_d832_10 =
coefficient_prise_en_charge_d832_10_seuil_;
CalculAidePersonnaliseeLogementAccessionPropriete.aide_finale_formule =
aide_finale_formule_;
CalculAidePersonnaliseeLogementAccessionPropriete.traitement_aide_finale =
traitement_aide_finale_montant_minimal_}
let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: EligibilitePrestationsFamilialesIn.t) : EligibilitePrestationsFamiliales.t =
let date_courante_: date = eligibilite_prestations_familiales_in.EligibilitePrestationsFamilialesIn.date_courante_in in
let residence_: Collectivite.t = eligibilite_prestations_familiales_in.EligibilitePrestationsFamilialesIn.residence_in in
let age_l512_3_2_: unit -> duration = eligibilite_prestations_familiales_in.EligibilitePrestationsFamilialesIn.age_l512_3_2_in in
let age_l512_3_2_: duration = (log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "âge_l512_3_2"] (embed_duration)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> age_l512_3_2_ ())|]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr";
start_line=21; start_column=14;
end_line=21; end_column=26;
law_headings=["Article R512-2";
"Chapitre 2 : Champ d'application.";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> duration_of_numbers (20) (0) (0)))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=27; start_column=21; end_line=27; end_column=33;
law_headings=["Prologue : prestations familiales"]})))) in
let smic_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "smic.date_courante"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=38; start_column=14;
end_line=38; end_column=32;
law_headings=["Prologue : prestations familiales"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=38; start_column=14; end_line=38; end_column=32;
law_headings=["Prologue : prestations familiales"]})) in
let smic_dot_residence_: Collectivite.t =
try ((log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "smic.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=37; start_column=14;
end_line=37; end_column=28;
law_headings=["Prologue : prestations familiales"]}
true)) (fun (_: unit) -> residence_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=37; start_column=14; end_line=37; end_column=28;
law_headings=["Prologue : prestations familiales"]})) in
let result_: Smic.t = (log_end_call
["ÉligibilitéPrestationsFamiliales"; "smic"; "Smic"] ((log_begin_call
["ÉligibilitéPrestationsFamiliales"; "smic"; "Smic"] smic)
({SmicIn.date_courante_in = smic_dot_date_courante_;
SmicIn.residence_in = smic_dot_residence_}))) in
let smic_dot_brut_horaire_: money = result_.Smic.brut_horaire in
let regime_outre_mer_l751_1_: bool = (log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "régime_outre_mer_l751_1"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=127; start_column=5;
end_line=132; end_column=30;
law_headings=["Article L751-1";
"Chapitre 1er : Généralités";
"Titre 5 : Dispositions particulières à la Guadeloupe, à la Guyane, à la Martinique, à La Réunion, à Saint-Barthélemy et à Saint-Martin";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie législative";
"Code de la sécurité sociale"]}
(o_or
(o_eq residence_
(Collectivite.Guadeloupe ()))
(o_or
(o_eq residence_
(Collectivite.Guyane ()))
(o_or
(o_eq residence_
(Collectivite.Martinique ()))
(o_or
(o_eq residence_
(Collectivite.LaReunion ()))
(o_or
(o_eq residence_
(Collectivite.SaintBarthelemy
()))
(o_eq residence_
(Collectivite.SaintMartin
())))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=32; start_column=12;
end_line=32; end_column=35;
law_headings=["Prologue : prestations familiales"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=32; start_column=12; end_line=32; end_column=35;
law_headings=["Prologue : prestations familiales"]})))) in
let plafond_l512_3_2_: money = (log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "plafond_l512_3_2"] (embed_money)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr";
start_line=62; start_column=18;
end_line=62; end_column=41;
law_headings=["Article R755-0-2";
"Chapitre 5 : Prestations familiales et prestations assimilées";
"Titre 5 : Départements d'outre-mer";
"Livre 7 : Régimes divers - Dispositions diverses";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
regime_outre_mer_l751_1_))
(fun (_: unit) ->
o_mult_mon_rat
(o_mult_mon_rat smic_dot_brut_horaire_
(decimal_of_string "0.55"))
(decimal_of_string "169.")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr";
start_line=31; start_column=14;
end_line=31; end_column=30;
law_headings=["Article R512-2";
"Chapitre 2 : Champ d'application.";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie réglementaire - Décrets en Conseil d'Etat";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_mult_mon_rat
(o_mult_mon_rat smic_dot_brut_horaire_
(decimal_of_string "0.55"))
(decimal_of_string "169.")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=25; start_column=11; end_line=25; end_column=27;
law_headings=["Prologue : prestations familiales"]})))) in
let conditions_hors_age_: EnfantPrestationsFamiliales.t -> bool = (log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "conditions_hors_âge"]
(unembeddable)
(fun (enfant_: EnfantPrestationsFamiliales.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=78; start_column=5;
end_line=82; end_column=24;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(o_or
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
true
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
false)
(o_or
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
true
| SituationObligationScolaire.Apres _ ->
false)
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true)))
(o_lte_mon_mon
(enfant_.EnfantPrestationsFamiliales.remuneration_mensuelle)
plafond_l512_3_2_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=30; start_column=12;
end_line=30; end_column=31;
law_headings=["Prologue : prestations familiales"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=30; start_column=12; end_line=30; end_column=31;
law_headings=["Prologue : prestations familiales"]})))) in
let droit_ouvert_: EnfantPrestationsFamiliales.t -> bool = (log_variable_definition
["ÉligibilitéPrestationsFamiliales"; "droit_ouvert"] (unembeddable)
(fun (enfant_: EnfantPrestationsFamiliales.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=67; start_column=5;
end_line=72; end_column=59;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_and
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true)
(o_and
(o_lte_mon_mon
(enfant_.EnfantPrestationsFamiliales.remuneration_mensuelle)
plafond_l512_3_2_)
((let result_ :
VerificationAgeSuperieurA.t
= ((log_begin_call
["VérificationÂgeSupérieurÀ";
"direct"]
verification_age_superieur_a)
((log_variable_definition
["VérificationÂgeSupérieurÀ";
"direct"; "input"]
(embed_verification_age_superieur_a_in)
({VerificationAgeSuperieurAIn.date_naissance_in =
(
try
(enfant_.EnfantPrestationsFamiliales.date_de_naissance)
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=70;
start_column=38;
end_line=70; end_column=62;
law_headings=
["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]})));
VerificationAgeSuperieurAIn.date_courante_in =
(
try
date_courante_
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=71;
start_column=37;
end_line=71; end_column=50;
law_headings=
["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]})));
VerificationAgeSuperieurAIn.annees_in =
(
try age_l512_3_2_
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=72;
start_column=30;
end_line=72; end_column=42;
law_headings=
["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]})))}))))
in
(let result_ :
VerificationAgeSuperieurA.t
=
({VerificationAgeSuperieurA.est_superieur =
(result_.VerificationAgeSuperieurA.est_superieur)})
in
((log_end_call
["VérificationÂgeSupérieurÀ";
"direct"]
((log_variable_definition
["VérificationÂgeSupérieurÀ";
"direct"; "output"]
(embed_verification_age_superieur_a)
( if
((log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=69;
start_column=6;
end_line=72; end_column=44;
law_headings=
["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
true)) then result_
else result_))))))).VerificationAgeSuperieurA.est_superieur)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr";
start_line=56; start_column=5;
end_line=57; end_column=50;
law_headings=["Article L512-3";
"Chapitre 2 : Champ d'application";
"Titre 1 : Champ d'application - Généralités";
"Livre 5 : Prestations familiales et prestations assimilées";
"Partie législative";
"Code de la sécurité sociale"]}
(o_or
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
true
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
false)
(match
(enfant_.EnfantPrestationsFamiliales.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
true
| SituationObligationScolaire.Apres _ ->
false)))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=28; start_column=12;
end_line=28; end_column=24;
law_headings=["Prologue : prestations familiales"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr";
start_line=28; start_column=12; end_line=28; end_column=24;
law_headings=["Prologue : prestations familiales"]})))) in
{EligibilitePrestationsFamiliales.age_l512_3_2 = age_l512_3_2_;
EligibilitePrestationsFamiliales.droit_ouvert = droit_ouvert_;
EligibilitePrestationsFamiliales.conditions_hors_age =
conditions_hors_age_;
EligibilitePrestationsFamiliales.regime_outre_mer_l751_1 =
regime_outre_mer_l751_1_}
let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: CalculAllocationLogementLocatifIn.t) : CalculAllocationLogementLocatif.t =
let loyer_principal_: money = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.loyer_principal_in in
let ressources_menage_arrondies_: money = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.ressources_menage_arrondies_in in
let beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in in
let date_courante_: date = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.date_courante_in in
let nombre_personnes_a_charge_: integer = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.situation_familiale_calcul_apl_in in
let zone_: ZoneDHabitation.t = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.zone_in in
let logement_est_chambre_: bool = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.logement_est_chambre_in in
let agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in in
let type_aide_: TypeAidesPersonnelleLogement.t = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.type_aide_in in
let colocation_: bool = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.colocation_in in
let reduction_loyer_solidarite_: money = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.reduction_loyer_solidarite_in in
let logement_meuble_d842_2_: bool = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.logement_meuble_d842_2_in in
let residence_: Collectivite.t = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.residence_in in
let changement_logement_d842_4_: ChangementLogementD8424.t = calcul_allocation_logement_locatif_in.CalculAllocationLogementLocatifIn.changement_logement_d842_4_in in
let calcul_apl_locatif_dot_loyer_principal_base_: money =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.loyer_principal_base"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4179; start_column=14;
end_line=4179; end_column=48;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> loyer_principal_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4179; start_column=14; end_line=4179; end_column=48;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.ressources_ménage_arrondies"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4181; start_column=14;
end_line=4181; end_column=60;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4181; start_column=14; end_line=4181; end_column=60;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_: bool =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.bénéficiaire_aide_adulte_ou_enfant_handicapés"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4183; start_column=14;
end_line=4183; end_column=78;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
beneficiaire_aide_adulte_ou_enfant_handicapes_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4183; start_column=14; end_line=4183; end_column=78;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementLocatif"; "calcul_apl_locatif.date_courante"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4186; start_column=14;
end_line=4186; end_column=46;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4186; start_column=14; end_line=4186; end_column=46;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.nombre_personnes_à_charge"] (embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4188; start_column=14;
end_line=4188; end_column=58;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4188; start_column=14; end_line=4188; end_column=58;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4190; start_column=14;
end_line=4190; end_column=63;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4190; start_column=14; end_line=4190; end_column=63;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_zone_: ZoneDHabitation.t =
try ((log_variable_definition
["CalculAllocationLogementLocatif"; "calcul_apl_locatif.zone"]
(embed_zone_d_habitation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4192; start_column=14;
end_line=4192; end_column=37;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> zone_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4192; start_column=14; end_line=4192; end_column=37;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_logement_est_chambre_: bool =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.logement_est_chambre"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4194; start_column=14;
end_line=4194; end_column=53;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> logement_est_chambre_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4194; start_column=14; end_line=4194; end_column=53;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4197; start_column=5;
end_line=4198; end_column=63;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
agees_ou_handicap_adultes_hebergees_onereux_particuliers_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4197; start_column=5; end_line=4198; end_column=63;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_type_aide_: TypeAidesPersonnelleLogement.t =
try ((log_variable_definition
["CalculAllocationLogementLocatif"; "calcul_apl_locatif.type_aide"]
(embed_type_aides_personnelle_logement)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4201; start_column=14;
end_line=4201; end_column=42;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> type_aide_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4201; start_column=14; end_line=4201; end_column=42;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_colocation_: bool =
try ((log_variable_definition
["CalculAllocationLogementLocatif"; "calcul_apl_locatif.colocation"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4203; start_column=14;
end_line=4203; end_column=43;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> colocation_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4203; start_column=14; end_line=4203; end_column=43;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_reduction_loyer_solidarite_: money =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.réduction_loyer_solidarité"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4205; start_column=14;
end_line=4205; end_column=59;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> reduction_loyer_solidarite_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4205; start_column=14; end_line=4205; end_column=59;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_logement_meuble_d842_2_: bool =
try ((log_variable_definition
["CalculAllocationLogementLocatif";
"calcul_apl_locatif.logement_meublé_d842_2"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4207; start_column=14;
end_line=4207; end_column=55;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> logement_meuble_d842_2_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4207; start_column=14; end_line=4207; end_column=55;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_apl_locatif_dot_residence_: Collectivite.t =
try ((log_variable_definition
["CalculAllocationLogementLocatif"; "calcul_apl_locatif.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4209; start_column=14;
end_line=4209; end_column=42;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> residence_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4209; start_column=14; end_line=4209; end_column=42;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculAidePersonnaliseeLogementLocatif.t = (log_end_call
["CalculAllocationLogementLocatif"; "calcul_apl_locatif";
"CalculAidePersonnaliséeLogementLocatif"] ((log_begin_call
["CalculAllocationLogementLocatif"; "calcul_apl_locatif";
"CalculAidePersonnaliséeLogementLocatif"]
calcul_aide_personnalisee_logement_locatif)
({CalculAidePersonnaliseeLogementLocatifIn.loyer_principal_base_in =
calcul_apl_locatif_dot_loyer_principal_base_;
CalculAidePersonnaliseeLogementLocatifIn.ressources_menage_arrondies_in =
calcul_apl_locatif_dot_ressources_menage_arrondies_;
CalculAidePersonnaliseeLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in =
calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_;
CalculAidePersonnaliseeLogementLocatifIn.date_courante_in =
calcul_apl_locatif_dot_date_courante_;
CalculAidePersonnaliseeLogementLocatifIn.nombre_personnes_a_charge_in =
calcul_apl_locatif_dot_nombre_personnes_a_charge_;
CalculAidePersonnaliseeLogementLocatifIn.situation_familiale_calcul_apl_in =
calcul_apl_locatif_dot_situation_familiale_calcul_apl_;
CalculAidePersonnaliseeLogementLocatifIn.zone_in =
calcul_apl_locatif_dot_zone_;
CalculAidePersonnaliseeLogementLocatifIn.logement_est_chambre_in =
calcul_apl_locatif_dot_logement_est_chambre_;
CalculAidePersonnaliseeLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in =
calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_;
CalculAidePersonnaliseeLogementLocatifIn.type_aide_in =
calcul_apl_locatif_dot_type_aide_;
CalculAidePersonnaliseeLogementLocatifIn.colocation_in =
calcul_apl_locatif_dot_colocation_;
CalculAidePersonnaliseeLogementLocatifIn.reduction_loyer_solidarite_in =
calcul_apl_locatif_dot_reduction_loyer_solidarite_;
CalculAidePersonnaliseeLogementLocatifIn.logement_meuble_d842_2_in =
calcul_apl_locatif_dot_logement_meuble_d842_2_;
CalculAidePersonnaliseeLogementLocatifIn.residence_in =
calcul_apl_locatif_dot_residence_}))) in
let calcul_apl_locatif_dot_montant_forfaitaire_charges_d823_16_: money = result_.CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16 in
let calcul_apl_locatif_dot_plafond_loyer_d823_16_2_: money = result_.CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2 in
let calcul_apl_locatif_dot_participation_minimale_: money = result_.CalculAidePersonnaliseeLogementLocatif.participation_minimale in
let calcul_apl_locatif_dot_taux_composition_familiale_: decimal = result_.CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale in
let calcul_apl_locatif_dot_participation_personnelle_: money = result_.CalculAidePersonnaliseeLogementLocatif.participation_personnelle in
let calcul_apl_locatif_dot_aide_finale_formule_: money = result_.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule in
let calcul_apl_locatif_dot_traitement_aide_finale_montant_minimal_:
money -> money = result_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale in
let traitement_aide_finale_: money -> money = (log_variable_definition
["CalculAllocationLogementLocatif"; "traitement_aide_finale"]
(unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4299; start_column=24;
end_line=4299; end_column=46;
law_headings=["Article D842-4";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match changement_logement_d842_4_
with
| ChangementLogementD8424.Changement infos_ ->
(o_gte_mon_mon loyer_principal_
(infos_.InfosChangementLogementD8424.ancien_loyer_principal))
| ChangementLogementD8424.PasDeChangement _ ->
false)))
(fun (_: unit) -> aide_finale_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4213; start_column=14;
end_line=4213; end_column=36;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> (log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_montant_minimal"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_montant_minimal";
"output"] (embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_montant_minimal"]
calcul_apl_locatif_dot_traitement_aide_finale_montant_minimal_)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale_montant_minimal";
"input0"] (embed_money) aide_finale_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=808; start_column=12; end_line=808; end_column=34;
law_headings=["Secteur locatif";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAllocationLogementLocatif"; "aide_finale_formule"] (embed_money)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4291; start_column=24;
end_line=4291; end_column=43;
law_headings=["Article D842-4";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match changement_logement_d842_4_
with
| ChangementLogementD8424.Changement infos_ ->
(o_gte_mon_mon loyer_principal_
(infos_.InfosChangementLogementD8424.ancien_loyer_principal))
| ChangementLogementD8424.PasDeChangement _ ->
false)))
(fun (_: unit) ->
match changement_logement_d842_4_
with
| ChangementLogementD8424.Changement infos_ ->
(o_sub_mon_mon loyer_principal_
(o_sub_mon_mon
(infos_.InfosChangementLogementD8424.ancien_loyer_principal)
(infos_.InfosChangementLogementD8424.ancienne_allocation_logement)))
| ChangementLogementD8424.PasDeChangement _ ->
(money_of_cents_string "0")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4212; start_column=14;
end_line=4212; end_column=33;
law_headings=["Article D842-1";
"Section 1 : Secteur locatif ordinaire";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_apl_locatif_dot_aide_finale_formule_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=806; start_column=12; end_line=806; end_column=31;
law_headings=["Secteur locatif";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
{CalculAllocationLogementLocatif.aide_finale_formule = aide_finale_formule_;
CalculAllocationLogementLocatif.traitement_aide_finale =
traitement_aide_finale_}
let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: CalculAllocationLogementFoyerIn.t) : CalculAllocationLogementFoyer.t =
let type_logement_foyer_: TypeLogementFoyer.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.type_logement_foyer_in in
let date_conventionnement_: date = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.date_conventionnement_in in
let residence_: Collectivite.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.residence_in in
let redevance_: money = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.redevance_in in
let ressources_menage_arrondies_: money = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.ressources_menage_arrondies_in in
let nombre_personnes_a_charge_: integer = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.situation_familiale_calcul_apl_in in
let zone_: ZoneDHabitation.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.zone_in in
let date_courante_: date = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.date_courante_in in
let categorie_equivalence_loyer_d842_16_: CategorieEquivalenceLoyerAllocationLogementFoyer.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.categorie_equivalence_loyer_d842_16_in in
let calcul_nombre_parts_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_nombre_parts.condition_2_du_832_25"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4850; start_column=14;
end_line=4850; end_column=55;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4850; start_column=14; end_line=4850; end_column=55;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4846; start_column=14;
end_line=4846; end_column=59;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4846; start_column=14; end_line=4846; end_column=59;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_nombre_parts.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4848; start_column=14;
end_line=4848; end_column=64;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4848; start_column=14; end_line=4848; end_column=64;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_nombre_parts.limitation_majoration_personnes_à_charge"]
(embed_bool) (raise EmptyError)) in
let result_: CalculNombrePartLogementFoyer.t = (log_end_call
["CalculAllocationLogementFoyer"; "calcul_nombre_parts";
"CalculNombrePartLogementFoyer"] ((log_begin_call
["CalculAllocationLogementFoyer"; "calcul_nombre_parts";
"CalculNombrePartLogementFoyer"] calcul_nombre_part_logement_foyer)
({CalculNombrePartLogementFoyerIn.condition_2_du_832_25_in =
calcul_nombre_parts_dot_condition_2_du_832_25_;
CalculNombrePartLogementFoyerIn.nombre_personnes_a_charge_in =
calcul_nombre_parts_dot_nombre_personnes_a_charge_;
CalculNombrePartLogementFoyerIn.situation_familiale_calcul_apl_in =
calcul_nombre_parts_dot_situation_familiale_calcul_apl_;
CalculNombrePartLogementFoyerIn.limitation_majoration_personnes_a_charge_in =
calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge_}))) in
let calcul_nombre_parts_dot_n_nombre_parts_d832_25_: decimal = result_.CalculNombrePartLogementFoyer.n_nombre_parts_d832_25 in
let contributions_sociales_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"contributions_sociales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=973; start_column=14;
end_line=973; end_column=50;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=973; start_column=14; end_line=973; end_column=50;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call
["CalculAllocationLogementFoyer"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call
["CalculAllocationLogementFoyer"; "contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"]
contributions_sociales_aides_personnelle_logement)
({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in =
contributions_sociales_dot_date_courante_}))) in
let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in
let calcul_apl_logement_foyer_dot_type_logement_foyer_: TypeLogementFoyer.t =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.type_logement_foyer"]
(embed_type_logement_foyer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=958; start_column=14;
end_line=958; end_column=59;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> type_logement_foyer_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=958; start_column=14; end_line=958; end_column=59;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_date_conventionnement_: date =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.date_conventionnement"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=960; start_column=14;
end_line=960; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_conventionnement_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=960; start_column=14; end_line=960; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=964; start_column=14;
end_line=964; end_column=67;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=964; start_column=14; end_line=964; end_column=67;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.nombre_personnes_à_charge"]
(embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=966; start_column=14;
end_line=966; end_column=65;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=966; start_column=14; end_line=966; end_column=65;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=968; start_column=14;
end_line=968; end_column=70;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=968; start_column=14; end_line=968; end_column=70;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_zone_: ZoneDHabitation.t =
try ((log_variable_definition
["CalculAllocationLogementFoyer"; "calcul_apl_logement_foyer.zone"]
(embed_zone_d_habitation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=970; start_column=14;
end_line=970; end_column=44;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> zone_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=970; start_column=14; end_line=970; end_column=44;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=971; start_column=14;
end_line=971; end_column=53;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=971; start_column=14; end_line=971; end_column=53;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_redevance_: money =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.redevance"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=962; start_column=14;
end_line=962; end_column=49;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> redevance_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=962; start_column=14; end_line=962; end_column=49;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_condition_2_du_832_25_: unit -> bool =
fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4821; start_column=14;
end_line=4821; end_column=61;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))) in
let calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.limitation_majoration_personnes_à_charge"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5599; start_column=5;
end_line=5605; end_column=28;
law_headings=["Article D861-8";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))) in
let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: unit -> decimal =
fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_apl_logement_foyer.n_nombre_parts_d832_25"] (embed_decimal)
(raise EmptyError)) in
let result_: CalculAidePersonnaliseeLogementFoyer.t = (log_end_call
["CalculAllocationLogementFoyer"; "calcul_apl_logement_foyer";
"CalculAidePersonnaliséeLogementFoyer"] ((log_begin_call
["CalculAllocationLogementFoyer"; "calcul_apl_logement_foyer";
"CalculAidePersonnaliséeLogementFoyer"]
calcul_aide_personnalisee_logement_foyer)
({CalculAidePersonnaliseeLogementFoyerIn.type_logement_foyer_in =
calcul_apl_logement_foyer_dot_type_logement_foyer_;
CalculAidePersonnaliseeLogementFoyerIn.date_conventionnement_in =
calcul_apl_logement_foyer_dot_date_conventionnement_;
CalculAidePersonnaliseeLogementFoyerIn.ressources_menage_arrondies_in =
calcul_apl_logement_foyer_dot_ressources_menage_arrondies_;
CalculAidePersonnaliseeLogementFoyerIn.nombre_personnes_a_charge_in =
calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_;
CalculAidePersonnaliseeLogementFoyerIn.situation_familiale_calcul_apl_in =
calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_;
CalculAidePersonnaliseeLogementFoyerIn.zone_in =
calcul_apl_logement_foyer_dot_zone_;
CalculAidePersonnaliseeLogementFoyerIn.date_courante_in =
calcul_apl_logement_foyer_dot_date_courante_;
CalculAidePersonnaliseeLogementFoyerIn.redevance_in =
calcul_apl_logement_foyer_dot_redevance_;
CalculAidePersonnaliseeLogementFoyerIn.condition_2_du_832_25_in =
calcul_apl_logement_foyer_dot_condition_2_du_832_25_;
CalculAidePersonnaliseeLogementFoyerIn.limitation_majoration_personnes_a_charge_in =
calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_;
CalculAidePersonnaliseeLogementFoyerIn.n_nombre_parts_d832_25_in =
calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_}))) in
let calcul_apl_logement_foyer_dot_coefficient_multiplicateur_d832_25_: money = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25 in
let calcul_apl_logement_foyer_dot_coefficient_r_d832_25_: money = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25 in
let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: decimal = result_.CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25 in
let calcul_apl_logement_foyer_dot_equivalence_loyer_eligible_: money = result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible in
let calcul_apl_logement_foyer_dot_plafond_equivalence_loyer_eligible_: money = result_.CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible in
let calcul_apl_logement_foyer_dot_equivalence_loyer_minimale_: money = result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale in
let calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_: decimal = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25 in
let calcul_apl_logement_foyer_dot_aide_finale_formule_: money = result_.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule in
let calcul_apl_logement_foyer_dot_traitement_aide_finale_montant_minimal_:
money -> money = result_.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale in
let multiplicateur_majoration_charges_: decimal = (log_variable_definition
["CalculAllocationLogementFoyer"; "multiplicateur_majoration_charges"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3344;
start_column=5;
end_line=3352; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(
o_and
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun
(_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2809;
start_column=5;
end_line=2817; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match
residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1738;
start_column=5;
end_line=1746; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=619; start_column=5;
end_line=627; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=126; start_column=5;
end_line=134; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) -> decimal_of_string "6."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1586; start_column=14;
end_line=1586; end_column=47;
law_headings=["Article 40";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4170; start_column=14;
end_line=4170; end_column=47;
law_headings=["Article 40";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=934; start_column=11; end_line=934; end_column=44;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_minimal_depense_nette_d842_17_: money = (log_variable_definition
["CalculAllocationLogementFoyer";
"montant_minimal_dépense_nette_d842_17"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4290; start_column=14;
end_line=4290; end_column=51;
law_headings=["Article 44";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=933; start_column=11; end_line=933; end_column=48;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d842_15_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "montant_forfaitaire_d842_15"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4186; start_column=14;
end_line=4186; end_column=41;
law_headings=["Article 41";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=932; start_column=11; end_line=932; end_column=38;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_minimal_aide_d842_15_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "montant_minimal_aide_d842_15"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4198; start_column=14;
end_line=4198; end_column=42;
law_headings=["Article 42";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1000"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=931; start_column=11; end_line=931; end_column=39;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let equivalence_loyer_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "équivalence_loyer"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4216; start_column=6;
end_line=4216; end_column=79;
law_headings=["Article 43";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "8708")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "13559")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4251; start_column=6;
end_line=4252; end_column=38;
law_headings=["Article 43";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "21362")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33196")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4269; start_column=6;
end_line=4270; end_column=24;
law_headings=["Article 43";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(match
categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
true))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "17607")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "27365")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4233; start_column=6;
end_line=4234; end_column=46;
law_headings=["Article 43";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "17607")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "27365")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1611; start_column=6;
end_line=1611; end_column=79;
law_headings=["Article 43";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "8414")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "13100")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1648; start_column=6;
end_line=1649; end_column=38;
law_headings=["Article 43";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "20640")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32073")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1667; start_column=6;
end_line=1668; end_column=24;
law_headings=["Article 43";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match
categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
true))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "17012")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26440")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1629; start_column=6;
end_line=1630; end_column=46;
law_headings=["Article 43";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "17012")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26440")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2680; start_column=6;
end_line=2680; end_column=79;
law_headings=["Article 43";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "8379")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "13045")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2717; start_column=6;
end_line=2718; end_column=38;
law_headings=["Article 43";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "20554")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31939")));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2736; start_column=6;
end_line=2737; end_column=24;
law_headings=["Article 43";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match
categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
true))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "16941")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26329")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2698; start_column=6;
end_line=2699; end_column=46;
law_headings=["Article 43";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match categorie_equivalence_loyer_d842_16_
with
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ ->
true
| CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ ->
false
| CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ ->
false))))
(fun (_: unit) ->
match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "16941")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26329")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=936; start_column=12; end_line=936; end_column=29;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_equivalence_loyer_minimale_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_équivalence_loyer_minimale.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=974; start_column=14;
end_line=974; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=974; start_column=14; end_line=974; end_column=61;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4843; start_column=14;
end_line=4843; end_column=75;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4843; start_column=14; end_line=4843; end_column=75;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_équivalence_loyer_minimale.condition_2_du_832_25"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4842; start_column=14;
end_line=4842; end_column=69;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4842; start_column=14; end_line=4842; end_column=69;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal =
try ((log_variable_definition
["CalculAllocationLogementFoyer";
"calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"]
(embed_decimal)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4852; start_column=14;
end_line=4852; end_column=70;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_nombre_parts_dot_n_nombre_parts_d832_25_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4852; start_column=14; end_line=4852; end_column=70;
law_headings=["Article D842-15"; "Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call
["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] ((log_begin_call
["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale)
({CalculEquivalenceLoyerMinimaleIn.date_courante_in =
calcul_equivalence_loyer_minimale_dot_date_courante_;
CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in =
calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_;
CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in =
calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_;
CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in =
calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in
let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in
let coefficient_prise_en_charge_: decimal = (log_variable_definition
["CalculAllocationLogementFoyer"; "coefficient_prise_en_charge"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4824; start_column=14;
end_line=4824; end_column=41;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=935; start_column=12; end_line=935; end_column=39;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_charges_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "montant_forfaitaire_charges"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4409; start_column=6;
end_line=4416; end_column=28;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string "3767")
(o_mult_mon_rat (money_of_cents_string
"969")
multiplicateur_majoration_charges_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=280; start_column=6;
end_line=287; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3767")
(o_mult_mon_rat (money_of_cents_string
"969")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3767")
(o_mult_mon_rat (money_of_cents_string
"969") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1893; start_column=6;
end_line=1900; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=776; start_column=6;
end_line=783; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3640")
(o_mult_mon_rat (money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3640")
(o_mult_mon_rat (money_of_cents_string
"936") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2965; start_column=6;
end_line=2972; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3625")
(o_mult_mon_rat (money_of_cents_string
"932")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3625")
(o_mult_mon_rat (money_of_cents_string
"932") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3501; start_column=6;
end_line=3508; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon (money_of_cents_string
"3614")
(o_mult_mon_rat (money_of_cents_string
"929")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon (money_of_cents_string
"3614")
(o_mult_mon_rat (money_of_cents_string
"929") (decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_) then
limite_ else montant_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4173; start_column=29;
end_line=4173; end_column=56;
law_headings=["Article 40";
"Chapitre VII : Calcul des allocations de logement en secteur logement-foyer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5612") else
(o_add_mon_mon (money_of_cents_string "5612")
(o_mult_mon_rat (money_of_cents_string "1272")
multiplicateur_majoration_charges_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1589; start_column=29;
end_line=1589; end_column=56;
law_headings=["Article 40";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5422") else
(o_add_mon_mon (money_of_cents_string "5422")
(o_mult_mon_rat (money_of_cents_string "1229")
multiplicateur_majoration_charges_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2655; start_column=29;
end_line=2655; end_column=56;
law_headings=["Article 40";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5399") else
(o_add_mon_mon (money_of_cents_string "5399")
(o_mult_mon_rat (money_of_cents_string "1224")
(o_torat_int nombre_personnes_a_charge_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=937; start_column=12; end_line=937; end_column=39;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4862; start_column=14;
end_line=4862; end_column=36;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_lt_mon_mon
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d842_15_)
(money_of_cents_string "0")) then
(money_of_cents_string "0") else
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d842_15_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=951; start_column=10; end_line=951; end_column=32;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let loyer_minimal_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "loyer_minimal"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4854; start_column=14;
end_line=4854; end_column=27;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_equivalence_loyer_minimale_dot_montant_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=938; start_column=12; end_line=938; end_column=25;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer"; "dépense_nette_minimale"]
(unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4974; start_column=14;
end_line=4974; end_column=36;
law_headings=["Article D842-17";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_sub_mon_mon
(o_add_mon_mon equivalence_loyer_
montant_forfaitaire_charges_)
allocation_mensuelle_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=927; start_column=11; end_line=927; end_column=33;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAllocationLogementFoyer"; "aide_finale_formule"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4803; start_column=14;
end_line=4803; end_column=33;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon equivalence_loyer_
montant_forfaitaire_charges_) loyer_minimal_)
coefficient_prise_en_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=948; start_column=12; end_line=948; end_column=31;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let abattement_depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer"; "abattement_dépense_nette_minimale"]
(unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4983; start_column=14;
end_line=4983; end_column=47;
law_headings=["Article D842-17";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_lt_mon_mon ((log_end_call
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"; "output"]
(embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"]
depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"; "input0"]
(embed_money) allocation_mensuelle_)))))))
montant_minimal_depense_nette_d842_17_) then
(o_sub_mon_mon
montant_minimal_depense_nette_d842_17_
((log_end_call
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"; "output"]
(embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"]
depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"dépense_nette_minimale"; "input0"]
(embed_money) allocation_mensuelle_))))))))
else (money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=929; start_column=11; end_line=929; end_column=44;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_dépense_nette_minimale"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4876; start_column=14;
end_line=4876; end_column=36;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire"]
traitement_aide_finale_minoration_forfaitaire_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_minoration_forfaitaire";
"input0"] (embed_money) aide_finale_)))))))
in
(let abattement_ : money = ((log_end_call
["CalculAllocationLogementFoyer";
"abattement_dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"abattement_dépense_nette_minimale";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"abattement_dépense_nette_minimale"]
abattement_depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"abattement_dépense_nette_minimale";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon
(o_sub_mon_mon aide_finale_ abattement_)
(money_of_cents_string "0")) then
(money_of_cents_string "0") else
(o_sub_mon_mon aide_finale_ abattement_))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=952; start_column=10; end_line=952; end_column=32;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_redevance_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer"; "traitement_aide_finale_redevance"]
(unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4894; start_column=14;
end_line=4894; end_column=36;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_dépense_nette_minimale";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_dépense_nette_minimale"]
traitement_aide_finale_depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_dépense_nette_minimale";
"input0"] (embed_money) aide_finale_)))))))
in
( if (o_gt_mon_mon aide_finale_ redevance_) then
redevance_ else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=953; start_column=10; end_line=953; end_column=19;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_contributions_sociales_arrondi_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4908; start_column=14;
end_line=4908; end_column=36;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_redevance"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_redevance";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_redevance"]
traitement_aide_finale_redevance_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_redevance";
"input0"] (embed_money) aide_finale_)))))))
in
(let crds_ : money = ((log_end_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"] ((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "output"] (embed_money)
((log_begin_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"]
contributions_sociales_dot_montant_)
((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "input0"] (embed_money)
aide_finale_)))))))
in
(let aide_finale_moins_crds_arrondie_ : money =
(o_round_mon
(o_sub_mon_mon
(o_sub_mon_mon aide_finale_ crds_)
(money_of_cents_string "50")))
in
( if
(o_gte_mon_mon
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
(money_of_cents_string "0")) then
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
else (money_of_cents_string "0")))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=954; start_column=10; end_line=954; end_column=40;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_montant_minimal_: money -> money = (log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_montant_minimal"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4929; start_column=14;
end_line=4929; end_column=36;
law_headings=["Article D842-15";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi"]
traitement_aide_finale_contributions_sociales_arrondi_)
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale_contributions_sociales_arrondi";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon aide_finale_
montant_minimal_aide_d842_15_) then
(money_of_cents_string "0") else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=955; start_column=10; end_line=955; end_column=25;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=978; start_column=13;
end_line=978; end_column=42;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=978; start_column=13;
end_line=978; end_column=42;
law_headings=["Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}) in
{CalculAllocationLogementFoyer.coefficient_prise_en_charge =
coefficient_prise_en_charge_;
CalculAllocationLogementFoyer.equivalence_loyer = equivalence_loyer_;
CalculAllocationLogementFoyer.montant_forfaitaire_charges =
montant_forfaitaire_charges_;
CalculAllocationLogementFoyer.loyer_minimal = loyer_minimal_;
CalculAllocationLogementFoyer.aide_finale_formule = aide_finale_formule_;
CalculAllocationLogementFoyer.traitement_aide_finale =
traitement_aide_finale_montant_minimal_}
let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_accession_propriete_in: CalculAllocationLogementAccessionProprieteIn.t) : CalculAllocationLogementAccessionPropriete.t =
let ressources_menage_arrondies_base_: money = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.ressources_menage_arrondies_base_in in
let nombre_personnes_a_charge_: integer = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.nombre_personnes_a_charge_in in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.situation_familiale_calcul_apl_in in
let zone_: ZoneDHabitation.t = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.zone_in in
let residence_: Collectivite.t = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.residence_in in
let date_courante_: date = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.date_courante_in in
let mensualite_principale_: money = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.mensualite_principale_in in
let situation_r822_11_13_17_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.situation_r822_11_13_17_in in
let date_signature_pret_: date = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.date_signature_pret_in in
let type_travaux_logement_: TypeTravauxLogementR8425.t = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.type_travaux_logement_in in
let local_habite_premiere_fois_beneficiaire_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in in
let date_entree_logement_: date = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.date_entree_logement_in in
let charges_mensuelles_pret_: money = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.charges_mensuelles_pret_in in
let copropriete_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.copropriete_in in
let operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in in
let taux_francs_vers_euros_: decimal = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"taux_francs_vers_euros"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=330; start_column=14;
end_line=330; end_column=36;
law_headings=["Article premier";
"Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]}
true))
(fun (_: unit) ->
o_div_rat_rat (decimal_of_string "1.")
(decimal_of_string "6.55957")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=849; start_column=11; end_line=849; end_column=33;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4457; start_column=14;
end_line=4457; end_column=59;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4457; start_column=14; end_line=4457; end_column=59;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_nombre_parts.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4459; start_column=14;
end_line=4459; end_column=64;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4459; start_column=14; end_line=4459; end_column=64;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculNombrePartsAccessionPropriete.t = (log_end_call
["CalculAllocationLogementAccessionPropriété"; "calcul_nombre_parts";
"CalculNombrePartsAccessionPropriété"] ((log_begin_call
["CalculAllocationLogementAccessionPropriété"; "calcul_nombre_parts";
"CalculNombrePartsAccessionPropriété"]
calcul_nombre_parts_accession_propriete)
({CalculNombrePartsAccessionProprieteIn.nombre_personnes_a_charge_in =
calcul_nombre_parts_dot_nombre_personnes_a_charge_;
CalculNombrePartsAccessionProprieteIn.situation_familiale_calcul_apl_in =
calcul_nombre_parts_dot_situation_familiale_calcul_apl_}))) in
let calcul_nombre_parts_dot_n_nombre_parts_d832_11_: decimal = result_.CalculNombrePartsAccessionPropriete.n_nombre_parts_d832_11 in
let contributions_sociales_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"contributions_sociales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=902; start_column=14;
end_line=902; end_column=50;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=902; start_column=14; end_line=902; end_column=50;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call
["CalculAllocationLogementAccessionPropriété";
"contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"contributions_sociales";
"ContributionsSocialesAidesPersonnelleLogement"]
contributions_sociales_aides_personnelle_logement)
({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in =
contributions_sociales_dot_date_courante_}))) in
let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in
let multiplicateur_majoration_charges_: decimal = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"multiplicateur_majoration_charges"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3329;
start_column=5;
end_line=3337; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(
o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(
o_and
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun
(_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2794;
start_column=5;
end_line=2802; end_column=35;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(match
residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1723;
start_column=5;
end_line=1731; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=604; start_column=5;
end_line=612; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) ->
decimal_of_string "6."))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=111; start_column=5;
end_line=119; end_column=35;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ -> true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))))))
(fun (_: unit) -> decimal_of_string "6."))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1512; start_column=14;
end_line=1512; end_column=47;
law_headings=["Article 34";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4035; start_column=14;
end_line=4035; end_column=47;
law_headings=["Article 34";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
o_torat_int nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=860; start_column=11; end_line=860; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let coefficient_d842_12_: decimal = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_12"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4136; start_column=14;
end_line=4136; end_column=33;
law_headings=["Article 39";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> decimal_of_string "16.25"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=858; start_column=11; end_line=858; end_column=30;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let coefficient_d842_11_: decimal = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_11"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4124; start_column=14;
end_line=4124; end_column=33;
law_headings=["Article 38";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> decimal_of_string "0.0234"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=857; start_column=11; end_line=857; end_column=30;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d842_12_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"montant_forfaitaire_d842_12"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4144; start_column=14;
end_line=4144; end_column=41;
law_headings=["Article 39";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "390000"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=856; start_column=11; end_line=856; end_column=38;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d842_11_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"montant_forfaitaire_d842_11"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4116; start_column=14;
end_line=4116; end_column=41;
law_headings=["Article 38";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=855; start_column=11; end_line=855; end_column=38;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_minimal_aide_d842_6_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"montant_minimal_aide_d842_6"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4061; start_column=14;
end_line=4061; end_column=41;
law_headings=["Article 36";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "1000"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=854; start_column=11; end_line=854; end_column=38;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_d842_6_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"montant_forfaitaire_d842_6"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4050; start_column=14;
end_line=4050; end_column=40;
law_headings=["Article 35";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) -> money_of_cents_string "500"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=846; start_column=11; end_line=846; end_column=37;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let condition_d842_11_3_: bool = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "condition_d842_11_3"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5930;
start_column=5;
end_line=5934; end_column=73;
law_headings=["Article D862-7";
"Section III : Allocations de logement";
"Chapitre II : Saint-Barthélemy et Saint-Martin";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
false)
operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat_)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5573; start_column=5;
end_line=5580; end_column=73;
law_headings=["Article D861-8";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat_)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4686; start_column=6;
end_line=4689; end_column=44;
law_headings=["Article D842-11";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(o_or
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
true)
(o_or
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
true
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false)
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
true
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false)))
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1999) (7) (1))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=859; start_column=11;
end_line=859; end_column=30;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=859; start_column=11; end_line=859; end_column=30;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_plafond_mensualite_d842_6_base_: date -> integer -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base"] (unembeddable)
(fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=2958; start_column=5;
end_line=2958; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (1992) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (1994) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "158700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "191300"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "205500")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "211300")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"217100") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"222900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"228000") else
(o_add_mon_mon
(money_of_cents_string
"228000")
(o_mult_mon_rat
(money_of_cents_string
"19800")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "139300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "170600"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "184700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "191200")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"197700") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"204200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"218700") else
(o_add_mon_mon
(money_of_cents_string
"218700")
(o_mult_mon_rat
(money_of_cents_string
"19100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "130600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "158400"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "172600")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "179800")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"187000") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"194200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"208600") else
(o_add_mon_mon
(money_of_cents_string
"208600")
(o_mult_mon_rat
(money_of_cents_string
"18200")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3003; start_column=5;
end_line=3003; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (1994) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (1997) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "160400")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "193400"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "207800")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "213700")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"219600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"225500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"230500") else
(o_add_mon_mon
(money_of_cents_string
"230500")
(o_mult_mon_rat
(money_of_cents_string
"20000")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "140800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "172500"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "186700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "193300")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"199900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"206500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"221100") else
(o_add_mon_mon
(money_of_cents_string
"221100")
(o_mult_mon_rat
(money_of_cents_string
"19300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "132000")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "180100"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "174500")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "181800")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"189100") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"196400") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"210900") else
(o_add_mon_mon
(money_of_cents_string
"210900")
(o_mult_mon_rat
(money_of_cents_string
"18400")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3048; start_column=5;
end_line=3048; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (1997) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (1998) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "163300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "196900"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "211600")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "217600")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"223600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"229600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"234600") else
(o_add_mon_mon
(money_of_cents_string
"234600")
(o_mult_mon_rat
(money_of_cents_string
"20400")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "143300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "175600"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "190100")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "196600")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"203500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"210200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"225100") else
(o_add_mon_mon
(money_of_cents_string
"225100")
(o_mult_mon_rat
(money_of_cents_string
"19600")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "134400")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "163000"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "177700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "185100")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"192500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"199900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"214700") else
(o_add_mon_mon
(money_of_cents_string
"214700")
(o_mult_mon_rat
(money_of_cents_string
"18700")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3093; start_column=5;
end_line=3093; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (1998) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (1999) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "167200")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "201600"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "216700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "222800")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"229000") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"235100") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"240200") else
(o_add_mon_mon
(money_of_cents_string
"240200")
(o_mult_mon_rat
(money_of_cents_string
"20900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "146700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "179800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "194700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "201500")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"208400") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"215200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"230500") else
(o_add_mon_mon
(money_of_cents_string
"230500")
(o_mult_mon_rat
(money_of_cents_string
"20100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "137600")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "166900"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "182000")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "189500")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"197100") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"204700") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"219900") else
(o_add_mon_mon
(money_of_cents_string
"219900")
(o_mult_mon_rat
(money_of_cents_string
"19100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3138; start_column=5;
end_line=3138; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (1999) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2000) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "167400")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "201800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "216900")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "223000")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"229200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"235300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"240400") else
(o_add_mon_mon
(money_of_cents_string
"240400")
(o_mult_mon_rat
(money_of_cents_string
"20900")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "146800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "180000"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "194900")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "201700")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"208600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"215400") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"230700") else
(o_add_mon_mon
(money_of_cents_string
"230700")
(o_mult_mon_rat
(money_of_cents_string
"20100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "137700")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "167100"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "182200")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "189700")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"197300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"204900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"220100") else
(o_add_mon_mon
(money_of_cents_string
"220100")
(o_mult_mon_rat
(money_of_cents_string
"19100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3186; start_column=5;
end_line=3186; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2000) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2001) (7) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "169100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "203800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "219100")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "225200")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"231500") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"237700") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"242800") else
(o_add_mon_mon
(money_of_cents_string
"242800")
(o_mult_mon_rat
(money_of_cents_string
"21100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "148300")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "181800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "196800")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "203700")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"210700") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"217600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"233000") else
(o_add_mon_mon
(money_of_cents_string
"233000")
(o_mult_mon_rat
(money_of_cents_string
"20300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "139100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "168800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "184000")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "191600")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"199300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"206900") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"222300") else
(o_add_mon_mon
(money_of_cents_string
"222300")
(o_mult_mon_rat
(money_of_cents_string
"19300")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3234; start_column=5;
end_line=3234; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2001) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2002) (1) (1)))))))
(fun (_: unit) ->
o_mult_mon_rat
(match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "171100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "206200"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "221700")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "227900")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"234300") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"240600") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"245700") else
(o_add_mon_mon
(money_of_cents_string
"245700")
(o_mult_mon_rat
(money_of_cents_string
"21400")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "150100")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "184000"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "199200")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "206100")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"213200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"220200") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"235800") else
(o_add_mon_mon
(money_of_cents_string
"235800")
(o_mult_mon_rat
(money_of_cents_string
"20500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "140800")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "170800"))
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "186200")
else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "193900")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "3"))
then
(money_of_cents_string
"201700") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"209400") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string
"5")) then
(money_of_cents_string
"225000") else
(o_add_mon_mon
(money_of_cents_string
"225000")
(o_mult_mon_rat
(money_of_cents_string
"19500")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5"))))))))))))
taux_francs_vers_euros_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3282; start_column=5;
end_line=3282; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2002) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2002) (7) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26084")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31435")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "33798") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "34743") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "35719")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"36679") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"37457") else
(o_add_mon_mon
(money_of_cents_string
"37457")
(o_mult_mon_rat
(money_of_cents_string
"3262")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "22883")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "28051")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "30368") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "31420") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "32502")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"33569") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"35947") else
(o_add_mon_mon
(money_of_cents_string
"35947")
(o_mult_mon_rat
(money_of_cents_string
"3125")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "21465")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26038")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "28386") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "29560") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "30749")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"31923") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"34301") else
(o_add_mon_mon
(money_of_cents_string
"34301")
(o_mult_mon_rat
(money_of_cents_string
"2973")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3329; start_column=5;
end_line=3329; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2002) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2003) (7) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26397")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31812")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34204") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35160") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36148")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"37119") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"37906") else
(o_add_mon_mon
(money_of_cents_string
"37906")
(o_mult_mon_rat
(money_of_cents_string
"3301")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "23158")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "28388")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "30732") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "31797") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "32892")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"33972") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"36378") else
(o_add_mon_mon
(money_of_cents_string
"36378")
(o_mult_mon_rat
(money_of_cents_string
"3163")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "21723")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26350")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "28727") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "29915") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "31118")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"32306") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"34713") else
(o_add_mon_mon
(money_of_cents_string
"34713")
(o_mult_mon_rat
(money_of_cents_string
"3009")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3376; start_column=5;
end_line=3376; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2003) (7) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2005) (9) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26714")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32194")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34614") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35582") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36582")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"37564") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"38361") else
(o_add_mon_mon
(money_of_cents_string
"38361")
(o_mult_mon_rat
(money_of_cents_string
"3341")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "23436")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "28729")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "31101") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "32179") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "33287")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"34380") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"36815") else
(o_add_mon_mon
(money_of_cents_string
"36815")
(o_mult_mon_rat
(money_of_cents_string
"3201")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "21984")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "26666")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "29072") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "30274") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "31491")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"32694") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"35130") else
(o_add_mon_mon
(money_of_cents_string
"35130")
(o_mult_mon_rat
(money_of_cents_string
"3045")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3423; start_column=5;
end_line=3423; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2005) (9) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2007) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27195")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32773")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "35237") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "36222") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "37240")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38240") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"39051") else
(o_add_mon_mon
(money_of_cents_string
"39051")
(o_mult_mon_rat
(money_of_cents_string
"3401")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "23858")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "29246")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "31661") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "32758") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "33886")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"34999") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"37478") else
(o_add_mon_mon
(money_of_cents_string
"37478")
(o_mult_mon_rat
(money_of_cents_string
"3259")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "22380")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "27146")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "29595") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "30819") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "32058")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"33282") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"35762") else
(o_add_mon_mon
(money_of_cents_string
"35762")
(o_mult_mon_rat
(money_of_cents_string
"3100")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3470; start_column=5;
end_line=3470; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2007) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2008) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27956")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33691")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36224") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37236") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "38283")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"39311") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40144") else
(o_add_mon_mon
(money_of_cents_string
"40144")
(o_mult_mon_rat
(money_of_cents_string
"3496")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "24526")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "30065")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "32548") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "33675") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "34865")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"35979") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"38527") else
(o_add_mon_mon
(money_of_cents_string
"38527")
(o_mult_mon_rat
(money_of_cents_string
"3350")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "23007")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "27906")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "30424") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "31682") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "32956")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"34214") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"36733") else
(o_add_mon_mon
(money_of_cents_string
"36733")
(o_mult_mon_rat
(money_of_cents_string
"3187")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3517; start_column=5;
end_line=3517; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2008) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2009) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "28728")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "34621")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "37224") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "38264") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "39340")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"40396") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"41252") else
(o_add_mon_mon
(money_of_cents_string
"41252")
(o_mult_mon_rat
(money_of_cents_string
"3592")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25203")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "30895")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "33446") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "34604") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "35796")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"36972") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"39590") else
(o_add_mon_mon
(money_of_cents_string
"39590")
(o_mult_mon_rat
(money_of_cents_string
"3442")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "23642")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "28676")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "31264") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "32556") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "33866")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"35158") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"37778") else
(o_add_mon_mon
(money_of_cents_string
"37778")
(o_mult_mon_rat
(money_of_cents_string
"3275")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3564; start_column=5;
end_line=3564; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2009) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2010) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "29575")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "35642")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "38322") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "39393") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "40501")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"41588") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"42469") else
(o_add_mon_mon
(money_of_cents_string
"42469")
(o_mult_mon_rat
(money_of_cents_string
"3698")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25946")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31806")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34433") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35625") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36852")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38063") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40758") else
(o_add_mon_mon
(money_of_cents_string
"40758")
(o_mult_mon_rat
(money_of_cents_string
"3544")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "24339")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "29522")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "32186") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "33516") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "34865")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"36195") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"38892") else
(o_add_mon_mon
(money_of_cents_string
"38892")
(o_mult_mon_rat
(money_of_cents_string
"3372")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3611; start_column=5;
end_line=3611; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2010) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2011) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "29670")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "35757")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "38445") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "39519") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "40601")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"41721") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"42605") else
(o_add_mon_mon
(money_of_cents_string
"42605")
(o_mult_mon_rat
(money_of_cents_string
"3710")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26029")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31908")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34643") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35739") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36970")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38185") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40888") else
(o_add_mon_mon
(money_of_cents_string
"40888")
(o_mult_mon_rat
(money_of_cents_string
"3555")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "24417")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "29616")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "32289") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "33623") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "34977")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"36311") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"39016") else
(o_add_mon_mon
(money_of_cents_string
"39016")
(o_mult_mon_rat
(money_of_cents_string
"3383")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3658; start_column=5;
end_line=3658; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2011) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2012) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "29996")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "36149")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "38868") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "39954") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "41078")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"42180") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"43074") else
(o_add_mon_mon
(money_of_cents_string
"43074")
(o_mult_mon_rat
(money_of_cents_string
"3751")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26315")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32259")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34923") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "36132") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "37373")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38605") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"41338") else
(o_add_mon_mon
(money_of_cents_string
"41338")
(o_mult_mon_rat
(money_of_cents_string
"3594")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "24686")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "29942")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "32644") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "33993") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "35362")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"36710") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"39445") else
(o_add_mon_mon
(money_of_cents_string
"39445")
(o_mult_mon_rat
(money_of_cents_string
"3420")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3705; start_column=5;
end_line=3705; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2012) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2013) (1) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "30296")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "36510")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "39257") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "40354") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "41489")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"42602") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"43505") else
(o_add_mon_mon
(money_of_cents_string
"43505")
(o_mult_mon_rat
(money_of_cents_string
"3789")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "26578")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "32582")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "35272") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "36493") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "37751")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38991") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"41751") else
(o_add_mon_mon
(money_of_cents_string
"41751")
(o_mult_mon_rat
(money_of_cents_string
"3630")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "24933")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "30241")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "32970") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "34333") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "35716")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"37077") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"39839") else
(o_add_mon_mon
(money_of_cents_string
"39839")
(o_mult_mon_rat
(money_of_cents_string
"3454")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3752; start_column=5;
end_line=3752; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2013) (1) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2014) (10) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "30947")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "37295")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "40101") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "41222") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "42381")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"43518") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"44440") else
(o_add_mon_mon
(money_of_cents_string
"44440")
(o_mult_mon_rat
(money_of_cents_string
"3870")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27149")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33283")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36030") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37278") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "38563")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"39829") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"42649") else
(o_add_mon_mon
(money_of_cents_string
"42659")
(o_mult_mon_rat
(money_of_cents_string
"3708")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25469")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "30891")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "33679") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35071") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36484")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"37874") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40696") else
(o_add_mon_mon
(money_of_cents_string
"40696")
(o_mult_mon_rat
(money_of_cents_string
"3528")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3799; start_column=5;
end_line=3799; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2014) (10) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2015) (10) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "31123")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "37508")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "40330") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "41457") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "42623")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"43766") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"44693") else
(o_add_mon_mon
(money_of_cents_string
"44693")
(o_mult_mon_rat
(money_of_cents_string
"3892")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27304")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33473")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36235") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37490") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "38783")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"40056") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"42892") else
(o_add_mon_mon
(money_of_cents_string
"42892")
(o_mult_mon_rat
(money_of_cents_string
"3729")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25614")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31067")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "33871") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35271") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36692")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38090") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40928") else
(o_add_mon_mon
(money_of_cents_string
"40928")
(o_mult_mon_rat
(money_of_cents_string
"3548")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3846; start_column=5;
end_line=3846; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2015) (10) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2017) (10) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "31148")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "37538")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "40362") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "41490") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "42657")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"43801") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"44729") else
(o_add_mon_mon
(money_of_cents_string
"44729")
(o_mult_mon_rat
(money_of_cents_string
"3895")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27326")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33500")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36264") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37520") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "38814")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"40088") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"42926") else
(o_add_mon_mon
(money_of_cents_string
"42926")
(o_mult_mon_rat
(money_of_cents_string
"3732")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25634")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31092")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "33898") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35299") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36721")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38120") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"40961") else
(o_add_mon_mon
(money_of_cents_string
"40961")
(o_mult_mon_rat
(money_of_cents_string
"3551")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3893; start_column=5;
end_line=3893; end_column=62;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_and
(o_gte_dat_dat date_calcul_
(date_of_numbers (2017) (10) (1)))
(o_lt_dat_dat date_calcul_
(date_of_numbers (2019) (10) (1)))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "31382")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "37820")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "40665") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "41801") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "42977")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"44130") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"45064") else
(o_add_mon_mon
(money_of_cents_string
"45064")
(o_mult_mon_rat
(money_of_cents_string
"3924")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27531")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33751")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36536") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37801") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "39105")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"40389") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"43248") else
(o_add_mon_mon
(money_of_cents_string
"43248")
(o_mult_mon_rat
(money_of_cents_string
"3760")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25826")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31325")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34152") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35564") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "36996")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38406") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"41268") else
(o_add_mon_mon
(money_of_cents_string
"41268")
(o_mult_mon_rat
(money_of_cents_string
"3578")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3940; start_column=5;
end_line=3940; end_column=32;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_gte_dat_dat date_calcul_
(date_of_numbers (2019) (10) (1))))))
(fun (_: unit) ->
match zone_
with
| ZoneDHabitation.Zone1 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "31476")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "37933")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "40787") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "41927") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "43106")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"44262") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"45200") else
(o_add_mon_mon
(money_of_cents_string
"45200")
(o_mult_mon_rat
(money_of_cents_string
"3936")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone2 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "27614")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "33853")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "36646") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "37915") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "39222")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"40510") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"43378") else
(o_add_mon_mon
(money_of_cents_string
"43378")
(o_mult_mon_rat
(money_of_cents_string
"3771")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))
| ZoneDHabitation.Zone3 _ ->
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "25904")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "31419")) else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "1")) then
(money_of_cents_string "34255") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "2")) then
(money_of_cents_string "35670") else
( if
(o_eq nombre_personnes_a_charge_
(integer_of_string "3")) then
(money_of_cents_string "37107")
else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "4"))
then
(money_of_cents_string
"38521") else
( if
(o_eq
nombre_personnes_a_charge_
(integer_of_string "5"))
then
(money_of_cents_string
"41392") else
(o_add_mon_mon
(money_of_cents_string
"41392")
(o_mult_mon_rat
(money_of_cents_string
"3588")
(o_torat_int
(o_sub_int_int
nombre_personnes_a_charge_
(integer_of_string
"5")))))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=843; start_column=10; end_line=843; end_column=14;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let montant_forfaitaire_charges_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"montant_forfaitaire_charges"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4462;
start_column=5;
end_line=4470; end_column=16;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2023) (1) (1)))
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
copropriete_))))
(fun (_: unit) ->
o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
multiplicateur_majoration_charges_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=341;
start_column=6;
end_line=348; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1938")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3767"))
(o_mult_mon_rat
(money_of_cents_string
"969")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1953;
start_column=6;
end_line=1960; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ :
money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money
=
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon
montant_
limite_) then
limite_ else
montant_)))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=837;
start_column=6;
end_line=844; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1872")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3640"))
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3025;
start_column=6;
end_line=3032; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1864")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3625"))
(o_mult_mon_rat
(money_of_cents_string
"932")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1864")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3625"))
(o_mult_mon_rat
(money_of_cents_string
"932")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3561;
start_column=6;
end_line=3568; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1858")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3614"))
(o_mult_mon_rat
(money_of_cents_string
"929")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(match
situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string
"1858")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string
"3614"))
(o_mult_mon_rat
(money_of_cents_string
"929")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4395; start_column=6;
end_line=4402; end_column=28;
law_headings=["Article 46";
"Chapitre IX : Calcul des allocations de logement en outre-mer";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
o_add_mon_mon (money_of_cents_string
"3767")
(o_mult_mon_rat
(money_of_cents_string "969")
multiplicateur_majoration_charges_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=260; start_column=6;
end_line=267; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3767")
(o_mult_mon_rat
(money_of_cents_string
"969")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3767")
(o_mult_mon_rat
(money_of_cents_string
"969")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1873;
start_column=6;
end_line=1880; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string
"3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string
"3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if
(o_gt_mon_mon montant_
limite_) then
limite_ else montant_)))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=756; start_column=6;
end_line=763; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3640")
(o_mult_mon_rat
(money_of_cents_string
"936")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2945; start_column=6;
end_line=2952; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3625")
(o_mult_mon_rat
(money_of_cents_string
"932")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3625")
(o_mult_mon_rat
(money_of_cents_string
"932")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3481; start_column=6;
end_line=3488; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (10) (1))))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true))))
(fun (_: unit) ->
(let montant_ : money =
(o_add_mon_mon
(money_of_cents_string "3614")
(o_mult_mon_rat
(money_of_cents_string
"929")
(o_torat_int
nombre_personnes_a_charge_)))
in
(let limite_ : money =
(o_add_mon_mon
(money_of_cents_string "3614")
(o_mult_mon_rat
(money_of_cents_string
"929")
(decimal_of_string "6.")))
in
( if (o_gt_mon_mon montant_ limite_)
then limite_ else montant_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4094; start_column=57;
end_line=4094; end_column=68;
law_headings=["Article 37";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2805")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5612"))
(o_mult_mon_rat (money_of_cents_string
"1272")
multiplicateur_majoration_charges_)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1553; start_column=5;
end_line=1553; end_column=16;
law_headings=["Article 37";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2710")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5422"))
(o_mult_mon_rat (money_of_cents_string
"1229")
(o_torat_int nombre_personnes_a_charge_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2630; start_column=5;
end_line=2630; end_column=16;
law_headings=["Article 37";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))
copropriete_)))
(fun (_: unit) ->
o_add_mon_mon
(match situation_familiale_calcul_apl_
with
| SituationFamilialeCalculAPL.PersonneSeule _ ->
(money_of_cents_string "2699")
| SituationFamilialeCalculAPL.Couple _ ->
(money_of_cents_string "5399"))
(o_mult_mon_rat (money_of_cents_string
"1224")
(o_torat_int nombre_personnes_a_charge_))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4038; start_column=29;
end_line=4038; end_column=56;
law_headings=["Article 34";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5612") else
(o_add_mon_mon (money_of_cents_string "5612")
(o_mult_mon_rat (money_of_cents_string "1272")
multiplicateur_majoration_charges_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1515; start_column=29;
end_line=1515; end_column=56;
law_headings=["Article 34";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (7) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5422") else
(o_add_mon_mon (money_of_cents_string "5422")
(o_mult_mon_rat (money_of_cents_string "1229")
multiplicateur_majoration_charges_))));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2589; start_column=29;
end_line=2589; end_column=56;
law_headings=["Article 34";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (10) (1))))))
(fun (_: unit) ->
if
(o_eq nombre_personnes_a_charge_
(integer_of_string "0")) then
(money_of_cents_string "5399") else
(o_add_mon_mon (money_of_cents_string "5399")
(o_mult_mon_rat (money_of_cents_string "1224")
(o_torat_int nombre_personnes_a_charge_)))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=836; start_column=11; end_line=836; end_column=38;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let seuil_minimal_ressources_menage_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"seuil_minimal_ressources_ménage"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4715; start_column=6;
end_line=4721; end_column=6;
law_headings=["Article D842-12";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_or
(o_and
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1992) (9) (30)))
(o_lte_dat_dat date_signature_pret_
(date_of_numbers (1994) (9) (30))))
(o_and
(o_gt_dat_dat date_signature_pret_
(date_of_numbers (1994) (9) (30)))
(o_or
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
true)
(o_or
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
true
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false)
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
true
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false)))))))
(fun (_: unit) ->
o_mult_mon_rat mensualite_principale_
coefficient_d842_12_));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4733; start_column=5;
end_line=4734; end_column=59;
law_headings=["Article D842-12";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(o_gt_dat_dat date_signature_pret_
(date_of_numbers (1994) (9) (30)))
(match type_travaux_logement_
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
true
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false))))
(fun (_: unit) -> montant_forfaitaire_d842_12_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=848; start_column=11; end_line=848; end_column=42;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4467; start_column=14;
end_line=4467; end_column=36;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_lt_mon_mon
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d842_6_)
(money_of_cents_string "0")) then
(money_of_cents_string "0") else
(o_sub_mon_mon aide_finale_
montant_forfaitaire_d842_6_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=874; start_column=10; end_line=874; end_column=32;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_plafond_mensualite_d842_6_avec_copropriete_: date -> integer ->
money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"] (unembeddable)
(fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} (
[||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2609;
start_column=5;
end_line=2609; end_column=16;
law_headings=["Article 37";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
copropriete_)))
(fun (_: unit) ->
o_mult_mon_rat
((log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"output"]
(embed_money)
((calcul_plafond_mensualite_d842_6_base_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input0"]
(embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input1"]
(embed_integer)
nombre_personnes_a_charge_)))))))
(decimal_of_string "0.75")))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1533;
start_column=5;
end_line=1533; end_column=16;
law_headings=["Article 37";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1))))
copropriete_)))
(fun (_: unit) ->
o_mult_mon_rat ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_base_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input0"] (embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input1"] (embed_integer)
nombre_personnes_a_charge_)))))))
(decimal_of_string "0.75")))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4076; start_column=5;
end_line=4076; end_column=16;
law_headings=["Article 37";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
copropriete_)))
(fun (_: unit) ->
o_mult_mon_rat ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_base_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input0"] (embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input1"] (embed_integer)
nombre_personnes_a_charge_)))))))
(decimal_of_string "0.75")))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3984; start_column=14;
end_line=3984; end_column=46;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))))
(fun (_: unit) -> (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_base_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input0"] (embed_date) date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_base";
"input1"] (embed_integer)
nombre_personnes_a_charge_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=844; start_column=10; end_line=844; end_column=26;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"dépense_nette_minimale"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4651; start_column=15;
end_line=4651; end_column=37;
law_headings=["Article D842-11";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_sub_mon_mon
(o_add_mon_mon charges_mensuelles_pret_
montant_forfaitaire_charges_)
allocation_mensuelle_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=850; start_column=11; end_line=850; end_column=33;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let ressources_menage_arrondies_seuil_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"ressources_ménage_arrondies_seuil"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4754; start_column=5;
end_line=4754; end_column=28;
law_headings=["Article D842-12";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
situation_r822_11_13_17_))
(fun (_: unit) ->
ressources_menage_arrondies_base_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4744; start_column=14;
end_line=4744; end_column=41;
law_headings=["Article D842-12";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_lte_mon_mon ressources_menage_arrondies_base_
seuil_minimal_ressources_menage_) then
(o_mult_mon_rat
(o_round_mon
(o_mult_mon_rat
(o_add_mon_mon
seuil_minimal_ressources_menage_
(money_of_cents_string "4999"))
(decimal_of_string "0.01")))
(decimal_of_string "100.")) else
ressources_menage_arrondies_base_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=818; start_column=10; end_line=818; end_column=15;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_: date ->
integer ->
money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"]
(unembeddable)
(fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} (
[||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=3408;
start_column=5;
end_line=3416; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(
o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1))))
(o_and
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)))))
(fun
(_: unit) ->
(log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"]
(embed_money)
(
(calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"]
(embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"]
(embed_integer)
(integer_of_string
"6")))))))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=2872;
start_column=5;
end_line=2880; end_column=28;
law_headings=
["Article 46";
"Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2020) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1))))
(o_and
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))
(match
residence_
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)))))
(fun (_: unit) ->
(log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"]
(embed_money)
((calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"]
(embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"]
(embed_integer)
(integer_of_string
"6")))))))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=1802;
start_column=5;
end_line=1810; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2021) (10) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1))))
(o_and
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string
"6"))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)))))
(fun (_: unit) ->
(log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"]
(embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"]
(embed_integer)
(integer_of_string
"6")))))))))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=683; start_column=5;
end_line=691; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat
date_courante_
(date_of_numbers (2022) (7) (1))))
(o_and
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)))))
(fun (_: unit) -> (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"] (embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"] (embed_integer)
(integer_of_string "6")))))))))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/archives.catala_fr";
start_line=189; start_column=5;
end_line=197; end_column=28;
law_headings=["Article 46";
"Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A";
"Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (7) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))
(o_and
(o_gte_int_int
nombre_personnes_a_charge_
(integer_of_string "6"))
(match residence_
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))))
(fun (_: unit) -> (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"] (embed_date)
date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"] (embed_integer)
(integer_of_string "6")))))))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=3990; start_column=14;
end_line=3990; end_column=46;
law_headings=["Article 33";
"Chapitre IV : Calcul des allocations de logement en secteur accession";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))))
(fun (_: unit) -> (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_copropriete_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input0"] (embed_date) date_calcul_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_copropriété";
"input1"] (embed_integer)
nombre_personnes_a_charge_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=845; start_column=10; end_line=845; end_column=33;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let calcul_equivalence_loyer_minimale_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=903; start_column=14;
end_line=903; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=903; start_column=14; end_line=903; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4453; start_column=14;
end_line=4453; end_column=75;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_seuil_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4453; start_column=14; end_line=4453; end_column=75;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.condition_2_du_832_25"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4452; start_column=14;
end_line=4452; end_column=69;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4452; start_column=14; end_line=4452; end_column=69;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"]
(embed_decimal)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4455; start_column=14;
end_line=4455; end_column=70;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_nombre_parts_dot_n_nombre_parts_d832_11_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4455; start_column=14; end_line=4455; end_column=70;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})) in
let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"calcul_équivalence_loyer_minimale";
"CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale)
({CalculEquivalenceLoyerMinimaleIn.date_courante_in =
calcul_equivalence_loyer_minimale_dot_date_courante_;
CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in =
calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_;
CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in =
calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_;
CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in =
calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in
let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in
let calcul_apl_logement_foyer_dot_type_logement_foyer_: TypeLogementFoyer.t =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.type_logement_foyer"]
(embed_type_logement_foyer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=886; start_column=14;
end_line=886; end_column=59;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> TypeLogementFoyer.Autre ()))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=886; start_column=14; end_line=886; end_column=59;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_date_conventionnement_: date =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.date_conventionnement"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=888; start_column=14;
end_line=888; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> date_of_numbers (1970) (1) (1)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=888; start_column=14; end_line=888; end_column=61;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_ressources_menage_arrondies_: money =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.ressources_ménage_arrondies"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=892; start_column=14;
end_line=892; end_column=67;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_arrondies_seuil_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=892; start_column=14; end_line=892; end_column=67;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.nombre_personnes_à_charge"]
(embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=894; start_column=14;
end_line=894; end_column=65;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> nombre_personnes_a_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=894; start_column=14; end_line=894; end_column=65;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=896; start_column=14;
end_line=896; end_column=70;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> situation_familiale_calcul_apl_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=896; start_column=14; end_line=896; end_column=70;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_zone_: ZoneDHabitation.t =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.zone"] (embed_zone_d_habitation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=898; start_column=14;
end_line=898; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> zone_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=898; start_column=14; end_line=898; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_date_courante_: date =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=900; start_column=14;
end_line=900; end_column=53;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=900; start_column=14; end_line=900; end_column=53;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_redevance_: money =
try ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.redevance"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=890; start_column=14;
end_line=890; end_column=49;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> money_of_cents_string "0"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=890; start_column=14; end_line=890; end_column=49;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})) in
let calcul_apl_logement_foyer_dot_condition_2_du_832_25_: unit -> bool =
fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4419; start_column=14;
end_line=4419; end_column=61;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))) in
let calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.limitation_majoration_personnes_à_charge"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5916;
start_column=5;
end_line=5919; end_column=28;
law_headings=["Article D862-7";
"Section III : Allocations de logement";
"Chapitre II : Saint-Barthélemy et Saint-Martin";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match residence_
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5556; start_column=5;
end_line=5562; end_column=28;
law_headings=["Article D861-8";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match residence_
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))) in
let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: unit -> decimal =
fun (_: unit) -> (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer.n_nombre_parts_d832_25"] (embed_decimal)
(raise EmptyError)) in
let result_: CalculAidePersonnaliseeLogementFoyer.t = (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer"; "CalculAidePersonnaliséeLogementFoyer"]
((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"calcul_apl_logement_foyer"; "CalculAidePersonnaliséeLogementFoyer"]
calcul_aide_personnalisee_logement_foyer)
({CalculAidePersonnaliseeLogementFoyerIn.type_logement_foyer_in =
calcul_apl_logement_foyer_dot_type_logement_foyer_;
CalculAidePersonnaliseeLogementFoyerIn.date_conventionnement_in =
calcul_apl_logement_foyer_dot_date_conventionnement_;
CalculAidePersonnaliseeLogementFoyerIn.ressources_menage_arrondies_in =
calcul_apl_logement_foyer_dot_ressources_menage_arrondies_;
CalculAidePersonnaliseeLogementFoyerIn.nombre_personnes_a_charge_in =
calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_;
CalculAidePersonnaliseeLogementFoyerIn.situation_familiale_calcul_apl_in =
calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_;
CalculAidePersonnaliseeLogementFoyerIn.zone_in =
calcul_apl_logement_foyer_dot_zone_;
CalculAidePersonnaliseeLogementFoyerIn.date_courante_in =
calcul_apl_logement_foyer_dot_date_courante_;
CalculAidePersonnaliseeLogementFoyerIn.redevance_in =
calcul_apl_logement_foyer_dot_redevance_;
CalculAidePersonnaliseeLogementFoyerIn.condition_2_du_832_25_in =
calcul_apl_logement_foyer_dot_condition_2_du_832_25_;
CalculAidePersonnaliseeLogementFoyerIn.limitation_majoration_personnes_a_charge_in =
calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_;
CalculAidePersonnaliseeLogementFoyerIn.n_nombre_parts_d832_25_in =
calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_}))) in
let calcul_apl_logement_foyer_dot_coefficient_multiplicateur_d832_25_: money = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25 in
let calcul_apl_logement_foyer_dot_coefficient_r_d832_25_: money = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25 in
let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: decimal = result_.CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25 in
let calcul_apl_logement_foyer_dot_equivalence_loyer_eligible_: money = result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible in
let calcul_apl_logement_foyer_dot_plafond_equivalence_loyer_eligible_: money = result_.CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible in
let calcul_apl_logement_foyer_dot_equivalence_loyer_minimale_: money = result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale in
let calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_: decimal = result_.CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25 in
let calcul_apl_logement_foyer_dot_aide_finale_formule_: money = result_.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule in
let calcul_apl_logement_foyer_dot_traitement_aide_finale_montant_minimal_:
money -> money = result_.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale in
let seuil_minimal_depense_nette_minimale_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"seuil_minimal_dépense_nette_minimale"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4693; start_column=7;
end_line=4693; end_column=26;
law_headings=["Article D842-11";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
condition_d842_11_3_))
(fun (_: unit) ->
o_mult_mon_rat
ressources_menage_arrondies_seuil_
coefficient_d842_11_))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4674; start_column=14;
end_line=4674; end_column=50;
law_headings=["Article D842-11";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> montant_forfaitaire_d842_11_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=847; start_column=11; end_line=847; end_column=47;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let plafond_mensualite_d842_6_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"plafond_mensualité_d842_6"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4598; start_column=5;
end_line=4598; end_column=44;
law_headings=["Article D842-9";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
local_habite_premiere_fois_beneficiaire_))
(fun (_: unit) ->
(let plafond_signature_ : money =
((log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input0"] (embed_date)
date_signature_pret_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input1"] (embed_integer)
nombre_personnes_a_charge_)))))))
in
(let plafond_entree_ : money =
((log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input0"] (embed_date)
date_entree_logement_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input1"] (embed_integer)
nombre_personnes_a_charge_)))))))
in
( if
(o_lt_mon_mon plafond_signature_
plafond_entree_) then plafond_entree_
else plafond_signature_)))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4579; start_column=14;
end_line=4579; end_column=39;
law_headings=["Article D842-9";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> (log_end_call
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"output"] (embed_money)
((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input0"] (embed_date) date_signature_pret_))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom";
"input1"] (embed_integer)
nombre_personnes_a_charge_))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=839; start_column=11; end_line=839; end_column=36;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let mensualite_minimale_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "mensualité_minimale"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4448; start_column=14;
end_line=4448; end_column=33;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_equivalence_loyer_minimale_dot_montant_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=837; start_column=12; end_line=837; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let coefficient_prise_en_charge_: decimal = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"coefficient_prise_en_charge"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4422; start_column=14;
end_line=4422; end_column=41;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=838; start_column=12; end_line=838; end_column=39;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let abattement_depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"abattement_dépense_nette_minimale"] (unembeddable)
(fun (allocation_mensuelle_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4663; start_column=14;
end_line=4663; end_column=47;
law_headings=["Article D842-11";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let depense_nette_minimale_ : money =
((log_end_call
["CalculAllocationLogementAccessionPropriété";
"dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"dépense_nette_minimale"; "output"]
(embed_money) ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"dépense_nette_minimale"]
depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"dépense_nette_minimale"; "input0"]
(embed_money) allocation_mensuelle_)))))))
in
( if
(o_lt_mon_mon depense_nette_minimale_
seuil_minimal_depense_nette_minimale_) then
(o_sub_mon_mon
seuil_minimal_depense_nette_minimale_
depense_nette_minimale_) else
(money_of_cents_string "0")))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=852; start_column=11; end_line=852; end_column=44;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let mensualite_eligible_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "mensualité_éligible"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4433; start_column=14;
end_line=4433; end_column=33;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_gt_mon_mon mensualite_principale_
plafond_mensualite_d842_6_) then
plafond_mensualite_d842_6_ else
mensualite_principale_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=835; start_column=12; end_line=835; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_depense_nette_minimale_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_dépense_nette_minimale"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4481; start_column=14;
end_line=4481; end_column=36;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire"]
traitement_aide_finale_minoration_forfaitaire_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_minoration_forfaitaire";
"input0"] (embed_money) aide_finale_)))))))
in
(let abattement_ : money = ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"abattement_dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"abattement_dépense_nette_minimale";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"abattement_dépense_nette_minimale"]
abattement_depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"abattement_dépense_nette_minimale";
"input0"] (embed_money) aide_finale_)))))))
in
( if (o_lt_mon_mon aide_finale_ abattement_) then
(money_of_cents_string "0") else
(o_sub_mon_mon aide_finale_ abattement_))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=875; start_column=10; end_line=875; end_column=32;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété"; "aide_finale_formule"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4400; start_column=14;
end_line=4400; end_column=33;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_mult_mon_rat
(o_sub_mon_mon
(o_add_mon_mon mensualite_eligible_
montant_forfaitaire_charges_)
mensualite_minimale_)
coefficient_prise_en_charge_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=870; start_column=12; end_line=870; end_column=31;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_contributions_sociales_arrondi_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4495; start_column=14;
end_line=4495; end_column=36;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_dépense_nette_minimale"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_dépense_nette_minimale";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_dépense_nette_minimale"]
traitement_aide_finale_depense_nette_minimale_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_dépense_nette_minimale";
"input0"] (embed_money) aide_finale_)))))))
in
(let crds_ : money = ((log_end_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"] ((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "output"] (embed_money)
((log_begin_call
["ContributionsSocialesAidesPersonnelleLogement";
"montant"]
contributions_sociales_dot_montant_)
((log_variable_definition
["ContributionsSocialesAidesPersonnelleLogement";
"montant"; "input0"] (embed_money)
aide_finale_)))))))
in
(let aide_finale_moins_crds_arrondie_ : money =
(o_round_mon
(o_sub_mon_mon
(o_sub_mon_mon aide_finale_ crds_)
(money_of_cents_string "50")))
in
( if
(o_gte_mon_mon
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
(money_of_cents_string "0")) then
(o_add_mon_mon
aide_finale_moins_crds_arrondie_ crds_)
else (money_of_cents_string "0")))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=876; start_column=10; end_line=876; end_column=40;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_montant_minimal_: money -> money = (log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_montant_minimal"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4515; start_column=14;
end_line=4515; end_column=36;
law_headings=["Article D842-6";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_ : money = ((log_end_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi";
"output"] (embed_money) ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi"]
traitement_aide_finale_contributions_sociales_arrondi_)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale_contributions_sociales_arrondi";
"input0"] (embed_money) aide_finale_)))))))
in
( if
(o_lt_mon_mon aide_finale_
montant_minimal_aide_d842_6_) then
(money_of_cents_string "0") else aide_finale_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=877; start_column=10; end_line=877; end_column=25;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_gte_dat_dat date_signature_pret_
(date_of_numbers (1992) (9) (30)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=908; start_column=13;
end_line=908; end_column=48;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=908; start_column=13;
end_line=908; end_column=48;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (10) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=907; start_column=13;
end_line=907; end_column=42;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=907; start_column=13;
end_line=907; end_column=42;
law_headings=["Secteur accession à la propriété";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]}) in
{CalculAllocationLogementAccessionPropriete.mensualite_eligible =
mensualite_eligible_;
CalculAllocationLogementAccessionPropriete.mensualite_minimale =
mensualite_minimale_;
CalculAllocationLogementAccessionPropriete.coefficient_prise_en_charge =
coefficient_prise_en_charge_;
CalculAllocationLogementAccessionPropriete.aide_finale_formule =
aide_finale_formule_;
CalculAllocationLogementAccessionPropriete.traitement_aide_finale =
traitement_aide_finale_montant_minimal_}
let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: CalculAidePersonnaliseeLogementIn.t) : CalculAidePersonnaliseeLogement.t =
let mode_occupation_: ModeOccupation.t = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.mode_occupation_in in
let type_aide_: TypeAidesPersonnelleLogement.t = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.type_aide_in in
let ressources_menage_sans_arrondi_: money = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.ressources_menage_sans_arrondi_in in
let situation_familiale_: SituationFamiliale.t = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.situation_familiale_in in
let nombre_personnes_a_charge_: integer = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.nombre_personnes_a_charge_in in
let zone_: ZoneDHabitation.t = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.zone_in in
let date_courante_: date = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.date_courante_in in
let residence_: Collectivite.t = calcul_aide_personnalisee_logement_in.CalculAidePersonnaliseeLogementIn.residence_in in
let categorie_calcul_apl_: CategorieCalculAPL.t = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "catégorie_calcul_apl"]
(embed_categorie_calcul_a_p_l) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1420; start_column=14;
end_line=1420; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match mode_occupation_
with
| ModeOccupation.Locataire location_ ->
(CategorieCalculAPL.Location location_)
| ModeOccupation.ResidentLogementFoyer logementfoyer_ ->
(CategorieCalculAPL.LogementFoyer logementfoyer_)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(CategorieCalculAPL.AccessionPropriete
proprietaire_)
| ModeOccupation.SousLocataire location_ ->
(CategorieCalculAPL.Location location_)
| ModeOccupation.LocationAccession proprietaire_ ->
(CategorieCalculAPL.AccessionPropriete
proprietaire_)))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=758; start_column=11; end_line=758; end_column=31;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let ressources_menage_avec_arrondi_: money = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "ressources_ménage_avec_arrondi"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1941; start_column=14;
end_line=1941; end_column=31;
law_headings=["Article D823-17";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
arrondi_centaine_superieure_
ressources_menage_sans_arrondi_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=751; start_column=10; end_line=751; end_column=22;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=83; start_column=14;
end_line=83; end_column=44;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
true))
(fun (_: unit) ->
match situation_familiale_
with
| SituationFamiliale.Celibataire _ ->
(SituationFamilialeCalculAPL.PersonneSeule ())
| SituationFamiliale.Maries _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.Pacses _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.Concubins _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.CelibataireSepareDeFait _ ->
(SituationFamilialeCalculAPL.PersonneSeule ())
| SituationFamiliale.ConcubinageDontSepareDeFait _ ->
(SituationFamilialeCalculAPL.Couple ())))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=759; start_column=11; end_line=759; end_column=41;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let sous_calcul_traitement_: TraitementFormuleAideFinale.t = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "sous_calcul_traitement"]
(embed_traitement_formule_aide_finale) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1443; start_column=14;
end_line=1443; end_column=36;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match categorie_calcul_apl_
with
| CategorieCalculAPL.Location location_ ->
(let traitement_formule_ :
CalculAidePersonnaliseeLogementLocatif.t =
(let result_ :
CalculAidePersonnaliseeLogementLocatif.t =
((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"direct"]
calcul_aide_personnalisee_logement_locatif)
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"direct"; "input"]
(embed_calcul_aide_personnalisee_logement_locatif_in)
({CalculAidePersonnaliseeLogementLocatifIn.loyer_principal_base_in =
(
try
(location_.Location.loyer_principal)
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1453; start_column=31;
end_line=1453; end_column=55;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.ressources_menage_arrondies_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1448;
start_column=43;
end_line=1448; end_column=60;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in =
(
try
(location_.Location.beneficiaire_aide_adulte_ou_enfant_handicapes)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1455;
start_column=15;
end_line=1455; end_column=69;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1451;
start_column=29;
end_line=1451; end_column=42;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1449;
start_column=41;
end_line=1449; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1452;
start_column=46;
end_line=1452; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1450;
start_column=20;
end_line=1450; end_column=24;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.logement_est_chambre_in =
(
try
(location_.Location.logement_est_chambre)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1456;
start_column=36;
end_line=1456; end_column=65;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in =
(
try
(location_.Location.agees_ou_handicap_adultes_hebergees_onereux_particuliers)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1459;
start_column=15;
end_line=1459; end_column=80;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.type_aide_in =
(try type_aide_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1460;
start_column=25;
end_line=1460; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.colocation_in =
(
try (location_.Location.colocation)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1457;
start_column=26;
end_line=1457; end_column=45;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.reduction_loyer_solidarite_in =
(
try
(match
(location_.Location.bailleur)
with
| TypeBailleur.BailleurSocial bailleur_ ->
(bailleur_.ConventionBailleurSocial.reduction_loyer_solidarite_percue)
| TypeBailleur.BailleurPriveAvecConventionnementSocial _ ->
(money_of_cents_string "0")
| TypeBailleur.BailleurPrive _ ->
(money_of_cents_string "0"))
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1462;
start_column=16;
end_line=1465; end_column=39;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.logement_meuble_d842_2_in =
(
try
(location_.Location.logement_meuble_d842_2)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1466;
start_column=38;
end_line=1466; end_column=69;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementLocatifIn.residence_in =
(try residence_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1467;
start_column=25;
end_line=1467; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAidePersonnaliseeLogementLocatif.t =
({CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16 =
(result_.CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16);
CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2 =
(result_.CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2);
CalculAidePersonnaliseeLogementLocatif.participation_minimale =
(result_.CalculAidePersonnaliseeLogementLocatif.participation_minimale);
CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale =
(result_.CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale);
CalculAidePersonnaliseeLogementLocatif.participation_personnelle =
(result_.CalculAidePersonnaliseeLogementLocatif.participation_personnelle);
CalculAidePersonnaliseeLogementLocatif.aide_finale_formule =
(result_.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule);
CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale"]
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale"]
(result_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale))
((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAidePersonnaliséeLogementLocatif";
"direct"] ((log_variable_definition
["CalculAidePersonnaliséeLogementLocatif";
"direct"; "output"]
(embed_calcul_aide_personnalisee_logement_locatif)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1447; start_column=9;
end_line=1468; end_column=10;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale)}))
| CategorieCalculAPL.AccessionPropriete proprietaire_ ->
(let traitement_formule_ :
CalculAidePersonnaliseeLogementAccessionPropriete.t
=
(let result_ :
CalculAidePersonnaliseeLogementAccessionPropriete.t
= ((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"direct"]
calcul_aide_personnalisee_logement_accession_propriete)
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"direct"; "input"]
(embed_calcul_aide_personnalisee_logement_accession_propriete_in)
({CalculAidePersonnaliseeLogementAccessionProprieteIn.mensualite_principale_in =
(
try
(proprietaire_.Proprietaire.mensualite_principale)
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1505; start_column=38;
end_line=1505; end_column=72;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.ressources_menage_arrondies_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1500;
start_column=44;
end_line=1500; end_column=61;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1501;
start_column=42;
end_line=1501; end_column=67;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1504;
start_column=47;
end_line=1504; end_column=77;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.type_travaux_logement_in =
(
try
(proprietaire_.Proprietaire.type_travaux_logement_d832_15)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1506;
start_column=38;
end_line=1506; end_column=80;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.date_signature_pret_in =
(
try
((proprietaire_.Proprietaire.pret).Pret.date_signature)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1507;
start_column=36;
end_line=1507; end_column=68;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in =
(
try
(proprietaire_.Proprietaire.local_habite_premiere_fois_beneficiaire)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1509;
start_column=14;
end_line=1509; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.date_entree_logement_in =
(
try
(proprietaire_.Proprietaire.date_entree_logement)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1510;
start_column=37;
end_line=1510; end_column=70;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.copropriete_in =
(
try
(proprietaire_.Proprietaire.copropriete)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1511;
start_column=28;
end_line=1511; end_column=52;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.situation_r822_11_13_17_in =
(
try
(proprietaire_.Proprietaire.situation_r822_11_13_17)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1512;
start_column=40;
end_line=1512; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1502;
start_column=21;
end_line=1502; end_column=25;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.type_pret_in =
(
try
((proprietaire_.Proprietaire.pret).Pret.type_pret)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1513;
start_column=26;
end_line=1513; end_column=53;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.anciennete_logement_in =
(
try
(proprietaire_.Proprietaire.anciennete_logement)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1514;
start_column=36;
end_line=1514; end_column=68;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementAccessionProprieteIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1503;
start_column=30;
end_line=1503; end_column=43;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAidePersonnaliseeLogementAccessionPropriete.t
=
({CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_eligible =
(result_.CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_eligible);
CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_minimale =
(result_.CalculAidePersonnaliseeLogementAccessionPropriete.mensualite_minimale);
CalculAidePersonnaliseeLogementAccessionPropriete.coefficient_prise_en_charge_d832_10 =
(result_.CalculAidePersonnaliseeLogementAccessionPropriete.coefficient_prise_en_charge_d832_10);
CalculAidePersonnaliseeLogementAccessionPropriete.aide_finale_formule =
(result_.CalculAidePersonnaliseeLogementAccessionPropriete.aide_finale_formule);
CalculAidePersonnaliseeLogementAccessionPropriete.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale"]
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale"]
(result_.CalculAidePersonnaliseeLogementAccessionPropriete.traitement_aide_finale))
((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAidePersonnaliséeLogementAccessionPropriété";
"direct"] ((log_variable_definition
["CalculAidePersonnaliséeLogementAccessionPropriété";
"direct"; "output"]
(embed_calcul_aide_personnalisee_logement_accession_propriete)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1499; start_column=10;
end_line=1515; end_column=11;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAidePersonnaliseeLogementAccessionPropriete.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAidePersonnaliseeLogementAccessionPropriete.traitement_aide_finale)}))
| CategorieCalculAPL.LogementFoyer logement_foyer__ ->
(let traitement_formule_ :
CalculAidePersonnaliseeLogementFoyer.t =
(let result_ :
CalculAidePersonnaliseeLogementFoyer.t =
((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"direct"]
calcul_aide_personnalisee_logement_foyer)
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"direct"; "input"]
(embed_calcul_aide_personnalisee_logement_foyer_in)
({CalculAidePersonnaliseeLogementFoyerIn.type_logement_foyer_in =
(
try
(logement_foyer__.LogementFoyer.type_user)
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1486; start_column=35;
end_line=1486; end_column=55;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.date_conventionnement_in =
(
try
(logement_foyer__.LogementFoyer.date_conventionnement)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1487;
start_column=37;
end_line=1487; end_column=74;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.ressources_menage_arrondies_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1480;
start_column=43;
end_line=1480; end_column=60;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1481;
start_column=41;
end_line=1481; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1484;
start_column=46;
end_line=1484; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1482;
start_column=20;
end_line=1482; end_column=24;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1483;
start_column=29;
end_line=1483; end_column=42;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.redevance_in =
(
try
(logement_foyer__.LogementFoyer.redevance)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1485;
start_column=25;
end_line=1485; end_column=50;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAidePersonnaliseeLogementFoyerIn.condition_2_du_832_25_in =
(fun (_: unit) -> raise EmptyError);
CalculAidePersonnaliseeLogementFoyerIn.limitation_majoration_personnes_a_charge_in =
(fun (_: unit) -> raise EmptyError);
CalculAidePersonnaliseeLogementFoyerIn.n_nombre_parts_d832_25_in =
(fun (_: unit) -> raise EmptyError)}))))
in
(let result_ :
CalculAidePersonnaliseeLogementFoyer.t =
({CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25 =
(result_.CalculAidePersonnaliseeLogementFoyer.coefficient_multiplicateur_d832_25);
CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25 =
(result_.CalculAidePersonnaliseeLogementFoyer.coefficient_r_d832_25);
CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25 =
(result_.CalculAidePersonnaliseeLogementFoyer.n_nombre_parts_d832_25);
CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible =
(result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_eligible);
CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible =
(result_.CalculAidePersonnaliseeLogementFoyer.plafond_equivalence_loyer_eligible);
CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale =
(result_.CalculAidePersonnaliseeLogementFoyer.equivalence_loyer_minimale);
CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25 =
(result_.CalculAidePersonnaliseeLogementFoyer.coefficient_prise_en_charge_d832_25);
CalculAidePersonnaliseeLogementFoyer.aide_finale_formule =
(result_.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule);
CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale"]
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale"]
(result_.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale))
((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAidePersonnaliséeLogementFoyer";
"direct"] ((log_variable_definition
["CalculAidePersonnaliséeLogementFoyer";
"direct"; "output"]
(embed_calcul_aide_personnalisee_logement_foyer)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1479; start_column=9;
end_line=1488; end_column=10;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale)}))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=761; start_column=11; end_line=761; end_column=33;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_: money -> money = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "traitement_aide_finale"]
(unembeddable)
(fun (arg_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1433; start_column=14;
end_line=1433; end_column=36;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(sous_calcul_traitement_.TraitementFormuleAideFinale.traitement_aide_finale)
arg_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=764; start_column=12; end_line=764; end_column=34;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAidePersonnaliséeLogement"; "aide_finale_formule"] (embed_money)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1431; start_column=14;
end_line=1431; end_column=33;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
sous_calcul_traitement_.TraitementFormuleAideFinale.aide_finale_formule))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=763; start_column=12; end_line=763; end_column=31;
law_headings=["Tous secteurs";
"Calcul du montant de l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{CalculAidePersonnaliseeLogement.aide_finale_formule = aide_finale_formule_;
CalculAidePersonnaliseeLogement.traitement_aide_finale =
traitement_aide_finale_}
let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logement_in: EligibiliteAidesPersonnelleLogementIn.t) : EligibiliteAidesPersonnelleLogement.t =
let menage_: Menage.t = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.menage_in in
let demandeur_: Demandeur.t = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.demandeur_in in
let date_courante_: date = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.date_courante_in in
let condition_logement_residence_principale_: unit -> bool = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.condition_logement_residence_principale_in in
let condition_logement_surface_: unit -> bool = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.condition_logement_surface_in in
let date_entree_vigueur_differee_cch_: unit -> date = eligibilite_aides_personnelle_logement_in.EligibiliteAidesPersonnelleLogementIn.date_entree_vigueur_differee_cch_in in
let date_entree_vigueur_differee_cch_: date = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"date_entrée_vigueur_différée_cch"] (embed_date) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> date_entree_vigueur_differee_cch_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5471; start_column=14;
end_line=5471; end_column=46;
law_headings=["Article R861-5";
"Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> date_of_numbers (2021) (1) (1)))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=303; start_column=12; end_line=303; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let seuil_l822_3_parts_propriete_: decimal = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"seuil_l822_3_parts_propriété"] (embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=105; start_column=14;
end_line=105; end_column=42;
law_headings=["Article R822-1";
"Section 1 : Conditions relatives au bénéficiaire";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> decimal_of_string "0.1"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=308; start_column=11; end_line=308; end_column=39;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let seuil_l822_3_parts_usufruit_: decimal = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "seuil_l822_3_parts_usufruit"]
(embed_decimal) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=106; start_column=14;
end_line=106; end_column=41;
law_headings=["Article R822-1";
"Section 1 : Conditions relatives au bénéficiaire";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> decimal_of_string "0.1"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=309; start_column=11; end_line=309; end_column=38;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let usufruit_ou_propriete_famille_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"usufruit_ou_propriété_famille"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=164; start_column=14;
end_line=164; end_column=43;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_or
(match
((menage_.Menage.logement).Logement.proprietaire)
with
| ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ ->
true
| ParentOuAutre.Autre _ -> false)
(match
((menage_.Menage.logement).Logement.usufruit)
with
| ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ ->
true
| ParentOuAutre.Autre _ -> false)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=307; start_column=11; end_line=307; end_column=40;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let nombre_personnes_logement_: integer = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "nombre_personnes_logement"]
(embed_integer) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1012; start_column=14;
end_line=1012; end_column=39;
law_headings=["Article R822-25";
"Section 3 : Conditions relatives au logement";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_add_int_int
(o_add_int_int
(match (menage_.Menage.situation_familiale)
with
| SituationFamiliale.Celibataire _ ->
(integer_of_string "1")
| SituationFamiliale.Maries _ ->
(integer_of_string "2")
| SituationFamiliale.Pacses _ ->
(integer_of_string "2")
| SituationFamiliale.Concubins _ ->
(integer_of_string "2")
| SituationFamiliale.CelibataireSepareDeFait _ ->
(integer_of_string "1")
| SituationFamiliale.ConcubinageDontSepareDeFait _ ->
(integer_of_string "2"))
(menage_.Menage.nombre_autres_occupants_logement))
(o_length (menage_.Menage.personnes_a_charge))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=304; start_column=11; end_line=304; end_column=36;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let septieme_alinea_l823_1_applicable_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"septième_alinéa_l823_1_applicable"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1350; start_column=5;
end_line=1350; end_column=40;
law_headings=["Article L861-5";
"Section 2 : Dispositions communes aux aides personnelles au logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=433; start_column=9;
end_line=433; end_column=42;
law_headings=["Article L823-1";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=297; start_column=11;
end_line=297; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=297; start_column=11; end_line=297; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_non_ouverture_l822_9_decence_logement_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_non_ouverture_l822_9_decence_logement"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=364; start_column=18;
end_line=364; end_column=61;
law_headings=["Article L822-9";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_not
((menage_.Menage.logement).Logement.logement_decent_l89_462))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=295; start_column=11;
end_line=295; end_column=58;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=295; start_column=11; end_line=295; end_column=58;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_non_ouverture_l822_8_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_non_ouverture_l822_8"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=350; start_column=18;
end_line=350; end_column=67;
law_headings=["Article L822-8";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(menage_.Menage.condition_rattache_foyer_fiscal_parent_ifi)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=294; start_column=11;
end_line=294; end_column=41;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=294; start_column=11; end_line=294; end_column=41;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_logement_residence_principale_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_logement_résidence_principale"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> condition_logement_residence_principale_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=46; start_column=5;
end_line=46; end_column=41;
law_headings=["Article L821-2";
"Sous-section 1 : Aides personnelles au logement";
"Section 2 : Règles de non-cumul";
"Chapitre Ier : Principes généraux";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
((menage_.Menage.logement).Logement.residence_principale)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=290; start_column=12;
end_line=290; end_column=51;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=290; start_column=12; end_line=290; end_column=51;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let ouverture_droits_retraite_dot_date_naissance_assure_: date =
try ((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"ouverture_droits_retraite.date_naissance_assuré"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=123; start_column=14;
end_line=123; end_column=61;
law_headings=["Article L161-17-2";
"Paragraphe 1 : Information et simplification des démarches des assurés.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Titre III: Titre III : Dispositions communes relatives au financement";
"Partie législative";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) -> demandeur_.Demandeur.date_naissance))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=123; start_column=14; end_line=123; end_column=61;
law_headings=["Article L161-17-2";
"Paragraphe 1 : Information et simplification des démarches des assurés.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Titre III: Titre III : Dispositions communes relatives au financement";
"Partie législative";
"Code de la sécurité sociale"]})) in
let result_: OuvertureDroitsRetraite.t = (log_end_call
["ÉligibilitéAidesPersonnelleLogement"; "ouverture_droits_retraite";
"OuvertureDroitsRetraite"] ((log_begin_call
["ÉligibilitéAidesPersonnelleLogement"; "ouverture_droits_retraite";
"OuvertureDroitsRetraite"] ouverture_droits_retraite)
({OuvertureDroitsRetraiteIn.date_naissance_assure_in =
ouverture_droits_retraite_dot_date_naissance_assure_}))) in
let ouverture_droits_retraite_dot_age_ouverture_droit_: duration = result_.OuvertureDroitsRetraite.age_ouverture_droit in
let condition_nationalite_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "condition_nationalité"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1308; start_column=5;
end_line=1308; end_column=40;
law_headings=["Article L861-5";
"Section 2 : Dispositions communes aux aides personnelles au logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ -> false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ -> false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) ->
match (demandeur_.Demandeur.nationalite)
with
| Nationalite.Francaise _ -> false
| Nationalite.Etrangere conditions_ ->
(conditions_.ConditionsEtrangers.satisfait_art_4_ordonnance_2002_mayotte)))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=125; start_column=14;
end_line=125; end_column=35;
law_headings=["Article L822-2";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match (demandeur_.Demandeur.nationalite)
with
| Nationalite.Francaise _ -> true
| Nationalite.Etrangere conditions_ ->
(conditions_.ConditionsEtrangers.satisfait_conditions_l512_2_code_securite_sociale)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=289; start_column=11; end_line=289; end_column=32;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_individuel_l815_9_secu_: money = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"plafond_individuel_l815_9_sécu"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=329; start_column=5;
end_line=330; end_column=34;
law_headings=["Article D815-1";
"Section 1 : Ouverture du droit et liquidation de l'allocation de solidarité aux personnes âgées";
"Chapitre 5 : Allocation de solidarité aux personnes âgées";
"Titre I : Allocations aux personnes âgées";
"Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (4) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2019) (1) (1))))))
(fun (_: unit) -> money_of_cents_string "999840"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=334; start_column=5;
end_line=335; end_column=34;
law_headings=["Article D815-1";
"Section 1 : Ouverture du droit et liquidation de l'allocation de solidarité aux personnes âgées";
"Chapitre 5 : Allocation de solidarité aux personnes âgées";
"Titre I : Allocations aux personnes âgées";
"Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2020) (1) (1))))))
(fun (_: unit) -> money_of_cents_string "1041840"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=339; start_column=5;
end_line=340; end_column=34;
law_headings=["Article D815-1";
"Section 1 : Ouverture du droit et liquidation de l'allocation de solidarité aux personnes âgées";
"Chapitre 5 : Allocation de solidarité aux personnes âgées";
"Titre I : Allocations aux personnes âgées";
"Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé";
"Partie réglementaire - Décrets simples";
"Code de la sécurité sociale"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2020) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2021) (1) (1))))))
(fun (_: unit) -> money_of_cents_string "1083840"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=58; start_column=5;
end_line=58; end_column=34;
law_headings=["Circulaire de la CNAV 2023-3 du 09/01/2022 \"Revalorisation à compter du 1er janvier 2023\"";
"Montants revalorisés de l'allocation de solidarité aux personnes âgées"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2023) (1) (1)))))
(fun (_: unit) -> money_of_cents_string "1153302"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=89; start_column=5;
end_line=90; end_column=33;
law_headings=["Circulaire de la CNAV 2022-3 du 11/01/2022 \"Revalorisation à compter du 1er janvier 2022\"";
"Montants revalorisés de l'allocation de solidarité aux personnes âgées"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2023) (1) (1))))))
(fun (_: unit) -> money_of_cents_string "1100144"));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=122; start_column=5;
end_line=123; end_column=33;
law_headings=["Circulaire de la CNAV 2021-1 du 11/01/2021 \"Revalorisation à compter du 1er janvier 2021\"";
"Montants revalorisés de l'allocation de solidarité aux personnes âgées"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(o_lt_dat_dat date_courante_
(date_of_numbers (2022) (1) (1))))))
(fun (_: unit) -> money_of_cents_string "1088175"))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=312; start_column=11; end_line=312; end_column=41;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_logement_location_tiers_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_logement_location_tiers"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=221; start_column=5;
end_line=229; end_column=39;
law_headings=["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.loue_ou_sous_loue_a_des_tiers)
with
| LoueOuSousLoueADesTiers.Non _ ->
true
| LoueOuSousLoueADesTiers.Oui personne_ ->
(o_or
((let result_ :
VerificationAgeSuperieurA.t
= ((log_begin_call
["VérificationÂgeSupérieurÀ";
"direct"]
verification_age_superieur_a)
((log_variable_definition
["VérificationÂgeSupérieurÀ";
"direct"; "input"]
(embed_verification_age_superieur_a_in)
({VerificationAgeSuperieurAIn.date_naissance_in =
(
try
(personne_.PersonneSousLocation.date_naissance_personne_sous_location)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=225;
start_column=30;
end_line=225; end_column=76;
law_headings=
["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})));
VerificationAgeSuperieurAIn.date_courante_in =
(
try date_courante_
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=226;
start_column=29;
end_line=226; end_column=42;
law_headings=
["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})));
VerificationAgeSuperieurAIn.annees_in =
(
try
(duration_of_numbers (30) (0) (0))
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=227;
start_column=22;
end_line=227; end_column=27;
law_headings=
["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
VerificationAgeSuperieurA.t
=
({VerificationAgeSuperieurA.est_superieur =
(result_.VerificationAgeSuperieurA.est_superieur)})
in
((log_end_call
["VérificationÂgeSupérieurÀ";
"direct"]
((log_variable_definition
["VérificationÂgeSupérieurÀ";
"direct"; "output"]
(embed_verification_age_superieur_a)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=224;
start_column=8;
end_line=227; end_column=29;
law_headings=
["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) then result_
else result_))))))).VerificationAgeSuperieurA.est_superieur)
(personne_.PersonneSousLocation.conforme_article_l442_1)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=215; start_column=5;
end_line=216; end_column=34;
law_headings=["Article L822-4";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.loue_ou_sous_loue_a_des_tiers)
with
| LoueOuSousLoueADesTiers.Non _ -> true
| LoueOuSousLoueADesTiers.Oui _ -> false)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=292; start_column=11;
end_line=292; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=292; start_column=11; end_line=292; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let prestations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prestations_familiales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=355; start_column=14;
end_line=355; end_column=50;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=355; start_column=14; end_line=355; end_column=50;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let prestations_familiales_dot_residence_: Collectivite.t =
try ((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prestations_familiales.résidence"] (embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=356; start_column=14;
end_line=356; end_column=46;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_.Menage.residence))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=356; start_column=14; end_line=356; end_column=46;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let prestations_familiales_dot_age_l512_3_2_: unit -> duration = fun
(_: unit) ->
(log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prestations_familiales.âge_l512_3_2"]
(embed_duration)
(handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([||])
(fun
(_: unit) ->
true)
(fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5724;
start_column=5;
end_line=5727; end_column=28;
law_headings=
["Article R862-2";
"Section I : Dispositions communes aux aides personnelles au logement";
"Chapitre II : Saint-Barthélemy et Saint-Martin";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(o_gte_dat_dat
date_courante_
date_entree_vigueur_differee_cch_)
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
false
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
false
|
Collectivite.LaReunion _ ->
false
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
false))))
(fun
(_: unit) ->
duration_of_numbers (22) (0) (0)))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5629;
start_column=6;
end_line=5635; end_column=30;
law_headings=
["Article D861-9";
"Section 2 : Allocations de logement";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
true
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
false
|
Collectivite.SaintMartin _ ->
false
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)))
(fun
(_: unit) ->
duration_of_numbers (22) (0) (0)))|])
(fun
(_: unit) ->
false)
(fun
(_: unit) ->
raise
EmptyError)))|])
(fun
(_: unit) ->
true)
(fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1129;
start_column=14;
end_line=1129; end_column=49;
law_headings=
["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun
(_: unit) ->
duration_of_numbers (21) (0) (0)))|])
(fun
(_: unit) ->
false)
(fun
(_: unit) ->
raise
EmptyError)))) in
let result_: EligibilitePrestationsFamiliales.t = (log_end_call
["ÉligibilitéAidesPersonnelleLogement"; "prestations_familiales";
"ÉligibilitéPrestationsFamiliales"] ((log_begin_call
["ÉligibilitéAidesPersonnelleLogement"; "prestations_familiales";
"ÉligibilitéPrestationsFamiliales"]
eligibilite_prestations_familiales)
({EligibilitePrestationsFamilialesIn.date_courante_in =
prestations_familiales_dot_date_courante_;
EligibilitePrestationsFamilialesIn.residence_in =
prestations_familiales_dot_residence_;
EligibilitePrestationsFamilialesIn.age_l512_3_2_in =
prestations_familiales_dot_age_l512_3_2_}))) in
let prestations_familiales_dot_age_l512_3_2_: duration = result_.EligibilitePrestationsFamiliales.age_l512_3_2 in
let prestations_familiales_dot_droit_ouvert_: EnfantPrestationsFamiliales.t ->
bool = result_.EligibilitePrestationsFamiliales.droit_ouvert in
let prestations_familiales_dot_conditions_hors_age_: EnfantPrestationsFamiliales.t ->
bool = result_.EligibilitePrestationsFamiliales.conditions_hors_age in
let prestations_familiales_dot_regime_outre_mer_l751_1_: bool = result_.EligibilitePrestationsFamiliales.regime_outre_mer_l751_1 in
let condition_logement_mode_occupation_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_logement_mode_occupation"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=189;
start_column=5;
end_line=195; end_column=65;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
usufruit_ou_propriete_famille_
(o_and
(o_lt_rat_rat
(match
((menage_.Menage.logement).Logement.proprietaire)
with
| ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ ->
parts_
| ParentOuAutre.Autre _ ->
(decimal_of_string "0."))
seuil_l822_3_parts_propriete_)
(o_lt_rat_rat
(match
((menage_.Menage.logement).Logement.usufruit)
with
| ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ ->
parts_
| ParentOuAutre.Autre _ ->
(decimal_of_string "0."))
seuil_l822_3_parts_usufruit_)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=174; start_column=5;
end_line=176; end_column=30;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
usufruit_ou_propriete_famille_
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=143; start_column=5;
end_line=149; end_column=33;
law_headings=["Article L822-2";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> true
| ModeOccupation.ResidentLogementFoyer _ ->
true
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
((menage_.Menage.logement).Logement.residence_principale)
| ModeOccupation.SousLocataire _ -> true
| ModeOccupation.LocationAccession _ ->
true))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=291; start_column=11;
end_line=291; end_column=45;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=291; start_column=11; end_line=291; end_column=45;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_logement_surface_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "condition_logement_surface"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) -> condition_logement_surface_ ())|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} (
[||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5289;
start_column=5;
end_line=5290; end_column=34;
law_headings=
["Article R844-4";
"Chapitre IV : Conditions de peuplement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(menage_.Menage.personnes_agees_handicapees_foyer_r844_4)
(o_gt_int_int
nombre_personnes_logement_
(integer_of_string
"2")))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5282;
start_column=5;
end_line=5284; end_column=58;
law_headings=["Article R844-4";
"Chapitre IV : Conditions de peuplement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(menage_.Menage.personnes_agees_handicapees_foyer_r844_4)
(o_gte_int_int
((menage_.Menage.logement).Logement.surface_m_carres)
( if
(o_eq
nombre_personnes_logement_
(integer_of_string
"1")) then
(integer_of_string
"9") else
(integer_of_string
"16"))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1025; start_column=5;
end_line=1042; end_column=65;
law_headings=["Article R822-25";
"Section 3 : Conditions relatives au logement";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(let
condition_logement_surface_minimale_sans_seuil_m_carres_
: integer =
(o_add_int_int
(match
(menage_.Menage.situation_familiale)
with
| SituationFamiliale.Celibataire _ ->
(integer_of_string "9")
| SituationFamiliale.Maries _ ->
(integer_of_string "16")
| SituationFamiliale.Pacses _ ->
(integer_of_string "16")
| SituationFamiliale.Concubins _ ->
(integer_of_string "16")
| SituationFamiliale.CelibataireSepareDeFait _ ->
(integer_of_string "9")
| SituationFamiliale.ConcubinageDontSepareDeFait _ ->
(integer_of_string "16"))
(o_mult_int_int
(o_add_int_int
(menage_.Menage.nombre_autres_occupants_logement)
(o_length
(menage_.Menage.personnes_a_charge)))
(integer_of_string "9")))
in
( if
(o_and
(o_gte_int_int
condition_logement_surface_minimale_sans_seuil_m_carres_
(integer_of_string "70"))
(o_gte_int_int
nombre_personnes_logement_
(integer_of_string "8"))) then
(o_gte_int_int
((menage_.Menage.logement).Logement.surface_m_carres)
(integer_of_string "70")) else
(o_gte_int_int
((menage_.Menage.logement).Logement.surface_m_carres)
condition_logement_surface_minimale_sans_seuil_m_carres_)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=293; start_column=12;
end_line=293; end_column=38;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=293; start_column=12; end_line=293; end_column=38;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let age_l161_17_2_secu_: duration = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "âge_l161_17_2_sécu"]
(embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=125; start_column=14;
end_line=125; end_column=32;
law_headings=["Article L161-17-2";
"Paragraphe 1 : Information et simplification des démarches des assurés.";
"Sous-section 4 : Assurance vieillesse";
"Section 1 : Bénéficiaires";
"Chapitre 1er : Dispositions relatives aux prestations";
"Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales";
"Titre III: Titre III : Dispositions communes relatives au financement";
"Partie législative";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
ouverture_droits_retraite_dot_age_ouverture_droit_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=311; start_column=11; end_line=311; end_column=29;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_ouverture_l822_10_peuplement_logement_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_ouverture_l822_10_peuplement_logement"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=389; start_column=18;
end_line=389; end_column=44;
law_headings=["Article L822-10";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
condition_logement_surface_))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=296; start_column=11;
end_line=296; end_column=58;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=296; start_column=11; end_line=296; end_column=58;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let age_l351_8_1_secu_: duration = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "âge_l351_8_1_sécu"]
(embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_sécurité_sociale.catala_fr";
start_line=163; start_column=14;
end_line=163; end_column=31;
law_headings=["Article L351-8";
"Section 5 : Taux et montant de la pension";
"Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite";
"Titre V : Assurance vieillesse - Assurance veuvage";
"Livre III : Dispositions relatives aux assurances sociales et à diverses catégories de personnes rattachées au régime générale";
"Partie législative";
"Code de la sécurité sociale"]}
true))
(fun (_: unit) ->
o_add_dur_dur age_l161_17_2_secu_
(duration_of_numbers (5) (0) (0))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=310; start_column=11; end_line=310; end_column=28;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_logement_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "éligibilité_logement"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=91; start_column=5;
end_line=92; end_column=52;
law_headings=["Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_or
condition_non_ouverture_l822_8_
condition_non_ouverture_l822_9_decence_logement_)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=84; start_column=5;
end_line=87; end_column=52;
law_headings=["Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
condition_logement_residence_principale_
(o_and
condition_logement_mode_occupation_
(o_and
condition_logement_location_tiers_
condition_ouverture_l822_10_peuplement_logement_)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=298; start_column=11;
end_line=298; end_column=31;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=298; start_column=11; end_line=298; end_column=31;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_2_r823_4_: PersonneACharge.t -> bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "condition_2_r823_4"]
(unembeddable)
(fun (personne_a_charge_: PersonneACharge.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1171; start_column=5;
end_line=1194; end_column=10;
law_headings=["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
false
| PersonneACharge.AutrePersonneACharge parent_ ->
(o_and
(o_eq
(parent_.AutrePersonneACharge.parente)
(Parente.Ascendant ()))
(o_and
(o_lte_mon_mon
(parent_.AutrePersonneACharge.ressources)
(o_mult_mon_rat
plafond_individuel_l815_9_secu_
(decimal_of_string "1.25")))
(o_or
(o_or
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(parent_.AutrePersonneACharge.date_naissance)
age_l351_8_1_secu_)
date_courante_)
(o_and
(parent_.AutrePersonneACharge.titulaire_allocation_personne_agee)
((let result_ :
VerificationAgeInferieurOuEgalA.t
=
((log_begin_call
["VérificationÂgeInférieurOuÉgalÀ";
"direct"]
verification_age_inferieur_ou_egal_a)
((log_variable_definition
["VérificationÂgeInférieurOuÉgalÀ";
"direct";
"input"]
(embed_verification_age_inferieur_ou_egal_a_in)
({VerificationAgeInferieurOuEgalAIn.date_naissance_in =
(
try
(parent_.AutrePersonneACharge.date_naissance)
with
EmptyError ->
(raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1184;
start_column=38;
end_line=1184; end_column=59;
law_headings=
["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
VerificationAgeInferieurOuEgalAIn.date_courante_in =
(
try
date_courante_
with
EmptyError
-> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1185;
start_column=37;
end_line=1185; end_column=50;
law_headings=
["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
VerificationAgeInferieurOuEgalAIn.annees_in =
(
try
(duration_of_numbers (65) (0) (0))
with
EmptyError
-> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1186;
start_column=30;
end_line=1186; end_column=35;
law_headings=
["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
VerificationAgeInferieurOuEgalA.t
=
({VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal =
(result_.VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal)})
in
((log_end_call
["VérificationÂgeInférieurOuÉgalÀ";
"direct"]
((log_variable_definition
["VérificationÂgeInférieurOuÉgalÀ";
"direct"; "output"]
(embed_verification_age_inferieur_ou_egal_a)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1183;
start_column=17;
end_line=1186; end_column=37;
law_headings=
["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then
result_ else
result_))))))).VerificationAgeInferieurOuEgalA.est_inferieur_ou_egal)))
(o_and
(o_lte_dat_dat
(o_add_dat_dur AbortOnRound
(parent_.AutrePersonneACharge.date_naissance)
age_l161_17_2_secu_)
date_courante_)
(parent_.AutrePersonneACharge.beneficiaire_l161_19_l351_8_l643_3_secu))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=321; start_column=12;
end_line=321; end_column=30;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=321; start_column=12; end_line=321; end_column=30;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_: bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement"; "éligibilité"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=328; start_column=5;
end_line=330; end_column=25;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
(o_and condition_nationalite_
(o_and
condition_logement_mode_occupation_
eligibilite_logement_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=317; start_column=12;
end_line=317; end_column=23;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=317; start_column=12; end_line=317; end_column=23;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let prise_en_compte_personne_a_charge_: PersonneACharge.t -> bool = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prise_en_compte_personne_à_charge"] (unembeddable)
(fun (personne_a_charge_: PersonneACharge.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1218;
start_column=4;
end_line=1226; end_column=48;
law_headings=["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
false
| PersonneACharge.AutrePersonneACharge parent_ ->
(o_and
(o_or
(match
(parent_.AutrePersonneACharge.parente)
with
| Parente.Ascendant _ ->
true
| Parente.Descendant _ ->
false
| Parente.CollateralDeuxiemeTroisiemeDegre _ ->
false)
(o_or
(match
(parent_.AutrePersonneACharge.parente)
with
| Parente.Ascendant _ ->
false
| Parente.Descendant _ ->
true
| Parente.CollateralDeuxiemeTroisiemeDegre _ ->
false)
(match
(parent_.AutrePersonneACharge.parente)
with
| Parente.Ascendant _ ->
false
| Parente.Descendant _ ->
false
| Parente.CollateralDeuxiemeTroisiemeDegre _ ->
true)))
(o_and
(parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi)
(o_lte_mon_mon
(parent_.AutrePersonneACharge.ressources)
(o_mult_mon_rat
plafond_individuel_l815_9_secu_
(decimal_of_string "1.25"))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1199; start_column=5;
end_line=1199; end_column=44;
law_headings=["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
((log_end_call
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"]
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"; "output"]
(embed_bool) ((log_begin_call
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"]
condition_2_r823_4_)
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"; "input0"]
(embed_personne_a_charge)
personne_a_charge_)))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1812;
start_column=5;
end_line=1818; end_column=34;
law_headings=
["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
false)
(match
personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(
o_and
(match
(enfant_.EnfantACharge.obligation_scolaire)
with
|
SituationObligationScolaire.Avant _ ->
false
|
SituationObligationScolaire.Pendant _ ->
false
|
SituationObligationScolaire.Apres _ ->
true)
(o_and
(o_gt_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.EnfantACharge.date_de_naissance)
prestations_familiales_dot_age_l512_3_2_)
date_courante_)
(enfant_.EnfantACharge.etudes_apprentissage_stage_formation_pro_impossibilite_travail)))
| PersonneACharge.AutrePersonneACharge _ ->
false))))
(fun (_: unit) ->
false))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1543;
start_column=5;
end_line=1549; end_column=34;
law_headings=["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ ->
true
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(match
personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(o_and
(match
(enfant_.EnfantACharge.obligation_scolaire)
with
| SituationObligationScolaire.Avant _ ->
false
| SituationObligationScolaire.Pendant _ ->
false
| SituationObligationScolaire.Apres _ ->
true)
(o_and
(o_gt_dat_dat
(o_add_dat_dur AbortOnRound
(enfant_.EnfantACharge.date_de_naissance)
prestations_familiales_dot_age_l512_3_2_)
date_courante_)
(enfant_.EnfantACharge.etudes_apprentissage_stage_formation_pro_impossibilite_travail)))
| PersonneACharge.AutrePersonneACharge _ ->
false))))
(fun (_: unit) -> false))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=437; start_column=5;
end_line=445; end_column=28;
law_headings=["Article L823-1";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
septieme_alinea_l823_1_applicable_
(match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(match
(enfant_.EnfantACharge.nationalite)
with
| Nationalite.Francaise _ ->
false
| Nationalite.Etrangere conditions_ ->
(o_not
(conditions_.ConditionsEtrangers.satisfait_conditions_l512_2_code_securite_sociale)))
| PersonneACharge.AutrePersonneACharge _ ->
false))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1133; start_column=5;
end_line=1150; end_column=44;
law_headings=["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
((log_end_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"; "output"]
(embed_bool) ((log_begin_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"; "input0"]
(embed_enfant_prestations_familiales)
({EnfantPrestationsFamiliales.identifiant =
(enfant_.EnfantACharge.identifiant);
EnfantPrestationsFamiliales.obligation_scolaire =
(enfant_.EnfantACharge.obligation_scolaire);
EnfantPrestationsFamiliales.remuneration_mensuelle =
(enfant_.EnfantACharge.remuneration_mensuelle);
EnfantPrestationsFamiliales.date_de_naissance =
(enfant_.EnfantACharge.date_de_naissance);
EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))
| PersonneACharge.AutrePersonneACharge parent_ ->
false))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=299; start_column=11;
end_line=299; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=299; start_column=11; end_line=299; end_column=44;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let personnes_a_charge_prises_en_compte_: PersonneACharge.t array = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"personnes_à_charge_prises_en_compte"]
(embed_array (embed_personne_a_charge)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1116; start_column=14;
end_line=1116; end_column=49;
law_headings=["Article R823-4";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_filter
(fun (personne_a_charge_: PersonneACharge.t) ->
(log_end_call
["ÉligibilitéAidesPersonnelleLogement";
"prise_en_compte_personne_à_charge"]
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prise_en_compte_personne_à_charge";
"output"] (embed_bool) ((log_begin_call
["ÉligibilitéAidesPersonnelleLogement";
"prise_en_compte_personne_à_charge"]
prise_en_compte_personne_a_charge_)
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"prise_en_compte_personne_à_charge";
"input0"] (embed_personne_a_charge)
personne_a_charge_)))))))
(menage_.Menage.personnes_a_charge)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=301; start_column=11; end_line=301; end_column=46;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"coefficents_enfants_garde_alternée_pris_en_compte"]
(embed_array (embed_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=334; start_column=14;
end_line=334; end_column=63;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
o_map
(fun (personne_a_charge_: PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(match
(enfant_.EnfantACharge.situation_garde_alternee)
with
| SituationGardeAlternee.PasDeGardeAlternee _ ->
(decimal_of_string "0.")
| SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge coeff_ ->
coeff_)
| PersonneACharge.AutrePersonneACharge _ ->
(decimal_of_string "0."))
(o_filter
(fun (personne_a_charge_: PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(match
(enfant_.EnfantACharge.situation_garde_alternee)
with
| SituationGardeAlternee.PasDeGardeAlternee _ ->
false
| SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ ->
true)
| PersonneACharge.AutrePersonneACharge _ ->
false)
personnes_a_charge_prises_en_compte_)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=319; start_column=12; end_line=319; end_column=61;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let nombre_personnes_a_charge_prises_en_compte_: integer = (log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"nombre_personnes_à_charge_prises_en_compte"] (embed_integer) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=332; start_column=14;
end_line=332; end_column=56;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
o_length personnes_a_charge_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=318; start_column=12; end_line=318; end_column=54;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let _: unit = if (
try
(o_lt_rat_rat seuil_l822_3_parts_usufruit_
(decimal_of_string "0.2"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=200; start_column=13;
end_line=200; end_column=47;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=200; start_column=13;
end_line=200; end_column=47;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}) in
let _: unit = if (
try
(o_lt_rat_rat seuil_l822_3_parts_propriete_
(decimal_of_string "0.2"))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=199; start_column=13;
end_line=199; end_column=48;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})))
then () else
raise (AssertionFailed {filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=199; start_column=13;
end_line=199; end_column=48;
law_headings=["Article L822-3";
"Chapitre II : Conditions générales d'attribution";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}) in
let _: unit = if (
try
(o_gte_dat_dat date_courante_
(date_of_numbers (2018) (4) (1)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=353; start_column=13;
end_line=353; end_column=42;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}))) then
() else
raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr";
start_line=353; start_column=13;
end_line=353; end_column=42;
law_headings=["Éligibilité aux aides personnelles au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}) in
{EligibiliteAidesPersonnelleLogement.date_courante = date_courante_;
EligibiliteAidesPersonnelleLogement.eligibilite = eligibilite_;
EligibiliteAidesPersonnelleLogement.nombre_personnes_a_charge_prises_en_compte =
nombre_personnes_a_charge_prises_en_compte_;
EligibiliteAidesPersonnelleLogement.coefficents_enfants_garde_alternee_pris_en_compte =
coefficents_enfants_garde_alternee_pris_en_compte_;
EligibiliteAidesPersonnelleLogement.condition_2_r823_4 =
condition_2_r823_4_}
let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationLogementIn.t) : CalculAllocationLogement.t =
let mode_occupation_: ModeOccupation.t = calcul_allocation_logement_in.CalculAllocationLogementIn.mode_occupation_in in
let ressources_menage_sans_arrondi_: money = calcul_allocation_logement_in.CalculAllocationLogementIn.ressources_menage_sans_arrondi_in in
let situation_familiale_: SituationFamiliale.t = calcul_allocation_logement_in.CalculAllocationLogementIn.situation_familiale_in in
let nombre_personnes_a_charge_: integer = calcul_allocation_logement_in.CalculAllocationLogementIn.nombre_personnes_a_charge_in in
let zone_: ZoneDHabitation.t = calcul_allocation_logement_in.CalculAllocationLogementIn.zone_in in
let date_courante_: date = calcul_allocation_logement_in.CalculAllocationLogementIn.date_courante_in in
let type_aide_: TypeAidesPersonnelleLogement.t = calcul_allocation_logement_in.CalculAllocationLogementIn.type_aide_in in
let residence_: Collectivite.t = calcul_allocation_logement_in.CalculAllocationLogementIn.residence_in in
let categorie_calcul_apl_: CategorieCalculAPL.t = (log_variable_definition
["CalculAllocationLogement"; "catégorie_calcul_apl"]
(embed_categorie_calcul_a_p_l) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1402; start_column=14;
end_line=1402; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match mode_occupation_
with
| ModeOccupation.Locataire location_ ->
(CategorieCalculAPL.Location location_)
| ModeOccupation.ResidentLogementFoyer logementfoyer_ ->
(CategorieCalculAPL.LogementFoyer logementfoyer_)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(CategorieCalculAPL.AccessionPropriete
proprietaire_)
| ModeOccupation.SousLocataire location_ ->
(CategorieCalculAPL.Location location_)
| ModeOccupation.LocationAccession proprietaire_ ->
(CategorieCalculAPL.AccessionPropriete
proprietaire_)))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=996; start_column=11; end_line=996; end_column=31;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let ressources_menage_avec_arrondi_: money = (log_variable_definition
["CalculAllocationLogement"; "ressources_ménage_avec_arrondi"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1945; start_column=14;
end_line=1945; end_column=31;
law_headings=["Article D823-17";
"Sous-section 2 : Calcul de l'aide en secteur locatif";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
arrondi_centaine_superieure_
ressources_menage_sans_arrondi_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=988; start_column=10; end_line=988; end_column=22;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = (log_variable_definition
["CalculAllocationLogement"; "situation_familiale_calcul_apl"]
(embed_situation_familiale_calcul_a_p_l) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=93; start_column=14;
end_line=93; end_column=44;
law_headings=["Article 7";
"Chapitre III : Calcul des aides personnelles au logement en secteur locatif";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
true))
(fun (_: unit) ->
match situation_familiale_
with
| SituationFamiliale.Celibataire _ ->
(SituationFamilialeCalculAPL.PersonneSeule ())
| SituationFamiliale.Maries _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.Pacses _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.Concubins _ ->
(SituationFamilialeCalculAPL.Couple ())
| SituationFamiliale.CelibataireSepareDeFait _ ->
(SituationFamilialeCalculAPL.PersonneSeule ())
| SituationFamiliale.ConcubinageDontSepareDeFait _ ->
(SituationFamilialeCalculAPL.Couple ())))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=997; start_column=11; end_line=997; end_column=41;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let sous_calcul_traitement_: TraitementFormuleAideFinale.t = (log_variable_definition
["CalculAllocationLogement"; "sous_calcul_traitement"]
(embed_traitement_formule_aide_finale) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6364; start_column=24;
end_line=6364; end_column=46;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match residence_
with
| Collectivite.Guadeloupe _ -> false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ -> false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ -> false)))
(fun (_: unit) ->
match categorie_calcul_apl_
with
| CategorieCalculAPL.Location _ ->
({TraitementFormuleAideFinale.aide_finale_formule =
(money_of_cents_string "0");
TraitementFormuleAideFinale.traitement_aide_finale =
traitement_nul_tout_le_temps_})
| CategorieCalculAPL.AccessionPropriete _ ->
({TraitementFormuleAideFinale.aide_finale_formule =
(money_of_cents_string "0");
TraitementFormuleAideFinale.traitement_aide_finale =
traitement_nul_tout_le_temps_})
| CategorieCalculAPL.LogementFoyer logement_foyer__ ->
(let traitement_formule_ :
CalculAllocationLogementLocatif.t =
(let result_ :
CalculAllocationLogementLocatif.t
= ((log_begin_call
["CalculAllocationLogementLocatif";
"direct"]
calcul_allocation_logement_locatif)
((log_variable_definition
["CalculAllocationLogementLocatif";
"direct"; "input"]
(embed_calcul_allocation_logement_locatif_in)
({CalculAllocationLogementLocatifIn.loyer_principal_in =
(
try
(logement_foyer__.LogementFoyer.redevance)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6376;
start_column=31;
end_line=6376; end_column=56;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.ressources_menage_arrondies_in =
(
try
ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6370;
start_column=43;
end_line=6370; end_column=60;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in =
(
try
(logement_foyer__.LogementFoyer.beneficiaire_aide_adulte_ou_enfant_handicapes)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6378;
start_column=15;
end_line=6378; end_column=76;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6373;
start_column=29;
end_line=6373; end_column=42;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.nombre_personnes_a_charge_in =
(
try
nombre_personnes_a_charge_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6371;
start_column=41;
end_line=6371; end_column=66;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.situation_familiale_calcul_apl_in =
(
try
situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6374;
start_column=46;
end_line=6374; end_column=76;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6372;
start_column=20;
end_line=6372; end_column=24;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.logement_est_chambre_in =
(try true with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6382;
start_column=36;
end_line=6382; end_column=40;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in =
(try false with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6389;
start_column=72;
end_line=6389; end_column=76;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.type_aide_in =
(try type_aide_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6390;
start_column=25;
end_line=6390; end_column=34;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.colocation_in =
(try false with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6386;
start_column=26;
end_line=6386; end_column=30;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.reduction_loyer_solidarite_in =
(
try (money_of_cents_string
"0")
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6394;
start_column=42;
end_line=6394; end_column=45;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.logement_meuble_d842_2_in =
(
try
(logement_foyer__.LogementFoyer.logement_meuble_d842_2)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6395;
start_column=38;
end_line=6395; end_column=76;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.residence_in =
(try residence_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6369;
start_column=25;
end_line=6369; end_column=34;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.changement_logement_d842_4_in =
(
try
(ChangementLogementD8424.PasDeChangement
())
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6396;
start_column=42;
end_line=6396; end_column=57;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAllocationLogementLocatif.t
=
({CalculAllocationLogementLocatif.aide_finale_formule =
(result_.CalculAllocationLogementLocatif.aide_finale_formule);
CalculAllocationLogementLocatif.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAllocationLogementLocatif";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogementLocatif";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAllocationLogementLocatif";
"traitement_aide_finale"]
(result_.CalculAllocationLogementLocatif.traitement_aide_finale))
((log_variable_definition
["CalculAllocationLogementLocatif";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))})
in
((log_end_call
["CalculAllocationLogementLocatif";
"direct"] ((log_variable_definition
["CalculAllocationLogementLocatif";
"direct"; "output"]
(embed_calcul_allocation_logement_locatif)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=6368;
start_column=9;
end_line=6397; end_column=10;
law_headings=["Article D863-7";
"Sous-section III : Modalités de liquidation et de versement";
"Section II : Dispositions communes aux aides personnelles au logement";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else
result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAllocationLogementLocatif.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAllocationLogementLocatif.traitement_aide_finale)}))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1528; start_column=14;
end_line=1528; end_column=36;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match categorie_calcul_apl_
with
| CategorieCalculAPL.Location location_ ->
(let traitement_formule_ :
CalculAllocationLogementLocatif.t =
(let result_ :
CalculAllocationLogementLocatif.t =
((log_begin_call
["CalculAllocationLogementLocatif";
"direct"]
calcul_allocation_logement_locatif)
((log_variable_definition
["CalculAllocationLogementLocatif";
"direct"; "input"]
(embed_calcul_allocation_logement_locatif_in)
({CalculAllocationLogementLocatifIn.loyer_principal_in =
(
try
(location_.Location.loyer_principal)
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1539; start_column=31;
end_line=1539; end_column=55;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.ressources_menage_arrondies_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1534;
start_column=43;
end_line=1534; end_column=60;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in =
(
try
(location_.Location.beneficiaire_aide_adulte_ou_enfant_handicapes)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1541;
start_column=15;
end_line=1541; end_column=69;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1537;
start_column=29;
end_line=1537; end_column=42;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1535;
start_column=41;
end_line=1535; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1538;
start_column=46;
end_line=1538; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1536;
start_column=20;
end_line=1536; end_column=24;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.logement_est_chambre_in =
(
try
(location_.Location.logement_est_chambre)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1542;
start_column=36;
end_line=1542; end_column=65;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in =
(
try
(location_.Location.agees_ou_handicap_adultes_hebergees_onereux_particuliers)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1545;
start_column=15;
end_line=1545; end_column=80;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.type_aide_in =
(try type_aide_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1546;
start_column=25;
end_line=1546; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.colocation_in =
(
try (location_.Location.colocation)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1543;
start_column=26;
end_line=1543; end_column=45;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.reduction_loyer_solidarite_in =
(
try
(match
(location_.Location.bailleur)
with
| TypeBailleur.BailleurSocial bailleur_ ->
(bailleur_.ConventionBailleurSocial.reduction_loyer_solidarite_percue)
| TypeBailleur.BailleurPriveAvecConventionnementSocial _ ->
(money_of_cents_string "0")
| TypeBailleur.BailleurPrive _ ->
(money_of_cents_string "0"))
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1548;
start_column=16;
end_line=1551; end_column=39;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.logement_meuble_d842_2_in =
(
try
(location_.Location.logement_meuble_d842_2)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1552;
start_column=38;
end_line=1552; end_column=69;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.residence_in =
(try residence_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1533;
start_column=25;
end_line=1533; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementLocatifIn.changement_logement_d842_4_in =
(
try
(location_.Location.changement_logement_d842_4)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1553;
start_column=42;
end_line=1553; end_column=77;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAllocationLogementLocatif.t =
({CalculAllocationLogementLocatif.aide_finale_formule =
(result_.CalculAllocationLogementLocatif.aide_finale_formule);
CalculAllocationLogementLocatif.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAllocationLogementLocatif";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogementLocatif";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAllocationLogementLocatif";
"traitement_aide_finale"]
(result_.CalculAllocationLogementLocatif.traitement_aide_finale))
((log_variable_definition
["CalculAllocationLogementLocatif";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAllocationLogementLocatif"; "direct"]
((log_variable_definition
["CalculAllocationLogementLocatif"; "direct";
"output"]
(embed_calcul_allocation_logement_locatif)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1532; start_column=9;
end_line=1554; end_column=10;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAllocationLogementLocatif.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAllocationLogementLocatif.traitement_aide_finale)}))
| CategorieCalculAPL.AccessionPropriete proprietaire_ ->
(let traitement_formule_ :
CalculAllocationLogementAccessionPropriete.t
=
(let result_ :
CalculAllocationLogementAccessionPropriete.t
= ((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"direct"]
calcul_allocation_logement_accession_propriete)
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"direct"; "input"]
(embed_calcul_allocation_logement_accession_propriete_in)
({CalculAllocationLogementAccessionProprieteIn.ressources_menage_arrondies_base_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1588; start_column=44;
end_line=1588; end_column=61;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1589;
start_column=42;
end_line=1589; end_column=67;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1596;
start_column=47;
end_line=1596; end_column=77;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1590;
start_column=21;
end_line=1590; end_column=25;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.residence_in =
(try residence_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1591;
start_column=26;
end_line=1591; end_column=35;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1595;
start_column=30;
end_line=1595; end_column=43;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.mensualite_principale_in =
(
try
(proprietaire_.Proprietaire.mensualite_principale)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1597;
start_column=38;
end_line=1597; end_column=72;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.situation_r822_11_13_17_in =
(
try
(proprietaire_.Proprietaire.situation_r822_11_13_17)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1605;
start_column=40;
end_line=1605; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.date_signature_pret_in =
(
try
((proprietaire_.Proprietaire.pret).Pret.date_signature)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1600;
start_column=36;
end_line=1600; end_column=68;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.type_travaux_logement_in =
(
try
(proprietaire_.Proprietaire.type_travaux_logement_r842_5)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1599;
start_column=38;
end_line=1599; end_column=79;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.local_habite_premiere_fois_beneficiaire_in =
(
try
(proprietaire_.Proprietaire.local_habite_premiere_fois_beneficiaire)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1602;
start_column=14;
end_line=1602; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.date_entree_logement_in =
(
try
(proprietaire_.Proprietaire.date_entree_logement)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1603;
start_column=37;
end_line=1603; end_column=70;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.charges_mensuelles_pret_in =
(
try
(proprietaire_.Proprietaire.charges_mensuelles_pret)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1598;
start_column=40;
end_line=1598; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.copropriete_in =
(
try
(proprietaire_.Proprietaire.copropriete)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1604;
start_column=28;
end_line=1604; end_column=52;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementAccessionProprieteIn.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in =
(
try
(proprietaire_.Proprietaire.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1593;
start_column=11;
end_line=1594; end_column=81;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAllocationLogementAccessionPropriete.t
=
({CalculAllocationLogementAccessionPropriete.mensualite_eligible =
(result_.CalculAllocationLogementAccessionPropriete.mensualite_eligible);
CalculAllocationLogementAccessionPropriete.mensualite_minimale =
(result_.CalculAllocationLogementAccessionPropriete.mensualite_minimale);
CalculAllocationLogementAccessionPropriete.coefficient_prise_en_charge =
(result_.CalculAllocationLogementAccessionPropriete.coefficient_prise_en_charge);
CalculAllocationLogementAccessionPropriete.aide_finale_formule =
(result_.CalculAllocationLogementAccessionPropriete.aide_finale_formule);
CalculAllocationLogementAccessionPropriete.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale"]
(result_.CalculAllocationLogementAccessionPropriete.traitement_aide_finale))
((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAllocationLogementAccessionPropriété";
"direct"] ((log_variable_definition
["CalculAllocationLogementAccessionPropriété";
"direct"; "output"]
(embed_calcul_allocation_logement_accession_propriete)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1587; start_column=10;
end_line=1606; end_column=11;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAllocationLogementAccessionPropriete.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAllocationLogementAccessionPropriete.traitement_aide_finale)}))
| CategorieCalculAPL.LogementFoyer logement_foyer__ ->
(let traitement_formule_ :
CalculAllocationLogementFoyer.t =
(let result_ :
CalculAllocationLogementFoyer.t =
((log_begin_call
["CalculAllocationLogementFoyer";
"direct"]
calcul_allocation_logement_foyer)
((log_variable_definition
["CalculAllocationLogementFoyer";
"direct"; "input"]
(embed_calcul_allocation_logement_foyer_in)
({CalculAllocationLogementFoyerIn.type_logement_foyer_in =
(
try
(logement_foyer__.LogementFoyer.type_user)
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1575; start_column=35;
end_line=1575; end_column=55;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.date_conventionnement_in =
(
try
(logement_foyer__.LogementFoyer.date_conventionnement)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1576;
start_column=37;
end_line=1576; end_column=74;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.residence_in =
(try residence_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1568;
start_column=25;
end_line=1568; end_column=34;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.redevance_in =
(
try
(logement_foyer__.LogementFoyer.redevance)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1572;
start_column=25;
end_line=1572; end_column=50;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.ressources_menage_arrondies_in =
(
try ressources_menage_avec_arrondi_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1566;
start_column=43;
end_line=1566; end_column=60;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.nombre_personnes_a_charge_in =
(try nombre_personnes_a_charge_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1567;
start_column=41;
end_line=1567; end_column=66;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.situation_familiale_calcul_apl_in =
(
try situation_familiale_calcul_apl_
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1571;
start_column=46;
end_line=1571; end_column=76;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.zone_in =
(try zone_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1569;
start_column=20;
end_line=1569; end_column=24;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.date_courante_in =
(try date_courante_ with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1570;
start_column=29;
end_line=1570; end_column=42;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})));
CalculAllocationLogementFoyerIn.categorie_equivalence_loyer_d842_16_in =
(
try
(logement_foyer__.LogementFoyer.categorie_equivalence_loyer_d842_16)
with
EmptyError -> (raise
(NoValueProvided
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1574;
start_column=13;
end_line=1574; end_column=64;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]})))}))))
in
(let result_ :
CalculAllocationLogementFoyer.t =
({CalculAllocationLogementFoyer.coefficient_prise_en_charge =
(result_.CalculAllocationLogementFoyer.coefficient_prise_en_charge);
CalculAllocationLogementFoyer.equivalence_loyer =
(result_.CalculAllocationLogementFoyer.equivalence_loyer);
CalculAllocationLogementFoyer.montant_forfaitaire_charges =
(result_.CalculAllocationLogementFoyer.montant_forfaitaire_charges);
CalculAllocationLogementFoyer.loyer_minimal =
(result_.CalculAllocationLogementFoyer.loyer_minimal);
CalculAllocationLogementFoyer.aide_finale_formule =
(result_.CalculAllocationLogementFoyer.aide_finale_formule);
CalculAllocationLogementFoyer.traitement_aide_finale =
(fun (param0_: money) ->
(log_end_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale";
"output"] (embed_money)
((log_begin_call
["CalculAllocationLogementFoyer";
"traitement_aide_finale"]
(result_.CalculAllocationLogementFoyer.traitement_aide_finale))
((log_variable_definition
["CalculAllocationLogementFoyer";
"traitement_aide_finale";
"input0"] (embed_money)
param0_)))))))}) in
((log_end_call
["CalculAllocationLogementFoyer"; "direct"]
((log_variable_definition
["CalculAllocationLogementFoyer"; "direct";
"output"]
(embed_calcul_allocation_logement_foyer)
( if
((log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1565; start_column=9;
end_line=1577; end_column=10;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true)) then result_ else result_)))))))
in
({TraitementFormuleAideFinale.aide_finale_formule =
(traitement_formule_.CalculAllocationLogementFoyer.aide_finale_formule);
TraitementFormuleAideFinale.traitement_aide_finale =
(traitement_formule_.CalculAllocationLogementFoyer.traitement_aide_finale)}))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=999; start_column=11; end_line=999; end_column=33;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let traitement_aide_finale_: money -> money = (log_variable_definition
["CalculAllocationLogement"; "traitement_aide_finale"] (unembeddable)
(fun (arg_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1415; start_column=14;
end_line=1415; end_column=36;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(sous_calcul_traitement_.TraitementFormuleAideFinale.traitement_aide_finale)
arg_))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1002; start_column=12; end_line=1002; end_column=34;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculAllocationLogement"; "aide_finale_formule"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=372; start_column=5;
end_line=374; end_column=34;
law_headings=["Article 7";
"Décret n° 2021-1750 du 21 décembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement à Saint-Pierre-et-Miquelon"]}
(o_and
(match residence_
with
| Collectivite.Guadeloupe _ -> false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ -> false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ -> false)
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2022) (1) (1)))
(o_lte_dat_dat date_courante_
(date_of_numbers (2025) (12) (31)))))))
(fun (_: unit) ->
o_mult_mon_rat
(sous_calcul_traitement_.TraitementFormuleAideFinale.aide_finale_formule)
(o_div_rat_rat
(o_torat_int
(o_sub_int_int (integer_of_string
"2026")
(o_getYear date_courante_)))
(decimal_of_string "8."))))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=1413; start_column=14;
end_line=1413; end_column=33;
law_headings=["Article D823-9";
"Section 1 : Calcul, liquidation et versement des aides";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
sous_calcul_traitement_.TraitementFormuleAideFinale.aide_finale_formule))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1001; start_column=12; end_line=1001; end_column=31;
law_headings=["Tous secteurs"; "Secteur logement-foyer";
"Calcul du montant de l'allocation logement";
"Prologue : aides au logement"]})))) in
{CalculAllocationLogement.aide_finale_formule = aide_finale_formule_;
CalculAllocationLogement.traitement_aide_finale =
traitement_aide_finale_}
let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: EligibilitePrimeDeDemenagementIn.t) : EligibilitePrimeDeDemenagement.t =
let informations_: InformationsPrimeDeDemenagement.t = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.informations_in in
let date_emmenagement_: date = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.date_emmenagement_in in
let menage_: Menage.t = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.menage_in in
let demandeur_: Demandeur.t = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.demandeur_in in
let date_courante_: date = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.date_courante_in in
let depenses_justifiees_reellement_engagees_: money = eligibilite_prime_de_demenagement_in.EligibilitePrimeDeDemenagementIn.depenses_justifiees_reellement_engagees_in in
let delai_apres_emmenagement_l823_8_2_: duration = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"délai_après_emménagement_l823_8_2"] (embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2053; start_column=14;
end_line=2053; end_column=47;
law_headings=["Article D823-20";
"Section 2 : Prime de déménagement";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> duration_of_numbers (0) (6) (0)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=464; start_column=11; end_line=464; end_column=44;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_rang_enfant_: bool = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "condition_rang_enfant"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2029; start_column=5;
end_line=2034; end_column=77;
law_headings=["Article D823-20";
"Section 2 : Prime de déménagement";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_gte_int_int
(o_add_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge _ ->
true
| PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(informations_.InformationsPrimeDeDemenagement.nombre_enfants_a_naitre_apres_troisieme_mois_grossesse))
(integer_of_string "3"))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=462; start_column=11;
end_line=462; end_column=32;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=462; start_column=11; end_line=462; end_column=32;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let base_mensuelle_allocations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"base_mensuelle_allocations_familiales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=479; start_column=14;
end_line=479; end_column=65;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=479; start_column=14; end_line=479; end_column=65;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let result_: BaseMensuelleAllocationsFamiliales.t = (log_end_call
["ÉligibilitéPrimeDeDéménagement";
"base_mensuelle_allocations_familiales";
"BaseMensuelleAllocationsFamiliales"] ((log_begin_call
["ÉligibilitéPrimeDeDéménagement";
"base_mensuelle_allocations_familiales";
"BaseMensuelleAllocationsFamiliales"]
base_mensuelle_allocations_familiales)
({BaseMensuelleAllocationsFamilialesIn.date_courante_in =
base_mensuelle_allocations_familiales_dot_date_courante_}))) in
let base_mensuelle_allocations_familiales_dot_montant_: money = result_.BaseMensuelleAllocationsFamiliales.montant in
let eligibilite_apl_dot_menage_: Menage.t =
try ((log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "éligibilité_apl.ménage"]
(embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=475; start_column=14;
end_line=475; end_column=36;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=475; start_column=14; end_line=475; end_column=36;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_apl_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "éligibilité_apl.demandeur"]
(embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=476; start_column=14;
end_line=476; end_column=39;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=476; start_column=14; end_line=476; end_column=39;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_apl_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"éligibilité_apl.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=477; start_column=14;
end_line=477; end_column=43;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=477; start_column=14; end_line=477; end_column=43;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_apl_dot_condition_logement_residence_principale_: unit ->
bool =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"éligibilité_apl.condition_logement_résidence_principale"]
(embed_bool) (raise EmptyError)) in
let eligibilite_apl_dot_condition_logement_surface_: unit -> bool =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"éligibilité_apl.condition_logement_surface"] (embed_bool) (raise
EmptyError)) in
let eligibilite_apl_dot_date_entree_vigueur_differee_cch_: unit -> date =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"éligibilité_apl.date_entrée_vigueur_différée_cch"] (embed_date)
(raise EmptyError)) in
let result_: EligibiliteAidesPersonnelleLogement.t = (log_end_call
["ÉligibilitéPrimeDeDéménagement"; "éligibilité_apl";
"ÉligibilitéAidesPersonnelleLogement"] ((log_begin_call
["ÉligibilitéPrimeDeDéménagement"; "éligibilité_apl";
"ÉligibilitéAidesPersonnelleLogement"]
eligibilite_aides_personnelle_logement)
({EligibiliteAidesPersonnelleLogementIn.menage_in =
eligibilite_apl_dot_menage_;
EligibiliteAidesPersonnelleLogementIn.demandeur_in =
eligibilite_apl_dot_demandeur_;
EligibiliteAidesPersonnelleLogementIn.date_courante_in =
eligibilite_apl_dot_date_courante_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_residence_principale_in =
eligibilite_apl_dot_condition_logement_residence_principale_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_surface_in =
eligibilite_apl_dot_condition_logement_surface_;
EligibiliteAidesPersonnelleLogementIn.date_entree_vigueur_differee_cch_in =
eligibilite_apl_dot_date_entree_vigueur_differee_cch_}))) in
let eligibilite_apl_dot_date_courante_: date = result_.EligibiliteAidesPersonnelleLogement.date_courante in
let eligibilite_apl_dot_eligibilite_: bool = result_.EligibiliteAidesPersonnelleLogement.eligibilite in
let eligibilite_apl_dot_nombre_personnes_a_charge_prises_en_compte_: integer = result_.EligibiliteAidesPersonnelleLogement.nombre_personnes_a_charge_prises_en_compte in
let eligibilite_apl_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.EligibiliteAidesPersonnelleLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let eligibilite_apl_dot_condition_2_r823_4_: PersonneACharge.t -> bool = result_.EligibiliteAidesPersonnelleLogement.condition_2_r823_4 in
let condition_periode_demenagement_: bool = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement";
"condition_période_déménagement"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2038; start_column=6;
end_line=2049; end_column=75;
law_headings=["Article D823-20";
"Section 2 : Prime de déménagement";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
(informations_.InformationsPrimeDeDemenagement.date_naissance_troisieme_enfant_ou_dernier_si_plus)
with
| DateNaissanceTroisiemeOuDernierPlusEnfant.MoinsDeTroisEnfants _ ->
false
| DateNaissanceTroisiemeOuDernierPlusEnfant.PlusDeTroisEnfants date_naissance_ou_grossesse_ ->
(match date_naissance_ou_grossesse_
with
| DateDeNaissanceOuMoisDeGrossesse.DateDeNaissance date_naissance_ ->
(o_lte_dat_dat date_courante_
(o_add_dat_dur AbortOnRound
(o_firstDayOfMonth
(o_add_dat_dur AbortOnRound
date_naissance_
(duration_of_numbers (2) (0) (0))))
(duration_of_numbers (0) (0) (-1))))
| DateDeNaissanceOuMoisDeGrossesse.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse _ ->
false
| DateDeNaissanceOuMoisDeGrossesse.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse _ ->
true)))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=463; start_column=11;
end_line=463; end_column=41;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=463; start_column=11; end_line=463; end_column=41;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let plafond_d823_22_: money = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "plafond_d823_22"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4306; start_column=14;
end_line=4306; end_column=29;
law_headings=["Article 45";
"Chapitre VIII : Prime de déménagement";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))))
(fun (_: unit) ->
o_add_mon_mon
(o_mult_mon_rat
base_mensuelle_allocations_familiales_dot_montant_
(decimal_of_string "2.4"))
( if
(o_gt_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge _ ->
true
| PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string "3")) then
(o_mult_mon_rat
base_mensuelle_allocations_familiales_dot_montant_
(o_mult_rat_rat
(o_torat_int
(o_sub_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge _ ->
true
| PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string "3")))
(decimal_of_string "0.2"))) else
(money_of_cents_string "0"))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=465; start_column=11; end_line=465; end_column=26;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_: bool = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "éligibilité"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5509;
start_column=5;
end_line=5509; end_column=40;
law_headings=
["Article D861-7";
"Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(match
(menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true))))
(fun (_: unit) -> false))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1857;
start_column=5;
end_line=1857; end_column=54;
law_headings=["Article L863-2";
"Section 2 : Dispositions communes aux aides applicables à Saint-Pierre-et-Miquelon";
"Chapitre III : Saint-Pierre-et-Miquelon";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(o_gte_dat_dat
date_courante_
(date_of_numbers (2022) (1) (1)))
(match
(menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ ->
false))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1288; start_column=5;
end_line=1288; end_column=40;
law_headings=["Article L861-4";
"Section 2 : Dispositions communes aux aides personnelles au logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=585; start_column=5;
end_line=588; end_column=42;
law_headings=["Article L823-8";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and eligibilite_apl_dot_eligibilite_
(o_and condition_rang_enfant_
(o_and condition_periode_demenagement_
(o_lte_dur_dur
(o_sub_dat_dat
eligibilite_apl_dot_date_courante_
date_emmenagement_)
delai_apres_emmenagement_l823_8_2_))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=471; start_column=12;
end_line=471; end_column=23;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=471; start_column=12; end_line=471; end_column=23;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let montant_prime_demenagement_: money = (log_variable_definition
["ÉligibilitéPrimeDeDéménagement"; "montant_prime_déménagement"]
(embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2079; start_column=14;
end_line=2079; end_column=40;
law_headings=["Article D823-22";
"Section 2 : Prime de déménagement";
"Chapitre III : Modalités de liquidation et de versement";
"Titre II : Dispositions communes aux aides personnelles au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if eligibilite_ then
( if
(o_lte_mon_mon
depenses_justifiees_reellement_engagees_
plafond_d823_22_) then
depenses_justifiees_reellement_engagees_ else
plafond_d823_22_) else
(money_of_cents_string "0")))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=472; start_column=12; end_line=472; end_column=38;
law_headings=["Éligibilité à la prime de déménagement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{EligibilitePrimeDeDemenagement.eligibilite = eligibilite_;
EligibilitePrimeDeDemenagement.montant_prime_demenagement =
montant_prime_demenagement_}
let eligibilite_allocation_logement (eligibilite_allocation_logement_in: EligibiliteAllocationLogementIn.t) : EligibiliteAllocationLogement.t =
let date_courante_: date = eligibilite_allocation_logement_in.EligibiliteAllocationLogementIn.date_courante_in in
let menage_: Menage.t = eligibilite_allocation_logement_in.EligibiliteAllocationLogementIn.menage_in in
let demandeur_: Demandeur.t = eligibilite_allocation_logement_in.EligibiliteAllocationLogementIn.demandeur_in in
let beneficie_aide_personnalisee_logement_: bool = eligibilite_allocation_logement_in.EligibiliteAllocationLogementIn.beneficie_aide_personnalisee_logement_in in
let duree_l841_1_3_: duration = (log_variable_definition
["ÉligibilitéAllocationLogement"; "durée_l841_1_3"] (embed_duration) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4153; start_column=14;
end_line=4153; end_column=28;
law_headings=["Article D841-1";
"Chapitre 1 : Champ d'application";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) -> duration_of_numbers (5) (0) (0)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=416; start_column=11; end_line=416; end_column=25;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let prestations_familiales_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéAllocationLogement";
"prestations_familiales.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=432; start_column=14;
end_line=432; end_column=50;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=432; start_column=14; end_line=432; end_column=50;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let prestations_familiales_dot_residence_: Collectivite.t =
try ((log_variable_definition
["ÉligibilitéAllocationLogement";
"prestations_familiales.résidence"] (embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=433; start_column=14;
end_line=433; end_column=46;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_.Menage.residence))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=433; start_column=14; end_line=433; end_column=46;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let prestations_familiales_dot_age_l512_3_2_: unit -> duration = fun
(_: unit) ->
(log_variable_definition
["ÉligibilitéAllocationLogement";
"prestations_familiales.âge_l512_3_2"]
(embed_duration)
(raise
EmptyError)) in
let result_: EligibilitePrestationsFamiliales.t = (log_end_call
["ÉligibilitéAllocationLogement"; "prestations_familiales";
"ÉligibilitéPrestationsFamiliales"] ((log_begin_call
["ÉligibilitéAllocationLogement"; "prestations_familiales";
"ÉligibilitéPrestationsFamiliales"]
eligibilite_prestations_familiales)
({EligibilitePrestationsFamilialesIn.date_courante_in =
prestations_familiales_dot_date_courante_;
EligibilitePrestationsFamilialesIn.residence_in =
prestations_familiales_dot_residence_;
EligibilitePrestationsFamilialesIn.age_l512_3_2_in =
prestations_familiales_dot_age_l512_3_2_}))) in
let prestations_familiales_dot_age_l512_3_2_: duration = result_.EligibilitePrestationsFamiliales.age_l512_3_2 in
let prestations_familiales_dot_droit_ouvert_: EnfantPrestationsFamiliales.t ->
bool = result_.EligibilitePrestationsFamiliales.droit_ouvert in
let prestations_familiales_dot_conditions_hors_age_: EnfantPrestationsFamiliales.t ->
bool = result_.EligibilitePrestationsFamiliales.conditions_hors_age in
let prestations_familiales_dot_regime_outre_mer_l751_1_: bool = result_.EligibilitePrestationsFamiliales.regime_outre_mer_l751_1 in
let l_841_1_6_applicable_: bool = (log_variable_definition
["ÉligibilitéAllocationLogement"; "l_841_1_6_applicable"] (embed_bool)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1019; start_column=9;
end_line=1019; end_column=29;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1731; start_column=9;
end_line=1731; end_column=29;
law_headings=["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> false)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1424; start_column=9;
end_line=1424; end_column=29;
law_headings=["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=413; start_column=11;
end_line=413; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=413; start_column=11; end_line=413; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let l_841_1_2_applicable_: bool = (log_variable_definition
["ÉligibilitéAllocationLogement"; "l_841_1_2_applicable"] (embed_bool)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=913; start_column=9;
end_line=913; end_column=29;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1730; start_column=9;
end_line=1730; end_column=29;
law_headings=["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> false)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1423; start_column=9;
end_line=1423; end_column=29;
law_headings=["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=412; start_column=11;
end_line=412; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=412; start_column=11; end_line=412; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let l_841_1_1_applicable_: bool = (log_variable_definition
["ÉligibilitéAllocationLogement"; "l_841_1_1_applicable"] (embed_bool)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=891; start_column=9;
end_line=891; end_column=29;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1729; start_column=9;
end_line=1729; end_column=29;
law_headings=["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ -> false
| Collectivite.SaintBarthelemy _ ->
true
| Collectivite.SaintMartin _ ->
true
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> false)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1422; start_column=9;
end_line=1422; end_column=29;
law_headings=["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ -> true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ -> true
| Collectivite.LaReunion _ -> true
| Collectivite.SaintBarthelemy _ -> false
| Collectivite.SaintMartin _ -> false
| Collectivite.Metropole _ -> false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=411; start_column=11;
end_line=411; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=411; start_column=11; end_line=411; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_accession_propriete_: bool = (log_variable_definition
["ÉligibilitéAllocationLogement"; "condition_accession_propriété"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4382;
start_column=5;
end_line=4387; end_column=28;
law_headings=
["Article R842-5";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(o_and
(match
((proprietaire_.Proprietaire.pret).Pret.titulaire_pret)
with
| TitulairePret.Demandeur _ ->
true
| TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ ->
false)
(match
(proprietaire_.Proprietaire.type_travaux_logement_r842_5)
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
true
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4365;
start_column=5;
end_line=4370; end_column=28;
law_headings=["Article R842-5";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(o_and
(match
((proprietaire_.Proprietaire.pret).Pret.titulaire_pret)
with
| TitulairePret.Demandeur _ ->
true
| TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ ->
false)
(match
(proprietaire_.Proprietaire.type_travaux_logement_r842_5)
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
true
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4348; start_column=5;
end_line=4355; end_column=28;
law_headings=["Article R842-5";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(o_and
(match
((proprietaire_.Proprietaire.pret).Pret.titulaire_pret)
with
| TitulairePret.Demandeur _ ->
true
| TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ ->
false)
(o_or
(match
(proprietaire_.Proprietaire.type_travaux_logement_r842_5)
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
false
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
true)
(match
(proprietaire_.Proprietaire.type_travaux_logement_r842_5)
with
| TypeTravauxLogementR8425.ObjectifDecenceLogement _ ->
true
| TypeTravauxLogementR8425.PrevuDansListeR321_15 _ ->
false
| TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ ->
false
| TypeTravauxLogementR8425.PasDeTravaux _ ->
false)))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4318; start_column=5;
end_line=4320; end_column=28;
law_headings=["Article R842-5";
"Section 2 : Accession à la propriété";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> true
| ModeOccupation.ResidentLogementFoyer _ ->
true
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ -> true
| ModeOccupation.LocationAccession _ ->
true))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=410; start_column=11;
end_line=410; end_column=40;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=410; start_column=11; end_line=410; end_column=40;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_commune_dot_menage_: Menage.t =
try ((log_variable_definition
["ÉligibilitéAllocationLogement"; "éligibilité_commune.ménage"]
(embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=435; start_column=14;
end_line=435; end_column=40;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=435; start_column=14; end_line=435; end_column=40;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["ÉligibilitéAllocationLogement"; "éligibilité_commune.demandeur"]
(embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=436; start_column=14;
end_line=436; end_column=43;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=436; start_column=14; end_line=436; end_column=43;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_commune.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=437; start_column=14;
end_line=437; end_column=47;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=437; start_column=14; end_line=437; end_column=47;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_condition_logement_residence_principale_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_commune.condition_logement_résidence_principale"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4787; start_column=9;
end_line=4787; end_column=68;
law_headings=["Article R842-14";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer logement_foyer_ ->
(logement_foyer_.LogementFoyer.construit_application_loi_1957_12_III)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))) in
let eligibilite_commune_dot_condition_logement_surface_: unit -> bool =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_commune.condition_logement_surface"] (embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=4788; start_column=9;
end_line=4788; end_column=55;
law_headings=["Article R842-14";
"Section 3 : Logements-foyers";
"Chapitre 2 : Modalités de liquidation et de versement des allocations de logement";
"Titre IV : Allocations de Logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> false
| ModeOccupation.ResidentLogementFoyer logement_foyer_ ->
(logement_foyer_.LogementFoyer.construit_application_loi_1957_12_III)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ -> false
| ModeOccupation.LocationAccession _ -> false)))
(fun (_: unit) -> true))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))) in
let eligibilite_commune_dot_date_entree_vigueur_differee_cch_: unit -> date =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_commune.date_entrée_vigueur_différée_cch"]
(embed_date) (raise EmptyError)) in
let result_: EligibiliteAidesPersonnelleLogement.t = (log_end_call
["ÉligibilitéAllocationLogement"; "éligibilité_commune";
"ÉligibilitéAidesPersonnelleLogement"] ((log_begin_call
["ÉligibilitéAllocationLogement"; "éligibilité_commune";
"ÉligibilitéAidesPersonnelleLogement"]
eligibilite_aides_personnelle_logement)
({EligibiliteAidesPersonnelleLogementIn.menage_in =
eligibilite_commune_dot_menage_;
EligibiliteAidesPersonnelleLogementIn.demandeur_in =
eligibilite_commune_dot_demandeur_;
EligibiliteAidesPersonnelleLogementIn.date_courante_in =
eligibilite_commune_dot_date_courante_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_residence_principale_in =
eligibilite_commune_dot_condition_logement_residence_principale_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_surface_in =
eligibilite_commune_dot_condition_logement_surface_;
EligibiliteAidesPersonnelleLogementIn.date_entree_vigueur_differee_cch_in =
eligibilite_commune_dot_date_entree_vigueur_differee_cch_}))) in
let eligibilite_commune_dot_date_courante_: date = result_.EligibiliteAidesPersonnelleLogement.date_courante in
let eligibilite_commune_dot_eligibilite_: bool = result_.EligibiliteAidesPersonnelleLogement.eligibilite in
let eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_: integer = result_.EligibiliteAidesPersonnelleLogement.nombre_personnes_a_charge_prises_en_compte in
let eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.EligibiliteAidesPersonnelleLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let eligibilite_commune_dot_condition_2_r823_4_: PersonneACharge.t -> bool = result_.EligibiliteAidesPersonnelleLogement.condition_2_r823_4 in
let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition
["ÉligibilitéAllocationLogement";
"coefficents_enfants_garde_alternée_pris_en_compte"]
(embed_array (embed_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=441; start_column=14;
end_line=441; end_column=63;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=426; start_column=12; end_line=426; end_column=61;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let nombre_personnes_a_charge_prises_en_compte_: integer = (log_variable_definition
["ÉligibilitéAllocationLogement";
"nombre_personnes_à_charge_prises_en_compte"] (embed_integer) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=439; start_column=14;
end_line=439; end_column=56;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=425; start_column=12; end_line=425; end_column=54;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_dispositions_communes_: TypeEligibiliteAllocationLogement.t = (log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_dispositions_communes"]
(embed_type_eligibilite_allocation_logement) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=863; start_column=14;
end_line=863; end_column=25;
law_headings=["Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_or (o_not eligibilite_commune_dot_eligibilite_)
(o_not condition_accession_propriete_)) then
(TypeEligibiliteAllocationLogement.PasEligible ())
else
(TypeEligibiliteAllocationLogement.AllocationLogementSociale
())))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=423; start_column=10; end_line=423; end_column=31;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_allocation_logement_familiale_: bool = (log_variable_definition
["ÉligibilitéAllocationLogement";
"éligibilité_allocation_logement_familiale"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([|(
fun
(_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]}
([||])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1786;
start_column=5;
end_line=1786; end_column=66;
law_headings=
["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
false
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
false
|
Collectivite.LaReunion _ ->
false
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
false)
(demandeur_.Demandeur.est_non_salarie_agricole_l781_8_l_781_46_code_rural))))
(fun
(_: unit) ->
true))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1752;
start_column=5;
end_line=1768; end_column=9;
law_headings=
["Article L862-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
false
|
Collectivite.Guyane _ ->
false
|
Collectivite.Martinique _ ->
false
|
Collectivite.LaReunion _ ->
false
|
Collectivite.SaintBarthelemy _ ->
true
|
Collectivite.SaintMartin _ ->
true
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
false)
(o_gte_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match
personne_a_charge_
with
|
PersonneACharge.EnfantACharge enfant_ ->
((log_end_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"input0"]
(embed_enfant_prestations_familiales)
({EnfantPrestationsFamiliales.identifiant =
(enfant_.EnfantACharge.identifiant);
EnfantPrestationsFamiliales.obligation_scolaire =
(enfant_.EnfantACharge.obligation_scolaire);
EnfantPrestationsFamiliales.remuneration_mensuelle =
(enfant_.EnfantACharge.remuneration_mensuelle);
EnfantPrestationsFamiliales.date_de_naissance =
(enfant_.EnfantACharge.date_de_naissance);
EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))
|
PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string
"1")))))
(fun
(_: unit) ->
true))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1497;
start_column=5;
end_line=1497; end_column=66;
law_headings=
["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
true
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
false
|
Collectivite.SaintMartin _ ->
false
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(demandeur_.Demandeur.est_non_salarie_agricole_l781_8_l_781_46_code_rural))))
(fun
(_: unit) ->
true))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1460;
start_column=5;
end_line=1476; end_column=9;
law_headings=
["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
|
Collectivite.Guadeloupe _ ->
true
|
Collectivite.Guyane _ ->
true
|
Collectivite.Martinique _ ->
true
|
Collectivite.LaReunion _ ->
true
|
Collectivite.SaintBarthelemy _ ->
false
|
Collectivite.SaintMartin _ ->
false
|
Collectivite.Metropole _ ->
false
|
Collectivite.SaintPierreEtMiquelon _ ->
false
|
Collectivite.Mayotte _ ->
true)
(o_gte_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match
personne_a_charge_
with
|
PersonneACharge.EnfantACharge enfant_ ->
((log_end_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"input0"]
(embed_enfant_prestations_familiales)
({EnfantPrestationsFamiliales.identifiant =
(enfant_.EnfantACharge.identifiant);
EnfantPrestationsFamiliales.obligation_scolaire =
(enfant_.EnfantACharge.obligation_scolaire);
EnfantPrestationsFamiliales.remuneration_mensuelle =
(enfant_.EnfantACharge.remuneration_mensuelle);
EnfantPrestationsFamiliales.date_de_naissance =
(enfant_.EnfantACharge.date_de_naissance);
EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))
|
PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string
"1")))))
(fun
(_: unit) ->
true))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1023;
start_column=5;
end_line=1028; end_column=29;
law_headings=
["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
l_841_1_6_applicable_
(match
(menage_.Menage.situation_familiale)
with
|
SituationFamiliale.Celibataire _ ->
(o_and
(o_eq
(o_length
(menage_.Menage.personnes_a_charge))
(integer_of_string
"0"))
(menage_.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse))
|
SituationFamiliale.Maries _ ->
false
|
SituationFamiliale.Pacses _ ->
false
|
SituationFamiliale.Concubins _ ->
false
|
SituationFamiliale.CelibataireSepareDeFait _ ->
false
|
SituationFamiliale.ConcubinageDontSepareDeFait _ ->
false))))
(fun
(_: unit) ->
true))|])
(fun
(_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=998;
start_column=5;
end_line=1009; end_column=13;
law_headings=
["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_gte_int_int
(
o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match
personne_a_charge_
with
|
PersonneACharge.EnfantACharge enfant_ ->
false
|
PersonneACharge.AutrePersonneACharge parent_ ->
(o_and
(parent_.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre)
(parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi)))
(menage_.Menage.personnes_a_charge)))
(integer_of_string
"1"))))
(fun
(_: unit) ->
true))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=980;
start_column=5;
end_line=982; end_column=9;
law_headings=
["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_gte_int_int
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
(log_end_call
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"]
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4"]
eligibilite_commune_dot_condition_2_r823_4_)
((log_variable_definition
["ÉligibilitéAidesPersonnelleLogement";
"condition_2_r823_4";
"input0"]
(embed_personne_a_charge)
personne_a_charge_)))))))
(menage_.Menage.personnes_a_charge)))
(integer_of_string
"1"))))
(fun (_: unit) -> true))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=945;
start_column=5;
end_line=966; end_column=29;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(o_eq
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match
personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(
o_not
((log_end_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"input0"]
(embed_enfant_prestations_familiales)
({EnfantPrestationsFamiliales.identifiant =
(enfant_.EnfantACharge.identifiant);
EnfantPrestationsFamiliales.obligation_scolaire =
(enfant_.EnfantACharge.obligation_scolaire);
EnfantPrestationsFamiliales.remuneration_mensuelle =
(enfant_.EnfantACharge.remuneration_mensuelle);
EnfantPrestationsFamiliales.date_de_naissance =
(enfant_.EnfantACharge.date_de_naissance);
EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))))
| PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string
"0"))
(match
(menage_.Menage.situation_familiale)
with
| SituationFamiliale.Celibataire _ ->
false
| SituationFamiliale.Maries date_mariage_ ->
(o_lte_dat_dat
date_courante_
(o_add_dat_dur AbortOnRound
date_mariage_
duree_l841_1_3_))
| SituationFamiliale.Pacses _ ->
false
| SituationFamiliale.Concubins _ ->
false
| SituationFamiliale.CelibataireSepareDeFait _ ->
false
| SituationFamiliale.ConcubinageDontSepareDeFait _ ->
false))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=917; start_column=5;
end_line=934; end_column=8;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and l_841_1_2_applicable_
(o_eq
(o_length
(o_filter
(fun
(personne_a_charge_:
PersonneACharge.t) ->
match
personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
((log_end_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert"]
prestations_familiales_dot_droit_ouvert_)
((log_variable_definition
["ÉligibilitéPrestationsFamiliales";
"droit_ouvert";
"input0"]
(embed_enfant_prestations_familiales)
({EnfantPrestationsFamiliales.identifiant =
(enfant_.EnfantACharge.identifiant);
EnfantPrestationsFamiliales.obligation_scolaire =
(enfant_.EnfantACharge.obligation_scolaire);
EnfantPrestationsFamiliales.remuneration_mensuelle =
(enfant_.EnfantACharge.remuneration_mensuelle);
EnfantPrestationsFamiliales.date_de_naissance =
(enfant_.EnfantACharge.date_de_naissance);
EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales =
(enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales);
EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement =
(enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))
| PersonneACharge.AutrePersonneACharge _ ->
false)
(menage_.Menage.personnes_a_charge)))
(integer_of_string "1")))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=895; start_column=5;
end_line=901; end_column=6;
law_headings=["Article L841-1";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and l_841_1_1_applicable_
(o_fold
(fun (acc_: bool)
(prestation_: PrestationRecue.t) ->
o_or acc_
(o_or
(o_eq prestation_
(PrestationRecue.AllocationsFamiliales
()))
(o_or
(o_eq prestation_
(PrestationRecue.ComplementFamilial
()))
(o_or
(o_eq prestation_
(PrestationRecue.AllocationSoutienFamilial
()))
(o_eq prestation_
(PrestationRecue.AllocationSoutienEnfantHandicape
())))))) false
(menage_.Menage.prestations_recues)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=415; start_column=11;
end_line=415; end_column=52;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=415; start_column=11; end_line=415; end_column=52;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_l841_2_: TypeEligibiliteAllocationLogement.t = (log_variable_definition
["ÉligibilitéAllocationLogement"; "éligibilité_l841_2"]
(embed_type_eligibilite_allocation_logement) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1607;
start_column=5;
end_line=1608; end_column=79;
law_headings=["Article L861-8";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match
(menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ ->
false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ ->
true)
(demandeur_.Demandeur.magistrat_fonctionnaire_centre_interets_materiels_familiaux_hors_mayotte))))
(fun (_: unit) ->
TypeEligibiliteAllocationLogement.PasEligible
()))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1573; start_column=5;
end_line=1582; end_column=28;
law_headings=["Article L861-6";
"Section 4 : Allocations de logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(o_or
(o_gt_dat_dat
((proprietaire_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2017) (12) (31)))
(o_and
(o_gt_dat_dat
((proprietaire_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2019) (12) (31)))
(match
((proprietaire_.Proprietaire.pret).Pret.accord_financement_representant_Etat_outre_mer)
with
| AccordFinancementRepresentantEtatOutreMer.Accord date_accord_ ->
(o_lte_dat_dat
date_accord_
(date_of_numbers (2018) (12) (31)))
| AccordFinancementRepresentantEtatOutreMer.PasdAccord _ ->
false)))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false))))
(fun (_: unit) ->
TypeEligibiliteAllocationLogement.PasEligible
()))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1155; start_column=5;
end_line=1155; end_column=73;
law_headings=["Article L841-3";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(demandeur_.Demandeur.personne_hebergee_centre_soin_l_L162_22_3_securite_sociale)))
(fun (_: unit) ->
TypeEligibiliteAllocationLogement.AllocationLogementSociale
()))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1169; start_column=5;
end_line=1172; end_column=28;
law_headings=["Article L841-4";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ ->
(o_gt_dat_dat
((proprietaire_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2017) (12) (31)))
| ModeOccupation.SousLocataire _ -> false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) ->
TypeEligibiliteAllocationLogement.PasEligible
()))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1055; start_column=29;
end_line=1055; end_column=40;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if
(o_or
(o_eq eligibilite_dispositions_communes_
(TypeEligibiliteAllocationLogement.PasEligible
()))
beneficie_aide_personnalisee_logement_) then
(TypeEligibiliteAllocationLogement.PasEligible ())
else
( if eligibilite_allocation_logement_familiale_
then
(TypeEligibiliteAllocationLogement.AllocationLogementFamiliale
()) else
(TypeEligibiliteAllocationLogement.AllocationLogementSociale
()))))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=424; start_column=10; end_line=424; end_column=16;
law_headings=["Éligibilité aux allocations de logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{EligibiliteAllocationLogement.eligibilite = eligibilite_l841_2_;
EligibiliteAllocationLogement.nombre_personnes_a_charge_prises_en_compte =
nombre_personnes_a_charge_prises_en_compte_;
EligibiliteAllocationLogement.coefficents_enfants_garde_alternee_pris_en_compte =
coefficents_enfants_garde_alternee_pris_en_compte_}
let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_logement_in: EligibiliteAidePersonnaliseeLogementIn.t) : EligibiliteAidePersonnaliseeLogement.t =
let menage_: Menage.t = eligibilite_aide_personnalisee_logement_in.EligibiliteAidePersonnaliseeLogementIn.menage_in in
let demandeur_: Demandeur.t = eligibilite_aide_personnalisee_logement_in.EligibiliteAidePersonnaliseeLogementIn.demandeur_in in
let date_courante_: date = eligibilite_aide_personnalisee_logement_in.EligibiliteAidePersonnaliseeLogementIn.date_courante_in in
let caracteristiques_pret_l831_1_1_: Pret.t -> bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_1"] (unembeddable)
(fun (pret_: Pret.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2993;
start_column=5;
end_line=2996; end_column=41;
law_headings=["Article R832-7";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match
(pret_.Pret.titulaire_pret)
with
| TitulairePret.Demandeur _ ->
false
| TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ ->
true)
(o_or
(match
(pret_.Pret.type_pret)
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ ->
true
| TypePret.D331_76_1 _ ->
false
| TypePret.Autre _ ->
false)
(match
(pret_.Pret.type_pret)
with
| TypePret.D331_32 _ ->
false
| TypePret.D331_63_64 _ ->
false
| TypePret.D331_59_8 _ ->
false
| TypePret.D331_76_1 _ ->
true
| TypePret.Autre _ ->
false)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=2958; start_column=5;
end_line=2960; end_column=42;
law_headings=["Article R832-5";
"Section 2 : Accession à la propriété";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(o_and
(match (pret_.Pret.titulaire_pret)
with
| TitulairePret.Demandeur _ -> true
| TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ ->
false)
(o_or
(match (pret_.Pret.type_pret)
with
| TypePret.D331_32 _ -> true
| TypePret.D331_63_64 _ -> false
| TypePret.D331_59_8 _ -> false
| TypePret.D331_76_1 _ -> false
| TypePret.Autre _ -> false)
(match (pret_.Pret.type_pret)
with
| TypePret.D331_32 _ -> false
| TypePret.D331_63_64 _ -> true
| TypePret.D331_59_8 _ -> false
| TypePret.D331_76_1 _ -> false
| TypePret.Autre _ -> false)))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=370; start_column=11;
end_line=370; end_column=41;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=370; start_column=11; end_line=370; end_column=41;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let caracteristiques_pret_l831_1_6_: Pret.t -> bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_6"] (unembeddable)
(fun (pret_: Pret.t) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=371; start_column=11;
end_line=371; end_column=41;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=371; start_column=11; end_line=371; end_column=41;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_commune_dot_menage_: Menage.t =
try ((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.ménage"] (embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=382; start_column=14;
end_line=382; end_column=40;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=382; start_column=14; end_line=382; end_column=40;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.demandeur"] (embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=383; start_column=14;
end_line=383; end_column=43;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=383; start_column=14; end_line=383; end_column=43;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_date_courante_: date =
try ((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=384; start_column=14;
end_line=384; end_column=47;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=384; start_column=14; end_line=384; end_column=47;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})) in
let eligibilite_commune_dot_condition_logement_residence_principale_:
unit -> bool = fun (_: unit) -> (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.condition_logement_résidence_principale"]
(embed_bool) (raise EmptyError)) in
let eligibilite_commune_dot_condition_logement_surface_: unit -> bool =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.condition_logement_surface"] (embed_bool)
(raise EmptyError)) in
let eligibilite_commune_dot_date_entree_vigueur_differee_cch_: unit -> date =
fun (_: unit) -> (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"éligibilité_commune.date_entrée_vigueur_différée_cch"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=5475; start_column=5;
end_line=5476; end_column=53;
law_headings=["Article R861-5";
"Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Disposition particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> false
| ModeOccupation.ResidentLogementFoyer _ -> false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
true
| ModeOccupation.SousLocataire _ -> false
| ModeOccupation.LocationAccession _ -> false)))
(fun (_: unit) -> date_of_numbers (2021) (5) (1)))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))) in
let result_: EligibiliteAidesPersonnelleLogement.t = (log_end_call
["ÉligibilitéAidePersonnaliséeLogement"; "éligibilité_commune";
"ÉligibilitéAidesPersonnelleLogement"] ((log_begin_call
["ÉligibilitéAidePersonnaliséeLogement"; "éligibilité_commune";
"ÉligibilitéAidesPersonnelleLogement"]
eligibilite_aides_personnelle_logement)
({EligibiliteAidesPersonnelleLogementIn.menage_in =
eligibilite_commune_dot_menage_;
EligibiliteAidesPersonnelleLogementIn.demandeur_in =
eligibilite_commune_dot_demandeur_;
EligibiliteAidesPersonnelleLogementIn.date_courante_in =
eligibilite_commune_dot_date_courante_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_residence_principale_in =
eligibilite_commune_dot_condition_logement_residence_principale_;
EligibiliteAidesPersonnelleLogementIn.condition_logement_surface_in =
eligibilite_commune_dot_condition_logement_surface_;
EligibiliteAidesPersonnelleLogementIn.date_entree_vigueur_differee_cch_in =
eligibilite_commune_dot_date_entree_vigueur_differee_cch_}))) in
let eligibilite_commune_dot_date_courante_: date = result_.EligibiliteAidesPersonnelleLogement.date_courante in
let eligibilite_commune_dot_eligibilite_: bool = result_.EligibiliteAidesPersonnelleLogement.eligibilite in
let eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_: integer = result_.EligibiliteAidesPersonnelleLogement.nombre_personnes_a_charge_prises_en_compte in
let eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.EligibiliteAidesPersonnelleLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let eligibilite_commune_dot_condition_2_r823_4_: PersonneACharge.t -> bool = result_.EligibiliteAidesPersonnelleLogement.condition_2_r823_4 in
let logement_situe_commune_desequilibre_l831_2_: bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"logement_situé_commune_déséquilibre_l831_2"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/arrete_2019-09-27.catala_fr";
start_line=4658; start_column=6;
end_line=4658; end_column=43;
law_headings=["Article 49";
"Chapitre XI : Dispositions communes";
"Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2019) (10) (1)))
(match
((menage_.Menage.logement).Logement.zone)
with
| ZoneDHabitation.Zone1 _ -> false
| ZoneDHabitation.Zone2 _ -> false
| ZoneDHabitation.Zone3 _ -> true))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=367; start_column=11;
end_line=367; end_column=53;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=367; start_column=11; end_line=367; end_column=53;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_logement_bailleur_: bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"condition_logement_bailleur"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1393; start_column=5;
end_line=1396; end_column=30;
law_headings=["Article L861-5-1";
"Section 3 : Aide personnalisée au logement";
"Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
true
| Collectivite.Guyane _ -> true
| Collectivite.Martinique _ ->
true
| Collectivite.LaReunion _ ->
true
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
false
| Collectivite.Mayotte _ -> true)
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer location_ ->
(location_.LogementFoyer.conventionne_selon_regles_drom)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=707; start_column=5;
end_line=710; end_column=30;
law_headings=["Article L831-1";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> false
| ModeOccupation.ResidentLogementFoyer location_ ->
(location_.LogementFoyer.conventionne_livre_III_titre_V_chap_III)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ -> false
| ModeOccupation.LocationAccession _ ->
false))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)));
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = "";
start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=
[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_reglementaire.catala_fr";
start_line=3665;
start_column=5;
end_line=3670; end_column=30;
law_headings=
["Article R832-21";
"Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements à usage locatif";
"Section 3 : Logements-foyers";
"Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie réglementaire";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer logement_foyer_ ->
(logement_foyer_.LogementFoyer.remplit_conditions_r832_21)
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=724;
start_column=5;
end_line=727; end_column=30;
law_headings=["Article L831-1";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession propriete_ ->
((log_end_call
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_6"]
((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_6";
"output"]
(embed_bool)
((log_begin_call
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_6"]
caracteristiques_pret_l831_1_6_)
((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_6";
"input0"]
(embed_pret)
(propriete_.Proprietaire.pret)))))))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=663; start_column=5;
end_line=672; end_column=30;
law_headings=["Article L831-1";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire location_ ->
(match
(location_.Location.bailleur)
with
| TypeBailleur.BailleurSocial convention_ ->
(convention_.ConventionBailleurSocial.conventionne_livre_III_titre_V_chap_III)
| TypeBailleur.BailleurPriveAvecConventionnementSocial convention_ ->
(convention_.ConventionANHA.conventionne_livre_III_titre_II_chap_I_sec_3)
| TypeBailleur.BailleurPrive _ ->
false)
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ ->
false
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession _ ->
false)))
(fun (_: unit) -> true))|])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=642; start_column=5;
end_line=645; end_column=30;
law_headings=["Article L831-1";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ -> false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation propriete_ ->
((log_end_call
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_1"]
((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_1";
"output"] (embed_bool)
((log_begin_call
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_1"]
caracteristiques_pret_l831_1_1_)
((log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"caractéristiques_prêt_l831_1_1";
"input0"] (embed_pret)
(propriete_.Proprietaire.pret))))))))
| ModeOccupation.SousLocataire _ -> false
| ModeOccupation.LocationAccession _ ->
false))) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=368; start_column=11;
end_line=368; end_column=38;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=368; start_column=11; end_line=368; end_column=38;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"coefficents_enfants_garde_alternée_pris_en_compte"]
(embed_array (embed_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=388; start_column=14;
end_line=388; end_column=63;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=377; start_column=12; end_line=377; end_column=61;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let nombre_personnes_a_charge_prises_en_compte_: integer = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement";
"nombre_personnes_à_charge_prises_en_compte"] (embed_integer) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=386; start_column=14;
end_line=386; end_column=56;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=376; start_column=12; end_line=376; end_column=54;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let condition_logement_pret_: bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement"; "condition_logement_prêt"]
(embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1; end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) ->
(log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=763;
start_column=5;
end_line=776; end_column=30;
law_headings=["Article L831-2";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation propriete_ ->
(o_and
(o_gte_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2018) (1) (1)))
(o_and
(o_lt_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2020) (1) (1)))
(o_and
(match
(propriete_.Proprietaire.anciennete_logement)
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
logement_situe_commune_desequilibre_l831_2_)))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession propriete_ ->
(o_and
(o_gte_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2018) (1) (1)))
(o_and
(o_lt_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2020) (1) (1)))
(o_and
(match
(propriete_.Proprietaire.anciennete_logement)
with
| NeufOuAncien.Neuf _ ->
false
| NeufOuAncien.Ancien _ ->
true)
logement_situe_commune_desequilibre_l831_2_))))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=744; start_column=5;
end_line=749; end_column=30;
law_headings=["Article L831-2";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(match
((menage_.Menage.logement).Logement.mode_occupation)
with
| ModeOccupation.Locataire _ ->
false
| ModeOccupation.ResidentLogementFoyer _ ->
false
| ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation propriete_ ->
(o_gte_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2017) (12) (31)))
| ModeOccupation.SousLocataire _ ->
false
| ModeOccupation.LocationAccession propriete_ ->
(o_gte_dat_dat
((propriete_.Proprietaire.pret).Pret.date_signature)
(date_of_numbers (2017) (12) (31))))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=739; start_column=31;
end_line=739; end_column=54;
law_headings=["Article L831-2";
"Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=369; start_column=11;
end_line=369; end_column=34;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=369; start_column=11; end_line=369; end_column=34;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
let eligibilite_: bool = (log_variable_definition
["ÉligibilitéAidePersonnaliséeLogement"; "éligibilité"] (embed_bool)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||]) (fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0;
start_column=1;
end_line=0; end_column=1;
law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1252; start_column=5;
end_line=1253; end_column=54;
law_headings=["Article L860-3";
"Titre VI : Dispositions particulières à l'outre-mer";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and
(o_gte_dat_dat date_courante_
(date_of_numbers (2021) (1) (1)))
(match (menage_.Menage.residence)
with
| Collectivite.Guadeloupe _ ->
false
| Collectivite.Guyane _ -> false
| Collectivite.Martinique _ ->
false
| Collectivite.LaReunion _ ->
false
| Collectivite.SaintBarthelemy _ ->
false
| Collectivite.SaintMartin _ ->
false
| Collectivite.Metropole _ ->
false
| Collectivite.SaintPierreEtMiquelon _ ->
true
| Collectivite.Mayotte _ ->
false))))
(fun (_: unit) -> false))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=
[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=613; start_column=5;
end_line=615; end_column=36;
law_headings=["Chapitre Ier : Champ d'application";
"Titre III : Aide personnalisée au logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
(o_and condition_logement_bailleur_
(o_and condition_logement_pret_
eligibilite_commune_dot_eligibilite_))))
(fun (_: unit) -> true))|])
(fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))|])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=375; start_column=12;
end_line=375; end_column=23;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=375; start_column=12; end_line=375; end_column=23;
law_headings=["Éligibilité à l'aide personnalisée au logement";
"Déclarations des champs d'application";
"Prologue : aides au logement"]})))) in
{EligibiliteAidePersonnaliseeLogement.date_courante = date_courante_;
EligibiliteAidePersonnaliseeLogement.eligibilite = eligibilite_;
EligibiliteAidePersonnaliseeLogement.nombre_personnes_a_charge_prises_en_compte =
nombre_personnes_a_charge_prises_en_compte_;
EligibiliteAidePersonnaliseeLogement.coefficents_enfants_garde_alternee_pris_en_compte =
coefficents_enfants_garde_alternee_pris_en_compte_}
let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAidesAuLogementIn.t) : CalculetteAidesAuLogement.t =
let menage_: Menage.t = calculette_aides_au_logement_in.CalculetteAidesAuLogementIn.menage_in in
let demandeur_: Demandeur.t = calculette_aides_au_logement_in.CalculetteAidesAuLogementIn.demandeur_in in
let date_courante_: date = calculette_aides_au_logement_in.CalculetteAidesAuLogementIn.date_courante_in in
let ressources_menage_prises_en_compte_: money = calculette_aides_au_logement_in.CalculetteAidesAuLogementIn.ressources_menage_prises_en_compte_in in
let eligibilite_allocation_logement_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_allocation_logement.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1082; start_column=14;
end_line=1082; end_column=59;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1082; start_column=14; end_line=1082; end_column=59;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let eligibilite_allocation_logement_dot_menage_: Menage.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_allocation_logement.ménage"] (embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1074; start_column=14;
end_line=1074; end_column=52;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1074; start_column=14; end_line=1074; end_column=52;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let eligibilite_allocation_logement_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_allocation_logement.demandeur"] (embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1078; start_column=14;
end_line=1078; end_column=55;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1078; start_column=14; end_line=1078; end_column=55;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement_: bool =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_allocation_logement.bénéficie_aide_personnalisée_logement"]
(embed_bool)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1071; start_column=5;
end_line=1071; end_column=74;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true)) (fun (_: unit) -> false))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1071; start_column=5; end_line=1071; end_column=74;
law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})) in
let result_: EligibiliteAllocationLogement.t = (log_end_call
["CalculetteAidesAuLogement"; "éligibilité_allocation_logement";
"ÉligibilitéAllocationLogement"] ((log_begin_call
["CalculetteAidesAuLogement"; "éligibilité_allocation_logement";
"ÉligibilitéAllocationLogement"] eligibilite_allocation_logement)
({EligibiliteAllocationLogementIn.date_courante_in =
eligibilite_allocation_logement_dot_date_courante_;
EligibiliteAllocationLogementIn.menage_in =
eligibilite_allocation_logement_dot_menage_;
EligibiliteAllocationLogementIn.demandeur_in =
eligibilite_allocation_logement_dot_demandeur_;
EligibiliteAllocationLogementIn.beneficie_aide_personnalisee_logement_in =
eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement_}))) in
let eligibilite_allocation_logement_dot_eligibilite_l841_2_: TypeEligibiliteAllocationLogement.t = result_.EligibiliteAllocationLogement.eligibilite in
let eligibilite_allocation_logement_dot_nombre_personnes_a_charge_prises_en_compte_: integer = result_.EligibiliteAllocationLogement.nombre_personnes_a_charge_prises_en_compte in
let eligibilite_allocation_logement_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.EligibiliteAllocationLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let eligibilite_aide_personnalisee_logement_dot_menage_: Menage.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_aide_personnalisée_logement.ménage"] (embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1072; start_column=14;
end_line=1072; end_column=60;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1072; start_column=14; end_line=1072; end_column=60;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let eligibilite_aide_personnalisee_logement_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_aide_personnalisée_logement.demandeur"]
(embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1076; start_column=14;
end_line=1076; end_column=63;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1076; start_column=14; end_line=1076; end_column=63;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let eligibilite_aide_personnalisee_logement_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"éligibilité_aide_personnalisée_logement.date_courante"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1080; start_column=14;
end_line=1080; end_column=67;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1080; start_column=14; end_line=1080; end_column=67;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let result_: EligibiliteAidePersonnaliseeLogement.t = (log_end_call
["CalculetteAidesAuLogement";
"éligibilité_aide_personnalisée_logement";
"ÉligibilitéAidePersonnaliséeLogement"] ((log_begin_call
["CalculetteAidesAuLogement";
"éligibilité_aide_personnalisée_logement";
"ÉligibilitéAidePersonnaliséeLogement"]
eligibilite_aide_personnalisee_logement)
({EligibiliteAidePersonnaliseeLogementIn.menage_in =
eligibilite_aide_personnalisee_logement_dot_menage_;
EligibiliteAidePersonnaliseeLogementIn.demandeur_in =
eligibilite_aide_personnalisee_logement_dot_demandeur_;
EligibiliteAidePersonnaliseeLogementIn.date_courante_in =
eligibilite_aide_personnalisee_logement_dot_date_courante_}))) in
let eligibilite_aide_personnalisee_logement_dot_date_courante_: date = result_.EligibiliteAidePersonnaliseeLogement.date_courante in
let eligibilite_aide_personnalisee_logement_dot_eligibilite_: bool = result_.EligibiliteAidePersonnaliseeLogement.eligibilite in
let eligibilite_aide_personnalisee_logement_dot_nombre_personnes_a_charge_prises_en_compte_: integer = result_.EligibiliteAidePersonnaliseeLogement.nombre_personnes_a_charge_prises_en_compte in
let eligibilite_aide_personnalisee_logement_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.EligibiliteAidePersonnaliseeLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let calcul_allocation_logement_dot_mode_occupation_: ModeOccupation.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_allocation_logement.mode_occupation"] (embed_mode_occupation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1086; start_column=14;
end_line=1086; end_column=56;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
(menage_.Menage.logement).Logement.mode_occupation))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1086; start_column=14; end_line=1086; end_column=56;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_ressources_menage_sans_arrondi_: money =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_allocation_logement.ressources_ménage_sans_arrondi"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1090; start_column=14;
end_line=1090; end_column=58;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1090; start_column=14; end_line=1090; end_column=58;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_situation_familiale_: SituationFamiliale.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_allocation_logement.situation_familiale"]
(embed_situation_familiale)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1094; start_column=14;
end_line=1094; end_column=60;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> menage_.Menage.situation_familiale))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1094; start_column=14; end_line=1094; end_column=60;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_allocation_logement.nombre_personnes_à_charge"]
(embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1101; start_column=14;
end_line=1101; end_column=66;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_allocation_logement_dot_nombre_personnes_a_charge_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1101; start_column=14; end_line=1101; end_column=66;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_zone_: ZoneDHabitation.t =
try ((log_variable_definition
["CalculetteAidesAuLogement"; "calcul_allocation_logement.zone"]
(embed_zone_d_habitation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1105; start_column=14;
end_line=1105; end_column=45;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
(menage_.Menage.logement).Logement.zone))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1105; start_column=14; end_line=1105; end_column=45;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_allocation_logement.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1109; start_column=14;
end_line=1109; end_column=54;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1109; start_column=14; end_line=1109; end_column=54;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_allocation_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t =
try ((log_variable_definition
["CalculetteAidesAuLogement"; "calcul_allocation_logement.type_aide"]
(embed_type_aides_personnelle_logement)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1087; start_column=14;
end_line=1087; end_column=50;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
match
eligibilite_allocation_logement_dot_eligibilite_l841_2_
with
| TypeEligibiliteAllocationLogement.PasEligible _ ->
(TypeAidesPersonnelleLogement.AllocationLogementSociale
())
| TypeEligibiliteAllocationLogement.AllocationLogementFamiliale _ ->
(TypeAidesPersonnelleLogement.AllocationLogementFamiliale
())
| TypeEligibiliteAllocationLogement.AllocationLogementSociale _ ->
(TypeAidesPersonnelleLogement.AllocationLogementSociale
())))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1087; start_column=14; end_line=1087; end_column=50;
law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})) in
let calcul_allocation_logement_dot_residence_: Collectivite.t =
try ((log_variable_definition
["CalculetteAidesAuLogement"; "calcul_allocation_logement.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1113; start_column=14;
end_line=1113; end_column=50;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_.Menage.residence))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1113; start_column=14; end_line=1113; end_column=50;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let result_: CalculAllocationLogement.t = (log_end_call
["CalculetteAidesAuLogement"; "calcul_allocation_logement";
"CalculAllocationLogement"] ((log_begin_call
["CalculetteAidesAuLogement"; "calcul_allocation_logement";
"CalculAllocationLogement"] calcul_allocation_logement)
({CalculAllocationLogementIn.mode_occupation_in =
calcul_allocation_logement_dot_mode_occupation_;
CalculAllocationLogementIn.ressources_menage_sans_arrondi_in =
calcul_allocation_logement_dot_ressources_menage_sans_arrondi_;
CalculAllocationLogementIn.situation_familiale_in =
calcul_allocation_logement_dot_situation_familiale_;
CalculAllocationLogementIn.nombre_personnes_a_charge_in =
calcul_allocation_logement_dot_nombre_personnes_a_charge_;
CalculAllocationLogementIn.zone_in =
calcul_allocation_logement_dot_zone_;
CalculAllocationLogementIn.date_courante_in =
calcul_allocation_logement_dot_date_courante_;
CalculAllocationLogementIn.type_aide_in =
calcul_allocation_logement_dot_type_aide_;
CalculAllocationLogementIn.residence_in =
calcul_allocation_logement_dot_residence_}))) in
let calcul_allocation_logement_dot_aide_finale_formule_: money = result_.CalculAllocationLogement.aide_finale_formule in
let calcul_allocation_logement_dot_traitement_aide_finale_: money -> money = result_.CalculAllocationLogement.traitement_aide_finale in
let calcul_aide_personnalisee_logement_dot_mode_occupation_: ModeOccupation.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.mode_occupation"]
(embed_mode_occupation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1084; start_column=14;
end_line=1084; end_column=64;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
(menage_.Menage.logement).Logement.mode_occupation))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1084; start_column=14; end_line=1084; end_column=64;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.type_aide"]
(embed_type_aides_personnelle_logement)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1085; start_column=14;
end_line=1085; end_column=58;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
TypeAidesPersonnelleLogement.AidePersonnaliseeLogement
()))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1085; start_column=14; end_line=1085; end_column=58;
law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]})) in
let calcul_aide_personnalisee_logement_dot_ressources_menage_sans_arrondi_: money =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.ressources_ménage_sans_arrondi"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1088; start_column=14;
end_line=1088; end_column=66;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1088; start_column=14; end_line=1088; end_column=66;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_situation_familiale_: SituationFamiliale.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.situation_familiale"]
(embed_situation_familiale)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1092; start_column=14;
end_line=1092; end_column=68;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> menage_.Menage.situation_familiale))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1092; start_column=14; end_line=1092; end_column=68;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge_: integer =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.nombre_personnes_à_charge"]
(embed_integer)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1097; start_column=5;
end_line=1097; end_column=65;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_aide_personnalisee_logement_dot_nombre_personnes_a_charge_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1097; start_column=5; end_line=1097; end_column=65;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_zone_: ZoneDHabitation.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.zone"] (embed_zone_d_habitation)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1103; start_column=14;
end_line=1103; end_column=53;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
(menage_.Menage.logement).Logement.zone))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1103; start_column=14; end_line=1103; end_column=53;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1107; start_column=14;
end_line=1107; end_column=62;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1107; start_column=14; end_line=1107; end_column=62;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let calcul_aide_personnalisee_logement_dot_residence_: Collectivite.t =
try ((log_variable_definition
["CalculetteAidesAuLogement";
"calcul_aide_personnalisée_logement.résidence"]
(embed_collectivite)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1111; start_column=14;
end_line=1111; end_column=58;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_.Menage.residence))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1111; start_column=14; end_line=1111; end_column=58;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in
let result_: CalculAidePersonnaliseeLogement.t = (log_end_call
["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement";
"CalculAidePersonnaliséeLogement"] ((log_begin_call
["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement";
"CalculAidePersonnaliséeLogement"] calcul_aide_personnalisee_logement)
({CalculAidePersonnaliseeLogementIn.mode_occupation_in =
calcul_aide_personnalisee_logement_dot_mode_occupation_;
CalculAidePersonnaliseeLogementIn.type_aide_in =
calcul_aide_personnalisee_logement_dot_type_aide_;
CalculAidePersonnaliseeLogementIn.ressources_menage_sans_arrondi_in =
calcul_aide_personnalisee_logement_dot_ressources_menage_sans_arrondi_;
CalculAidePersonnaliseeLogementIn.situation_familiale_in =
calcul_aide_personnalisee_logement_dot_situation_familiale_;
CalculAidePersonnaliseeLogementIn.nombre_personnes_a_charge_in =
calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge_;
CalculAidePersonnaliseeLogementIn.zone_in =
calcul_aide_personnalisee_logement_dot_zone_;
CalculAidePersonnaliseeLogementIn.date_courante_in =
calcul_aide_personnalisee_logement_dot_date_courante_;
CalculAidePersonnaliseeLogementIn.residence_in =
calcul_aide_personnalisee_logement_dot_residence_}))) in
let calcul_aide_personnalisee_logement_dot_aide_finale_formule_: money = result_.CalculAidePersonnaliseeLogement.aide_finale_formule in
let calcul_aide_personnalisee_logement_dot_traitement_aide_finale_:
money -> money = result_.CalculAidePersonnaliseeLogement.traitement_aide_finale in
let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition
["CalculetteAidesAuLogement";
"coefficents_enfants_garde_alternée_pris_en_compte"]
(embed_array (embed_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1116; start_column=14;
end_line=1116; end_column=63;
law_headings=["Calculette globale";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
eligibilite_aide_personnalisee_logement_dot_coefficents_enfants_garde_alternee_pris_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1068; start_column=12; end_line=1068; end_column=61;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in
let eligibilite_: bool = (log_variable_definition
["CalculetteAidesAuLogement"; "éligibilité"] (embed_bool) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1076; start_column=14;
end_line=1076; end_column=25;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
o_or
eligibilite_aide_personnalisee_logement_dot_eligibilite_
(match
eligibilite_allocation_logement_dot_eligibilite_l841_2_
with
| TypeEligibiliteAllocationLogement.PasEligible _ ->
false
| TypeEligibiliteAllocationLogement.AllocationLogementFamiliale _ ->
true
| TypeEligibiliteAllocationLogement.AllocationLogementSociale _ ->
true)))|]) (fun (_: unit) -> false)
(fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1064; start_column=12; end_line=1064; end_column=23;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in
let traitement_aide_finale_: money -> money = (log_variable_definition
["CalculetteAidesAuLogement"; "traitement_aide_finale"] (unembeddable)
(fun (aide_finale_: money) ->
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} (
[||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1114; start_column=14;
end_line=1114; end_column=36;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
(let aide_finale_apl_ : money = ((log_end_call
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"]
((log_variable_definition
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"]
calcul_aide_personnalisee_logement_dot_traitement_aide_finale_)
((log_variable_definition
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"; "input0"]
(embed_money) aide_finale_)))))))
in
(let aide_finale_al_ : money = ((log_end_call
["CalculAllocationLogement";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogement";
"traitement_aide_finale"; "output"]
(embed_money) ((log_begin_call
["CalculAllocationLogement";
"traitement_aide_finale"]
calcul_allocation_logement_dot_traitement_aide_finale_)
((log_variable_definition
["CalculAllocationLogement";
"traitement_aide_finale"; "input0"]
(embed_money) aide_finale_)))))))
in
( if (o_not eligibilite_) then aide_finale_ else
( if
(o_and
eligibilite_aide_personnalisee_logement_dot_eligibilite_
(o_not
(match
eligibilite_allocation_logement_dot_eligibilite_l841_2_
with
| TypeEligibiliteAllocationLogement.PasEligible _ ->
true
| TypeEligibiliteAllocationLogement.AllocationLogementFamiliale _ ->
false
| TypeEligibiliteAllocationLogement.AllocationLogementSociale _ ->
false))) then
( if
(o_gt_mon_mon aide_finale_apl_
aide_finale_al_) then
aide_finale_apl_ else aide_finale_al_)
else
( if
eligibilite_aide_personnalisee_logement_dot_eligibilite_
then aide_finale_apl_ else
aide_finale_al_)))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1066; start_column=12; end_line=1066; end_column=34;
law_headings=["Calculette globale";
"Prologue : aides au logement"]})))) in
let aide_finale_formule_: money = (log_variable_definition
["CalculetteAidesAuLogement"; "aide_finale_formule"] (embed_money) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/code_construction_legislatif.catala_fr";
start_line=1097; start_column=14;
end_line=1097; end_column=33;
law_headings=["Article L841-2";
"Chapitre Ier : Champ d'application";
"Titre IV : Allocations de logement";
"Livre VIII : Aides personnelles au logement";
"Partie législative";
"Code de la construction et de l'habitation"]}
true))
(fun (_: unit) ->
if (o_not eligibilite_) then
(money_of_cents_string "0") else
( if
(o_and
eligibilite_aide_personnalisee_logement_dot_eligibilite_
(o_not
(match
eligibilite_allocation_logement_dot_eligibilite_l841_2_
with
| TypeEligibiliteAllocationLogement.PasEligible _ ->
true
| TypeEligibiliteAllocationLogement.AllocationLogementFamiliale _ ->
false
| TypeEligibiliteAllocationLogement.AllocationLogementSociale _ ->
false))) then
( if
(o_gt_mon_mon ((log_end_call
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"]
((log_variable_definition
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"; "output"]
(embed_money) ((log_begin_call
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"]
calcul_aide_personnalisee_logement_dot_traitement_aide_finale_)
((log_variable_definition
["CalculAidePersonnaliséeLogement";
"traitement_aide_finale"; "input0"]
(embed_money)
calcul_aide_personnalisee_logement_dot_aide_finale_formule_)))))))
((log_end_call
["CalculAllocationLogement";
"traitement_aide_finale"]
((log_variable_definition
["CalculAllocationLogement";
"traitement_aide_finale"; "output"]
(embed_money) ((log_begin_call
["CalculAllocationLogement";
"traitement_aide_finale"]
calcul_allocation_logement_dot_traitement_aide_finale_)
((log_variable_definition
["CalculAllocationLogement";
"traitement_aide_finale"; "input0"]
(embed_money)
calcul_allocation_logement_dot_aide_finale_formule_))))))))
then
calcul_aide_personnalisee_logement_dot_aide_finale_formule_
else
calcul_allocation_logement_dot_aide_finale_formule_)
else
( if
eligibilite_aide_personnalisee_logement_dot_eligibilite_
then
calcul_aide_personnalisee_logement_dot_aide_finale_formule_
else
calcul_allocation_logement_dot_aide_finale_formule_))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1065; start_column=12; end_line=1065; end_column=31;
law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in
{CalculetteAidesAuLogement.eligibilite = eligibilite_;
CalculetteAidesAuLogement.aide_finale_formule = aide_finale_formule_;
CalculetteAidesAuLogement.traitement_aide_finale =
traitement_aide_finale_;
CalculetteAidesAuLogement.coefficents_enfants_garde_alternee_pris_en_compte =
coefficents_enfants_garde_alternee_pris_en_compte_}
let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_garde_alternee_in: CalculetteAidesAuLogementGardeAlterneeIn.t) : CalculetteAidesAuLogementGardeAlternee.t =
let menage_: Menage.t = calculette_aides_au_logement_garde_alternee_in.CalculetteAidesAuLogementGardeAlterneeIn.menage_in in
let demandeur_: Demandeur.t = calculette_aides_au_logement_garde_alternee_in.CalculetteAidesAuLogementGardeAlterneeIn.demandeur_in in
let date_courante_: date = calculette_aides_au_logement_garde_alternee_in.CalculetteAidesAuLogementGardeAlterneeIn.date_courante_in in
let ressources_menage_prises_en_compte_: money = calculette_aides_au_logement_garde_alternee_in.CalculetteAidesAuLogementGardeAlterneeIn.ressources_menage_prises_en_compte_in in
let menage_sans_enfants_garde_alternee_: Menage.t = (log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"ménage_sans_enfants_garde_alternée"] (embed_menage) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1167; start_column=14;
end_line=1167; end_column=48;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
{Menage.prestations_recues =
(menage_.Menage.prestations_recues);
Menage.logement = (menage_.Menage.logement);
Menage.personnes_a_charge =
(o_filter
(fun
(personne_a_charge_: PersonneACharge.t) ->
match personne_a_charge_
with
| PersonneACharge.EnfantACharge enfant_ ->
(match
(enfant_.EnfantACharge.situation_garde_alternee)
with
| SituationGardeAlternee.PasDeGardeAlternee _ ->
true
| SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ ->
false)
| PersonneACharge.AutrePersonneACharge _ ->
true)
(menage_.Menage.personnes_a_charge));
Menage.nombre_autres_occupants_logement =
(menage_.Menage.nombre_autres_occupants_logement);
Menage.situation_familiale =
(menage_.Menage.situation_familiale);
Menage.condition_rattache_foyer_fiscal_parent_ifi =
(menage_.Menage.condition_rattache_foyer_fiscal_parent_ifi);
Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse =
(menage_.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse);
Menage.personnes_agees_handicapees_foyer_r844_4 =
(menage_.Menage.personnes_agees_handicapees_foyer_r844_4);
Menage.residence = (menage_.Menage.residence)}))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1135; start_column=11; end_line=1135; end_column=45;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})))) in
let calculette_dot_menage_: Menage.t =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée"; "calculette.ménage"]
(embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1146; start_column=14;
end_line=1146; end_column=31;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> menage_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1146; start_column=14; end_line=1146; end_column=31;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée"; "calculette.demandeur"]
(embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1148; start_column=14;
end_line=1148; end_column=34;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1148; start_column=14; end_line=1148; end_column=34;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée"; "calculette.date_courante"]
(embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1150; start_column=14;
end_line=1150; end_column=38;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1150; start_column=14; end_line=1150; end_column=38;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_dot_ressources_menage_prises_en_compte_: money =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"calculette.ressources_ménage_prises_en_compte"] (embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1152; start_column=14;
end_line=1152; end_column=59;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1152; start_column=14; end_line=1152; end_column=59;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let result_: CalculetteAidesAuLogement.t = (log_end_call
["CalculetteAidesAuLogementGardeAlternée"; "calculette";
"CalculetteAidesAuLogement"] ((log_begin_call
["CalculetteAidesAuLogementGardeAlternée"; "calculette";
"CalculetteAidesAuLogement"] calculette_aides_au_logement)
({CalculetteAidesAuLogementIn.menage_in = calculette_dot_menage_;
CalculetteAidesAuLogementIn.demandeur_in = calculette_dot_demandeur_;
CalculetteAidesAuLogementIn.date_courante_in =
calculette_dot_date_courante_;
CalculetteAidesAuLogementIn.ressources_menage_prises_en_compte_in =
calculette_dot_ressources_menage_prises_en_compte_}))) in
let calculette_dot_eligibilite_: bool = result_.CalculetteAidesAuLogement.eligibilite in
let calculette_dot_aide_finale_formule_: money = result_.CalculetteAidesAuLogement.aide_finale_formule in
let calculette_dot_traitement_aide_finale_: money -> money = result_.CalculetteAidesAuLogement.traitement_aide_finale in
let calculette_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.CalculetteAidesAuLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let calculette_sans_garde_alternee_dot_menage_: Menage.t =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée.ménage"] (embed_menage)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1154; start_column=14;
end_line=1154; end_column=51;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> menage_sans_enfants_garde_alternee_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1154; start_column=14; end_line=1154; end_column=51;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_sans_garde_alternee_dot_demandeur_: Demandeur.t =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée.demandeur"] (embed_demandeur)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1156; start_column=14;
end_line=1156; end_column=54;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> demandeur_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1156; start_column=14; end_line=1156; end_column=54;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_sans_garde_alternee_dot_date_courante_: date =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée.date_courante"] (embed_date)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1158; start_column=14;
end_line=1158; end_column=58;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true)) (fun (_: unit) -> date_courante_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1158; start_column=14; end_line=1158; end_column=58;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte_: money =
try ((log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée.ressources_ménage_prises_en_compte"]
(embed_money)
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1161; start_column=5;
end_line=1161; end_column=70;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> ressources_menage_prises_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1161; start_column=5; end_line=1161; end_column=70;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})) in
let result_: CalculetteAidesAuLogement.t = (log_end_call
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée"; "CalculetteAidesAuLogement"]
((log_begin_call
["CalculetteAidesAuLogementGardeAlternée";
"calculette_sans_garde_alternée"; "CalculetteAidesAuLogement"]
calculette_aides_au_logement)
({CalculetteAidesAuLogementIn.menage_in =
calculette_sans_garde_alternee_dot_menage_;
CalculetteAidesAuLogementIn.demandeur_in =
calculette_sans_garde_alternee_dot_demandeur_;
CalculetteAidesAuLogementIn.date_courante_in =
calculette_sans_garde_alternee_dot_date_courante_;
CalculetteAidesAuLogementIn.ressources_menage_prises_en_compte_in =
calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte_}))) in
let calculette_sans_garde_alternee_dot_eligibilite_: bool = result_.CalculetteAidesAuLogement.eligibilite in
let calculette_sans_garde_alternee_dot_aide_finale_formule_: money = result_.CalculetteAidesAuLogement.aide_finale_formule in
let calculette_sans_garde_alternee_dot_traitement_aide_finale_: money ->
money = result_.CalculetteAidesAuLogement.traitement_aide_finale in
let calculette_sans_garde_alternee_dot_coefficents_enfants_garde_alternee_pris_en_compte_:
decimal array = result_.CalculetteAidesAuLogement.coefficents_enfants_garde_alternee_pris_en_compte in
let eligibilite_: bool = (log_variable_definition
["CalculetteAidesAuLogementGardeAlternée"; "éligibilité"] (embed_bool)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1196; start_column=14;
end_line=1196; end_column=25;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) -> calculette_dot_eligibilite_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1142; start_column=12; end_line=1142; end_column=23;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})))) in
let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition
["CalculetteAidesAuLogementGardeAlternée";
"coefficents_enfants_garde_alternée_pris_en_compte"]
(embed_array (embed_decimal)) (
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1165; start_column=14;
end_line=1165; end_column=63;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]}
true))
(fun (_: unit) ->
calculette_dot_coefficents_enfants_garde_alternee_pris_en_compte_))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1136; start_column=11; end_line=1136; end_column=60;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})))) in
let aide_finale_: money = (log_variable_definition
["CalculetteAidesAuLogementGardeAlternée"; "aide_finale"] (embed_money)
(
try
(handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> true)
(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]}
([|(fun (_: unit) ->
handle_default
{filename = ""; start_line=0; start_column=1;
end_line=0; end_column=1; law_headings=[]} ([||])
(fun (_: unit) -> (log_decision_taken
{filename = "examples/aides_logement/autres_sources.catala_fr";
start_line=283; start_column=14;
end_line=283; end_column=25;
law_headings=["Conseil d'État, 5ème - 4ème chambres réunies, 21/07/2017, 398563"]}
true))
(fun (_: unit) -> (log_end_call
["CalculetteAidesAuLogement";
"traitement_aide_finale"]
((log_variable_definition
["CalculetteAidesAuLogement";
"traitement_aide_finale"; "output"] (embed_money)
((log_begin_call
["CalculetteAidesAuLogement";
"traitement_aide_finale"]
calculette_dot_traitement_aide_finale_)
((log_variable_definition
["CalculetteAidesAuLogement";
"traitement_aide_finale"; "input0"] (embed_money)
(o_add_mon_mon
calculette_sans_garde_alternee_dot_aide_finale_formule_
( if
(o_eq
(o_length
coefficents_enfants_garde_alternee_pris_en_compte_)
(integer_of_string "0")) then
(money_of_cents_string "0") else
(o_mult_mon_rat
(o_sub_mon_mon
calculette_dot_aide_finale_formule_
calculette_sans_garde_alternee_dot_aide_finale_formule_)
(o_div_rat_rat
(o_reduce
(fun (sum1_: decimal)
(sum2_: decimal) ->
o_add_rat_rat sum1_ sum2_)
(decimal_of_string "0.")
coefficents_enfants_garde_alternee_pris_en_compte_)
(o_torat_int
(o_length
coefficents_enfants_garde_alternee_pris_en_compte_))))))))))))))|])
(fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))
with
EmptyError -> (raise (NoValueProvided
{filename = "examples/aides_logement/prologue.catala_fr";
start_line=1143; start_column=12; end_line=1143; end_column=23;
law_headings=["Calculette avec garde alternée";
"Prologue : aides au logement"]})))) in
{CalculetteAidesAuLogementGardeAlternee.eligibilite = eligibilite_;
CalculetteAidesAuLogementGardeAlternee.aide_finale = aide_finale_}