cms.proweb-dossiers.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. $dateData = get::jsonDateDataExcelProwebDossiers();
  3. $date = ($dateData != NULL) ? " (au " . core::convertDate($dateData, FALSE) . ")" : "";
  4. json::create("dossiers-proweb");
  5. $jsonTarget = "/json.php?file=dossiers-proweb";
  6. if(debug::isFile("debug")){
  7. debug::log(debug::getBadge($jsonTarget, "OUVRIR LE JSON : ".$jsonTarget), "JSON chargé en arrière plan");
  8. }
  9. ?>
  10. <header class="d-flex flex-column flex-md-row align-items-md-center p-3 bg-light ">
  11. <h2 class="bd-title" id="content">
  12. <span>Proweb : Liste des dossiers<?php echo $date ?></span>
  13. </h2>
  14. <?php if(access::ifAccesss("proweb-dossiers-upload")){ ?>
  15. <div class="fix-container-button-nav">
  16. <a href="proweb-dossiers-upload.html"><button type="submit" class="btn btn-outline-success btn-sm"><?php icon::getFont(["icon" => "bi bi-file-earmark-plus"]) ?> Importer un fichier Excel</button></a>
  17. <a href="https://www.cse-invent.com/gestion" target="_blank"><button type="submit" class="btn btn-outline-secondary btn-sm"><?php icon::getFont(["icon" => "bi bi-link-45deg"]) ?> Exporter tous les dossiers depuis Proweb</button></a>
  18. </div>
  19. <?php } ?>
  20. </header>
  21. <?php
  22. echo core::filAriane(array(
  23. "current" => "Liste des dossiers",
  24. "arbo" => array(
  25. "Proweb" => NULL,
  26. "Liste des dossiers" => "proweb-dossiers.html"
  27. )
  28. ));
  29. ?>
  30. <div>
  31. <table id="ProWebSalary" class="table-striped table-hover table-sm" data-page-size="25" data-show-footer="true" data-toggle="table" data-buttons-align="left" data-pagination="true" data-filter-control="true" data-flat="true" data-show-columns-toggle-all="true" data-url="<?php echo $jsonTarget ?>">
  32. <thead>
  33. <tr>
  34. <th data-sortable="true" data-field="exe_ref" data-filter-control="select">Année</th>
  35. <th data-sortable="true" data-field="prest_lib" data-filter-control="select">Prestation</th>
  36. <th data-sortable="true" data-field="prest_lib2" data-filter-control="select">Complément</th>
  37. <th data-sortable="true" data-field="catprest_lib" data-filter-control="select">Catégorie</th>
  38. <th data-sortable="true" data-field="comm_ref" data-filter-control="select">Commission</th>
  39. <th data-sortable="true" data-field="prest_closed" data-filter-control="select" data-formatter="clotureFormatter">Clôturé</th>
  40. <th data-sortable="true" data-field="etdoss_lib" data-filter-control="select">Etat</th>
  41. <th data-sortable="true" data-field="doss_nb_inscrit" data-filter-control="select" data-footer-formatter="totalInscrits">Nb. Inscrits</th>
  42. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partce" data-filter-control="input" data-footer-formatter="prixCSE">Part CSE</th>
  43. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partod" data-filter-control="input" data-footer-formatter="prixSalarie">Part Salarié</th>
  44. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_montant_total" data-filter-control="input" data-footer-formatter="prixTotal">Total</th>
  45. </tr>
  46. </thead>
  47. </table>
  48. </div>
  49. <script>
  50. let euro = Intl.NumberFormat('de-DE', {
  51. style: 'currency',
  52. currency: 'EUR',
  53. });
  54. function dataFormatter(value) {
  55. return euro.format(value);
  56. }
  57. function totalInscrits(data) {
  58. var total = 0;
  59. data.forEach(function(row) {
  60. var nb = parseFloat(row.doss_nb_inscrit);
  61. if (!isNaN(nb)) {
  62. total += nb;
  63. }
  64. });
  65. return total;
  66. }
  67. function prixCSE(data) {
  68. var total = 0;
  69. data.forEach(function(row) {
  70. total += parseFloat(row.doss_partce);
  71. });
  72. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  73. }
  74. function prixSalarie(data) {
  75. var total = 0;
  76. data.forEach(function(row) {
  77. total += parseFloat(row.doss_partod);
  78. });
  79. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  80. }
  81. function prixTotal(data) {
  82. var total = 0;
  83. data.forEach(function(row) {
  84. total += parseFloat(row.doss_montant_total);
  85. });
  86. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  87. }
  88. function clotureFormatter(value) {
  89. return value == 1 ? "Clôturé" : "Ouvert";
  90. }
  91. function subventionFormatter(value) {
  92. switch (value) {
  93. case "O":
  94. return "Subventionné"
  95. break;
  96. case "N":
  97. return "Non-subventionné"
  98. break;
  99. default:
  100. return "-"
  101. break;
  102. }
  103. }
  104. </script>