Warning, /office/skrooge/plugins/skrooge/responsive.txt is written in an unsupported language. File is not indexed.

0001 <!--
0002 /***************************************************************************
0003  * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
0004  * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
0005  * SPDX-License-Identifier: GPL-3.0-or-later
0006  ***************************************************************************/
0007 -->
0008 <?xml version="1.0" encoding="utf-8"?>
0009 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
0010 <html xmlns="https://www.w3.org/1999/xhtml">
0011   <head>
0012     <meta http-equiv="content-type" content="text/html;charset=utf-8" />
0013     <meta http-equiv="Content-Style-Type" content="text/css" />
0014     <meta name="viewport" content="width=device-width, initial-scale=1.0">
0015     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
0016     <style>
0017     body {padding-top: 70px; padding-bottom: 70px; }
0018     td {white-space: nowrap;}
0019     @media print {a[href]:after {content: "" !important;}} 
0020     meter {
0021         -webkit-appearance: none;
0022         -moz-appearance: none;
0023         appearance: none;
0024   
0025         width: 200px;
0026         height: 30px;
0027     }
0028     meter::-webkit-meter-bar {
0029         background: #EEE;
0030         box-shadow: 0 2px 3px rgba(0,0,0,0.2) inset;
0031         border-radius: 3px;
0032     }
0033 
0034     meter::-webkit-meter-optimum-value {
0035         background: #86CC00; /* Green */
0036         border-radius: 3px;
0037     }
0038 
0039     meter::-webkit-meter-suboptimum-value {
0040         background: #FFDB1A; /* Yellow */
0041         border-radius: 3px;
0042     }
0043 
0044     meter::-webkit-meter-even-less-good-value {
0045         background: #CC4600; /* Red */
0046         border-radius: 3px;
0047     }    
0048     </style>
0049   </head>
0050   <body>
0051     <script src="https://code.jquery.com/jquery.js"></script>
0052     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
0053     <script src="https://code.highcharts.com/highcharts.js"></script>
0054     <script src="https://code.highcharts.com/highcharts-3d.js"></script>
0055     <div class="navbar navbar-default navbar-fixed-top" role="navigation">
0056       <div class="container">
0057         <div class="navbar-header">
0058         <h1>{{ title_main }}</h1>
0059         </div>
0060       </div>
0061     </div>  
0062 
0063     <div class="navbar navbar-default navbar-fixed-bottom" role="navigation">
0064       <div class="container">
0065     <small>Date: {{ current_date }}</small><br/>
0066     <small>File name: {{ document.fileName }}</small><br/> 
0067     <small>* {{ msg_amount_unit_date }}</small>    
0068       </div>
0069     </div>  
0070   </div>
0071   
0072 <div class="container">  
0073     <h2>{{ title_personal_finance_score }}</h2>
0074     <span class="btn btn-{{ report.personal_finance_score_details.level }} btn-lg">{{ report.personal_finance_score_details.value|floatformat }}
0075         <span class="badge">
0076         {{ title_networth }} / {{ title_annual_spending }}</br>
0077         {{ report.networth|money|safe }} / {{ report.annual_spending|money|safe }}
0078         </span>
0079     </span>  
0080     <p>{{ report.personal_finance_score_details.message }}</p>
0081     
0082     <h2>{{ document|display:"f_CURRENTAMOUNT_INCOME" }} &amp; {{ document|display:"f_CURRENTAMOUNT_EXPENSE" }} *</h2>
0083     {% include "default/income_vs_expenditure_table.html" %}
0084     <div id="chart4" style="height: 300px; width: 600px"></div>
0085      
0086     <h2>{{ title_budget }}</h2>
0087     {% include "default/budget_table.html" %}
0088             
0089     <h2>{{ title_main_categories }}</h2>
0090     <table>
0091       <tr>
0092         <td align="center">
0093           {% include "default/categories_previous_period_table.html" %}
0094           <div id="chart1" style="height: 300px; width: 300px"></div>
0095         </td>
0096         <td align="center">
0097           {% include "default/categories_period_table.html" %}
0098           <div id="chart2" style="height: 300px; width: 300px"></div>
0099         </tr>
0100     </table>
0101     <h2>{{ title_variations }}</h2>
0102      {% include "default/categories_variations.html" %}
0103     
0104     <h2>{{ title_account }} *</h2>
0105      {% include "default/bank_table.html" %}
0106      <div id="chart5" style="height: 300px; width: 400px"></div>     
0107      <br/>
0108      {% include "default/account_table.html" %}
0109      
0110     <h2>{{ title_unit }} *</h2>
0111      {% include "default/unit_table.html" %}      
0112      
0113     <h2>{{ title_portfolio }} *</h2>
0114      {% include "default/portfolio.html" %}  
0115      {% if report.portfolio|length %}
0116      <div id="chart3" style="height: 300px; width: 400px"></div>
0117      {% endif %}
0118     <h2>{{ title_highlighted }}</h2>
0119     {% include "default/highlighted_operations.html" %}     
0120 </div>
0121 
0122 <script language="javascript">
0123     var item = document.getElementById("table_unit");
0124     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0125     
0126     var item = document.getElementById("table_portfolio");
0127     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0128     
0129     var item = document.getElementById("table_income_vs_expenditure");
0130     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0131     
0132     var item = document.getElementById("table_categories_previous_period");
0133     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0134     
0135     var item = document.getElementById("table_categories_period");
0136     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0137 
0138     var item = document.getElementById("table_budget");
0139     if(item != null) item.className= "table table-bordered table-striped table-condensed";
0140 
0141     var item = document.getElementById("table_bank");
0142     if(item != null) item.className= "table table-bordered table-striped table-condensed";    
0143     
0144     var item = document.getElementById("table_account");
0145     if(item != null) item.className= "table table-bordered table-striped table-condensed";       
0146     
0147 $(function () {
0148     $('#chart1').highcharts({
0149         chart: {
0150             type: 'pie',
0151             options3d: {
0152                 enabled: true,
0153                 alpha: 45,
0154                 beta: 0
0155             }
0156         },
0157         title: {
0158             text: ''
0159         },
0160         tooltip: {
0161             pointFormat: '{point.percentage:.1f}%</b>'
0162         },
0163         plotOptions: {
0164             pie: {
0165                 allowPointSelect: false,          
0166                 depth: 35,
0167                 dataLabels: {
0168                     enabled: true,
0169                     format: '{point.name}'
0170                 },
0171                 cursor: 'pointer',
0172                 point: {
0173                     events: {
0174                         click: function () {
0175                             window.open(this.options.url);
0176                         }
0177                     }
0178                 }                
0179             }        
0180         },
0181         series: [{
0182             type: 'pie',
0183             name: '{{ title_main_categories }}',
0184             data: [
0185             {% for item in report.categories_previous_period %}
0186                 {% if forloop.first %}
0187                 {% else %}    
0188                         {name: '{{ forloop.counter0 }}', 
0189                         y: {{ item.2 }}, 
0190                         url: 'skg://Skrooge_operation_plugin/SKGOPERATION_CONSOLIDATED_DEFAULT_PARAMETERS/?operationTable=v_suboperation_consolidated&operationWhereClause={{ item.3|encode }}&title={{ item.1|encode }}/{{ report.categories_period.0.2 }}&title_icon=view-categories'}
0191                         {% if forloop.last %}{% else %},{% endif %}
0192                 {% endif %}
0193             {% endfor %}            
0194             ]
0195         }]
0196     });
0197 });
0198 
0199 $(function () {
0200     $('#chart2').highcharts({
0201         chart: {
0202             type: 'pie',
0203             options3d: {
0204                 enabled: true,
0205                 alpha: 45,
0206                 beta: 0
0207             }
0208         },
0209         title: {
0210             text: ''
0211         },
0212         tooltip: {
0213             pointFormat: '{point.percentage:.1f}%</b>'
0214         },
0215         plotOptions: {
0216             pie: {
0217                 allowPointSelect: false,          
0218                 depth: 35,
0219                 dataLabels: {
0220                     enabled: true,
0221                     format: '{point.name}'
0222                 }
0223             }      
0224         },
0225         series: [{
0226             type: 'pie',
0227             name: '{{ title_main_categories }}',
0228             data: [
0229             {% for item in report.categories_period %}
0230                 {% if forloop.first %}
0231                 {% else %}    
0232                         {name: '{{ forloop.counter0 }}', 
0233                         y: {{ item.2 }}, 
0234                         url: 'skg://Skrooge_operation_plugin/SKGOPERATION_CONSOLIDATED_DEFAULT_PARAMETERS/?operationTable=v_suboperation_consolidated&operationWhereClause={{ item.3|encode }}&title={{ item.1|encode }}/{{ report.categories_period.0.2 }}&title_icon=view-categories'}
0235                         {% if forloop.last %}{% else %},{% endif %}
0236                 {% endif %}
0237             {% endfor %}            
0238             ]
0239         }]
0240     });
0241 });
0242 
0243 $(function () {
0244     $('#chart3').highcharts({
0245         chart: {
0246             type: 'pie',
0247             options3d: {
0248                 enabled: true,
0249                 alpha: 45,
0250                 beta: 0
0251             }
0252         },
0253         title: {
0254             text: ''
0255         },
0256         tooltip: {
0257             pointFormat: '{point.percentage:.1f}%</b>'
0258         },
0259         plotOptions: {
0260             pie: {
0261                 allowPointSelect: false,          
0262                 depth: 35,
0263                 dataLabels: {
0264                     enabled: true,
0265                     format: '{point.name}'
0266                 }
0267             }      
0268         },
0269         series: [{
0270             type: 'pie',
0271             name: '',
0272             data: [
0273             {% for item in report.portfolio %}
0274               {% if forloop.first %}
0275                 {% else %}
0276                 ['{{ item.0 }}', {{ item.5 }}]
0277                 {% if forloop.last %}{% else %},{% endif %}
0278               {% endif %}
0279             {% endfor %}
0280             ]
0281         }]
0282     });
0283 });
0284 
0285 
0286 
0287 $(function () {
0288     $('#chart4').highcharts({
0289         chart: {
0290             type: 'column',
0291             options3d: {
0292                 enabled: true,
0293                 alpha: 15,
0294                 beta: 15,
0295                 viewDistance: 25,
0296                 depth: 40
0297             }
0298         },
0299 
0300         title: {
0301             text: ''
0302         },
0303 
0304         xAxis: {
0305             categories: ['{{ report.previous_period }}', '{{ report.period }}']
0306         },
0307 
0308         yAxis: {
0309             allowDecimals: true,
0310             min: 0,
0311             title: {
0312                 text: ''
0313             }
0314         },
0315         colors: ['#{{ color_negativetext }}', '#{{ color_positivetext }}'],
0316         
0317         tooltip: {
0318             pointFormat: '<span style="color:{series.color}">\u25CF</span>{point.y}'
0319         },
0320 
0321         series: [{
0322             name: '{{ document|display:"f_CURRENTAMOUNT_EXPENSE" }}',
0323             data: [{{ report.income_vs_expenditure.2.2 }}, {{ report.income_vs_expenditure.2.3 }}0]
0324         }, {
0325             name: '{{ document|display:"f_CURRENTAMOUNT_INCOME" }}',
0326             data: [{{ report.income_vs_expenditure.1.2 }}, {{ report.income_vs_expenditure.1.3 }}]
0327         }
0328         ]
0329     });
0330 });
0331 
0332 $(function () {
0333     $('#chart5').highcharts({
0334         chart: {
0335             type: 'pie',
0336             options3d: {
0337                 enabled: true,
0338                 alpha: 45,
0339                 beta: 0
0340             }
0341         },
0342         title: {
0343             text: ''
0344         },
0345         tooltip: {
0346             pointFormat: '{point.percentage:.1f}%</b>'
0347         },
0348         plotOptions: {
0349             pie: {
0350                 allowPointSelect: false,
0351                 depth: 35,
0352                 dataLabels: {
0353                     enabled: true,
0354                     format: '{point.name}'
0355                 }
0356             }
0357         },
0358         series: [{
0359             type: 'pie',
0360             name: '',
0361             data: [
0362             {% for item in report.bank_table %}
0363               {% if forloop.first %}
0364                 {% else %}
0365                 {% if forloop.last %}
0366                   [null, null]
0367                 {% else %}
0368                   ['{{ item.1 }}', {{ item.6 }}],
0369                 {% endif %}
0370               {% endif %}
0371             {% endfor %}
0372             ]
0373         }]
0374     });
0375 });
0376 
0377 </script> 
0378   </body>
0379 </html>