{% 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 %}