caisse-bliss/templates/logged/previsionnel.html.twig

281 lines
13 KiB
Twig
Raw Normal View History

2023-06-23 12:03:22 +02:00
{% extends 'base.html.twig' %}
{% block body %}
{% verbatim %}
<div id="wrapper">
<div class="previsionnel"
ng-app="caisse"
ng-controller="previsionnelCtrl as pCtrl"
>
<div class="row">
<div class="col-xs-12 col-lg-6">
<h1>Prévisionnel</h1>
</div>
<div class="col-xs-12 col-lg-6">
<div ng-if="config.initialLoadingDone && config.loading">
<i class="fa fa-spin fa-refresh"></i>
Chargement
</div>
<div ng-if="config.initialLoadingDone && !config.loading">
Modifications sauvegardées
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="config well">
<h2>
Configuration
</h2>
<div class="row">
<div class="col-xs-12 col-sm-6">
<p >
<label for="dispo">
Euros disponibles au départ:
</label>
<input
id="dispo"
class="big-number"
type="number"
ng-model="config.disponibility"
ng-change="save()"
ng-model-options="{ debounce: config.debounceTime }">
<br>
<label for="gains">
Gains moyen par mois:
</label>
<input type="number"
class="big-number"
id="gains"
ng-model="config.averageMonthlyEarnings"
ng-change="save()"
ng-model-options="{ debounce: config.debounceTime }">
</p>
<p>
Gérer délais de paiement
<input type="checkbox" ng-model="config.showDelays">
Gérer répétitions
<input type="checkbox" ng-model="config.showRepeats">
</p>
</div>
<div class="col-xs-12 col-sm-6">
<p>
<strong>
Dépenses mensuelles:
<span class="big-number">
{{ sumMonthlyExpenses() }}
</span>
</strong>
</p>
<p>
<strong>
Bénef mensuel: <span class="big-number">{{ config.averageMonthlyEarnings - sumMonthlyExpenses() }} €</span>
</strong>
</p>
<p>
Crédit mensuel réalisable (33% des gains moyens par mois): {{ config.averageMonthlyEarnings * 0.33 |number }}
</p>
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-lg-7 postes">
<h2>
{{expenses.length}} Postes de dépenses mensuelles
<button ng-click="addExpense()">+</button>
</h2>
<p class="desc">
Indiquez les catégories de dépenses mensuelles que vous faites pour faire évoluer la
simulation de budget restant dans plusieurs mois.
</p>
<table class="exepanse-table">
<thead>
<tr>
<td class="padded" >
Nom
</td>
<td class="padded" ng-if="config.showDelays">
débute dans X mois
</td>
<td class="padded" ng-if="config.showRepeats">
mois répétitions
</td>
<td class="padded" ng-if="config.showRepeats">
prix répétitions
</td>
<td class="padded" >
prix mensuel
</td>
<td class="padded" >
prix annuel
</td>
<td class="padded" >
activé
</td>
</tr>
</thead>
<tbody>
</tbody>
<tr ng-repeat="e in expenses ">
<td>
<input type="text" ng-model="e.name" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
</td>
<td ng-if="config.showDelays">
<input type="number" ng-model="e.delay" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
</td>
<td ng-if="config.showRepeats">
<input type="number" ng-model="e.repeat" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
</td>
<td ng-if="config.showRepeats" class="text-right padded">
{{ e.repeat * e.amount }}
</td>
<td>
<input type="number" ng-model="e.amount" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
</td>
<td class="text-right padded">
<strong>
{{ e.amount * 12 }}
</strong>
</td>
<td class="padded">
<input type="checkbox" ng-model="e.enabled" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
</td>
</tr>
</table>
<div class="well examples-depenses">
<strong>
Exemples de postes de dépenses à ajouter:
</strong>
{% endverbatim %}
{{ "
appartement
mutuelle
transport en commun
assurance voiture
assurance moto
trucs de loisirs divers
gaz
elec
internet
épargne
impots
cottisation URSSAF
resto au boulot
courses
serveur wouaibe
abonnement protonmail VPN
abonnement service audio, vidéo
carburant véhicule
donations
médecin
chat
chien
licorne"|nl2br }}
{% verbatim %}
</div>
</div>
<div class="col-sm-12 col-lg-5">
<h2>Simulation sur {{config.lines}} mois</h2>
<div class="" id="simulationPrevision" style="display: inline-block; height: 300px; width: 90%;">(graphique)</div>
<!--block to insert the graph-->
<div class="well big-number" ng-if="config.monthsBeforeNoMoney && config.monthsBeforeNoMoney <= config.lines">
<i class="fa fa-warning"></i>
Ce sera la dèche dans {{config.monthsBeforeNoMoney}} mois
</div>
<div ng-if=" ! config.monthsBeforeNoMoney" class="bg-success padded">
cool ! votre plan est supportable dans le temps
</div>
<table>
<thead>
<tr >
<td class="padded" >
Month in the future
</td>
<td class="padded" >
date
</td>
<td class="padded" >
Dépenses
</td>
<td class="padded" >
Disponibilité
</td>
</trclass>
</thead>
<tbody>
<tr ng-repeat="line in previsionTable" >
<td>
<div ng-if="line.available > config.warningThershold"
class=" bgsuccess padded ">
{{ $index }}
</div>
<div ng-if="line.available > 0 && line.available < config.warningThershold"
class="bgwarning padded ">
{{ $index }} bientôt la dèche
</div>
<div ng-if="line.available < 0"
class="bgdanger padded ">
{{ $index }} DAMNED pu de pognon!
</div>
</td>
<td>
-
</td>
<td class="text-right ">
{{ line.expense }}
</td>
<td class="text-right"
ngClass="{'bgdanger' : line.available < 0 }">
<strong>
{{ line.available}}
</strong>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!--<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>-->
<script>
var dataPoints = {{graphPointsPrevision}} ;
var chartContainerChiffreAffaire = new CanvasJS.Chart("simulationPrevision", {
title:{
text: "Euros disponibles dans le temps"
},
animationEnabled: true,
data: [
{
// Change type to "doughnut", "line", "splineArea", etc.
type: "splineArea",
dataPoints: dataPoints
}
]
});
chartContainerChiffreAffaire.render();
</script>
{% endverbatim %}
{% endblock %}