Commit 1f5f10ef authored by Bertrand Matge's avatar Bertrand Matge
Browse files

Ajout d'un simulateur "savoir si un logement est situé en zone tendue"

Ajout du ficher de définition du simulateur (zones-tendues.xml)
Ajout du fichier de style (zones-tendues.css)
Ajout des données de références (zonage-commune.json) et de leur schéma (zonage-commune.schema.json) 
Mise à jour du README.md
parent 4db5239f
......@@ -2,7 +2,7 @@
Le site officiel de l'administration française service-public.fr référence une cinquantaine de simulateurs disponibles pour répondre à un large éventail de questions administratives qui se posent aux particuliers et aux professionnels.
Parmi ces similateurs, la DILA en a développé huit :
Parmi ces similateurs, la DILA en a développé dix :
* [Simulateur du coût du certificat d'immatriculation](https://www.service-public.fr/simulateur/calcul/cout-certificat-immatriculation)
* [Simulateur de calcul des intérêts moratoires des marchés publics](https://www.service-public.fr/simulateur/calcul/interets-moratoires)
......@@ -13,6 +13,7 @@ Parmi ces similateurs, la DILA en a développé huit :
* [Simulateur : Calendrier des vacances scolaires de votre département](https://www.service-public.fr/simulateur/calcul/Dates_Vacances_Scolaires)
* [Calculateur de prix HT ou TTC](https://www.service-public.fr/simulateur/calcul/convertisseurPrixHTouTTC)
* [Simulateur : connaître la zone de sa commune : 1, 1 bis, 2 ou 3](https://www.service-public.fr/simulateur/calcul/zones)
* [Simulateur : savoir si un logement est situé en zone tendue](https://www.service-public.fr/simulateur/calcul/zones-tendues)
## Simulateur du coût du certificat d'immatriculation
Ce simulateur du coût de carte grise (certificat d’immatriculation) est disponible sur le site service-public.fr depuis le 5 avril 2016.
......@@ -57,6 +58,14 @@ Ce convertisseur permet de calculer un prix hors taxes (HT) à partir d'un prix
## Simulateur : connaître la zone de sa commune : 1, 1 bis, 2 ou 3
Ce simulateur vous permet de connaître la zone géographique (1, 1 bis, 2 ou 3) dont dépend le logement concerné. Cette zone détermine pour partie le plafond de ressources permettant de percevoir une allocation logement (APL, ALF, ALS) ou une réduction du loyer de solidarité (RLS) pour les locataires d'un logement social (HLM). Le plafond de ressources est également fixé en fonction de la composition de votre foyer.
## Simulateur : savoir si un logement est situé en zone tendue
Ce simulateur vous permet de déterminer si le logement est situé en zone tendue. La zone détermine :
* Pour un terrain nu : le droit à l’exonération de la taxe foncière sur les propriétés non bâties ;
* Pour un logement vacant : l’application de la taxe sur les logements vacants applicable à certaines communes (TLV) ;
* Pour un logement loué :
* le droit à un préavis d’1 mois pour le locataire (logement vide ou loi 1948) ;
* l’application de l’encadrement des loyers (logement vide ou meublé).
# Simulateurs de la DILA sur boamp.fr
La DILA a développé 3 simulateurs BOAMP à l¹attention des acheteurs publics et des entreprises titulaires d'un marché public :
......@@ -163,7 +172,7 @@ Vous pouvez ignorer tous les autres paramètres en faisant <Enter>.
## À propos du moteur de simulation
Ce moteur est disponible sous licence MIT, et propose les fonctionnalités suivantes :
* La simulation en ligne est pleinement opérationelle et éprouvée. La DILA l'utilise pour huit simulateurs en ligne sur ses sites.
* La simulation en ligne est pleinement opérationelle et éprouvée. La DILA l'utilise pour dix simulateurs en ligne sur ses sites.
* La gestion des utilisateurs de l'interface d'administration (super admin, admin, contributeur, ...)
* La gestion (création, mise à jour, import) des sources de données de référence internes (bases de données) et externes (via des web services)
* L'import et l'export de simulateurs
......
<?xml version="1.0" encoding="utf-8"?>
<Simulator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../doc/Simulator.xsd" name="zones-tendues" label="Simulateur des zones tendues" defaultView="particuliers" referer="" dynamic="0" memo="0">
<Description><![CDATA[
Ce simulateur vous permet de déterminer si le logement est situé en zone tendue.
La zone détermine :
• terrain nu : le droit à l’exonération de la <a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F31638" title="Link: https://www.service-public.fr/particuliers/vosdroits/F31638">taxe foncière sur les propriétés non bâties</a> ;
• logement vacant : l’application de <a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F2847" title="Link: https://www.service-public.fr/particuliers/vosdroits/F2847">la taxe sur les logements vacants applicable à certaines communes (TLV)</a> ;
• logement loué :
- le droit à un <a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1168">préavis d’1 mois pour le locataire</a> (logement vide ou <i>loi 1948</i>) ;
- l’application de <a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1314">l’encadrement des loyers</a> (logement vide ou meublé).
]]></Description>
<DataSet dateFormat="d/m/Y" decimalPoint="," moneySymbol="€" symbolPosition="after">
<Data id="1" name="commune" label="Code insee de la commune" type="text" />
<Data id="2" name="preavis" label="Preavis zone tendue" type="integer" source="1" index="'preavis'" />
<Data id="3" name="nomCommune" label="Nom de la commune" type="text" source="1" index="'commune'" />
<Data id="4" name="txtDeReponse" label="Texte de réponse" type="text" />
</DataSet>
<Steps>
<Step id="1" name="zonage" label="Zonage" template="pages:article.html.twig" output="normal" dynamic="1">
<Panels>
<Panel id="1" name="zonagePanel" label="">
<FieldSet id="1">
<Field position="1" data="1" usage="input" newline="0" label="Commune (nom ou code postal)" prompt="Saisir le nom de la ville ou son code postal" required="1" visibleRequired="0" colon="0" help="0" widget="geoAPILocalities" />
</FieldSet>
<BlockInfo id="2" name="blocResultats" label="">
<Chapter id="1" name="chapitreResultats" label="">
<Section id="1" name="sectionResultats0" label="">
<Content><![CDATA[
#3 #4
]]></Content>
</Section>
</Chapter>
</BlockInfo>
</Panel>
</Panels>
<FootNotes position="beforeActions">
<FootNote id="1"><![CDATA[
<h2>Pour toute explication, consulter les fiches pratiques :
</h2><ul><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1168" title="Congé donné par le locataire - Nouvelle fenêtre">Congé donné par le locataire</a></li><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1314" title="En quoi consiste l'encadrement des loyers - Nouvelle fenêtre">En quoi consiste l'encadrement des loyers</a></li><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1310" title="Logement du secteur privé : fixation et paiement du loyer - Nouvelle fenêtre">Logement du secteur privé : fixation et paiement du loyer</a></li><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F1312" title="Réévaluation d'un loyer sous-évalué au renouvellement du bail (secteur privé) - Nouvelle fenêtre">Réévaluation d'un loyer sous-évalué au renouvellement du bail (secteur privé)</a></li><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F2847" title="Taxe sur les logements vacants applicable à certaines communes (TLV) - Nouvelle fenêtre">Taxe sur les logements vacants applicable à certaines communes (TLV)</a></li><li><a target="_blank" rel="nofollow" href="https://www.service-public.fr/particuliers/vosdroits/F31638" title="Taxe foncière sur les propriétés non bâties- Nouvelle fenêtre">Taxe foncière sur les propriétés non bâties</a></li></ul>
]]></FootNote>
</FootNotes>
</Step>
</Steps>
<Sources>
<Source id="1" datasource="zonage-commune" label="Zonage commune" request="SELECT commune, zone, preavis, frais FROM zonageCommunes WHERE codeInsee = '%1$s'" returnType="assocArray" returnPath="0">
<Parameter type="columnValue" origin="data" name="insee" data="1" />
</Source>
</Sources>
<BusinessRules>
<BusinessRule id="1" name="R1" label="R1">
<Conditions value="defined(#3) &amp;&amp; defined(#2) &amp;&amp; #2 = 0">
<Connector type="all">
<Condition operand="nomCommune" operator="present" />
<Condition operand="preavis" operator="present" />
<Condition operand="preavis" operator="=" expression="0" />
</Connector>
</Conditions>
<IfActions>
<Action id="1" name="setAttribute" target="content" data="4" value="'n\'est pas en zone tendue'" />
</IfActions>
<ElseActions>
</ElseActions>
</BusinessRule>
<BusinessRule id="2" name="R2" label="R2">
<Conditions value="defined(#3) &amp;&amp; defined(#2) &amp;&amp; #2 = 1">
<Connector type="all">
<Condition operand="nomCommune" operator="present" />
<Condition operand="preavis" operator="present" />
<Condition operand="preavis" operator="=" expression="1" />
</Connector>
</Conditions>
<IfActions>
<Action id="1" name="setAttribute" target="content" data="4" value="'est en zone tendue'" />
</IfActions>
<ElseActions>
</ElseActions>
</BusinessRule>
<BusinessRule id="3" name="R3" label="R3">
<Conditions value="defined(#1) &amp;&amp; defined(#2) &amp;&amp; defined(#3)">
<Connector type="all">
<Condition operand="commune" operator="present" />
<Condition operand="preavis" operator="present" />
<Condition operand="nomCommune" operator="present" />
</Connector>
</Conditions>
<IfActions>
<Action id="1" name="showObject" target="blockinfo" step="1" panel="1" blockinfo="2" />
<Action id="2" name="showObject" target="footnote" step="1" footnote="1" />
</IfActions>
<ElseActions>
<Action id="1" name="hideObject" target="blockinfo" step="1" panel="1" blockinfo="2" />
<Action id="2" name="hideObject" target="footnote" step="1" footnote="1" />
</ElseActions>
</BusinessRule>
</BusinessRules>
</Simulator>
\ No newline at end of file
This diff is collapsed.
{
"$schema": "http:\/\/json-schema.org\/draft-04\/schema#",
"type": "object",
"title": "zonage-commune",
"description": "<p>Zonage des communes de France<\/p>",
"properties": {
"zonageCommunes": {
"type": "array",
"title": "Table de zonage des commune de France",
"description": "",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"title": "id [primarykey:1, autoincrement:36681, type:integer]",
"description": "Identifiant interne"
},
"codeInsee": {
"type": "string",
"title": "Code Insee [type:text]",
"description": "<p>Code Insee<\/p>"
},
"commune": {
"type": "string",
"title": "Nom de la commune [type:text]",
"description": "Nom de la commune"
},
"zone": {
"type": "string",
"title": "Zone géographique [type:text]",
"description": "<p>Zone géographique<\/p>"
},
"preavis": {
"type": "integer",
"title": "Préavis zone tendue [type:integer]",
"description": "<p>Préavis zone tendue<\/p>"
},
"frais": {
"type": "integer",
"title": "Frais locataire [type:integer]",
"description": "Frais de location imputable au locataire<\/p>"
}
},
"required": [
"id",
"codeInsee",
"commune",
"zone",
"preavis",
"frais"
]
}
}
},
"required": [
"zonageCommunes"
]
}
\ No newline at end of file
@import "common.css";
.simulator-breadcrumb {
display: none;
}
.step-page .step-panel-container h3.legend {
margin-top: 0;
}
.step-page .fieldset-container legend {
display: none;
}
.step-page.step-container {
margin-top: -1em;
}
.step-page #commune-container label {
width: auto;
}
.step-page #commune-container input {
min-width: 22em;
}
.step-page .foot-note {
text-align: left;
}
.article ul li::before {
position: static;
margin-top: 0.2em;
margin-right: 0.4em;
}
.step-page .section-content.with-annotations::after {
border: none;
position: static;
}
.step-page .section-content {
border: none;
background: transparent;
}
.step-page .blockinfo-chapters {
border: none;
margin: 0;
padding: 0;
}
.step-page .blockinfo-container {
display: none;
}
.step-page .blockinfo-label {
border: none;
}
.step-page .blockinfo-container,
.step-page .blockinfo-chapter-sections {
padding: 0;
margin: 0;
}
.step-page .section-container .section-label h2 {
font-size: 1em;
margin-left: .5em;
margin-top: .5em;
font-weight: bold;
text-decoration: underline;
}
.step-page .section-container th {
text-align: left;
padding-left: .5em;
}
.step-page .section-container td {
text-align: right;
padding-right: .5em;
width: 10%;
}
.step-page .collapse-expand-all-tools {
display: none;
}
.step-page .section-container tr:nth-child(even) {
background: #ECECEC
}
.step-page .section-container tr:nth-child(odd) {
background: #FFF
}
.step-page .blockinfo-chapters {
float: none;
clear: both;
margin: 1em 0;
padding: 1em;
color: #fff;
background: #0b6ba8;
border-radius: 8px;
}
.step-page .section-content {
text-align: center;
font-size: 1.8em;
font-weight: bold;
margin: 0;
}
.step-page .section-content ul {
list-style-type: inherit;
margin-left: 1em;
}
.step-page .foot-notes {
background: transparent;
display: none;
}
.step-page .foot-note {
font-weight: normal;
}
.step-page .foot-note a{
text-decoration: none;
}
.step-page .foot-note h2 {
color: #0b6ba8;
margin: 0;
padding: 0;
font-size: 1.42857em;
font-family: "roboto_regular",Arial,sans-serif;
background: 0;
}
.step-page .foot-note ul li::before {
position: absolute;
top: 0.8em;
left: 0;
content: "\e607";
font-size: .55em;
}
.step-page div.has-error {
clear: none;
text-align: left;
}
.step-page div.has-error.input-group input{
font-weight: normal;
color: #000;
border: 1px solid #c22222;
}
#commune-container .input-group {
display: block;
}
.step-page .blockinfo-chapters a {
color: #fff;
}
div.toolbar a:after {
content: "";
}
article ul > li:first-child {
margin-top: 0.5em;
}
div.toolbar ul > li:first-child {
margin-top: 0;
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment