2
0

cms.proweb-dossiers.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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="<?= PROWEB_DOSSIERS ?>" 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
  32. id="ProWebSalary"
  33. class="table-striped table-hover table-sm"
  34. data-page-size="50"
  35. data-show-footer="true"
  36. data-toggle="table"
  37. data-buttons-align="left"
  38. data-pagination="true"
  39. data-filter-control="true"
  40. data-flat="true"
  41. data-show-export="true"
  42. data-show-columns-toggle-all="true"
  43. data-page-list="[50, 100, 250, 500, 750, 1000]"
  44. data-url="<?php echo $jsonTarget ?>">
  45. <thead>
  46. <tr>
  47. <th data-sortable="true" data-field="exe_ref" data-filter-control="select">Année</th>
  48. <th data-sortable="true" data-field="hismo_date_crea" data-filter-control="select">Création</th>
  49. <th data-sortable="true" data-field="prest_lib" data-filter-control="select">Prestation</th>
  50. <th data-sortable="true" data-field="prest_lib2" data-filter-control="select">Complément</th>
  51. <th data-sortable="true" data-field="catprest_lib" data-filter-control="select">Catégorie</th>
  52. <th data-sortable="true" data-field="comm_ref" data-filter-control="select">Commission</th>
  53. <th data-sortable="true" data-field="prest_closed" data-filter-control="select" data-formatter="clotureFormatter">Clôturé</th>
  54. <th data-sortable="true" data-field="etdoss_lib" data-filter-control="select">Etat</th>
  55. <th data-sortable="true" data-field="od_matricule" data-filter-control="input">Matricule</th>
  56. <th data-sortable="true" data-field="nomComplet" data-filter-control="input" data-formatter="concatNomPrenom">Prénom Nom</th>
  57. <th data-sortable="true" data-field="doss_nb_inscrit" data-filter-control="select" data-footer-formatter="totalInscrits">Nb. Inscrits</th>
  58. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partce" data-filter-control="input" data-footer-formatter="prixCSE">Part CSE</th>
  59. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partod" data-filter-control="input" data-footer-formatter="prixSalarie">Part Salarié</th>
  60. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_montant_total" data-filter-control="input" data-footer-formatter="prixTotal">Total</th>
  61. </tr>
  62. </thead>
  63. </table>
  64. </div>
  65. <script>
  66. let euro = Intl.NumberFormat('de-DE', {
  67. style: 'currency',
  68. currency: 'EUR',
  69. });
  70. function dataFormatter(value) {
  71. return euro.format(value);
  72. }
  73. function totalInscrits(data) {
  74. var total = 0;
  75. data.forEach(function(row) {
  76. var nb = parseFloat(row.doss_nb_inscrit);
  77. if (!isNaN(nb)) {
  78. total += nb;
  79. }
  80. });
  81. return total;
  82. }
  83. function prixCSE(data) {
  84. var total = 0;
  85. data.forEach(function(row) {
  86. total += parseFloat(row.doss_partce);
  87. });
  88. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  89. }
  90. function prixSalarie(data) {
  91. var total = 0;
  92. data.forEach(function(row) {
  93. total += parseFloat(row.doss_partod);
  94. });
  95. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  96. }
  97. function prixTotal(data) {
  98. var total = 0;
  99. data.forEach(function(row) {
  100. total += parseFloat(row.doss_montant_total);
  101. });
  102. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  103. }
  104. function concatNomPrenom(value, row, index) {
  105. return row.od_prenom + ' ' + row.od_nom;
  106. }
  107. function clotureFormatter(value) {
  108. return value == 1 ? "Clôturé" : "Ouvert";
  109. }
  110. function subventionFormatter(value) {
  111. switch (value) {
  112. case "O":
  113. return "Subventionné"
  114. break;
  115. case "N":
  116. return "Non-subventionné"
  117. break;
  118. default:
  119. return "-"
  120. break;
  121. }
  122. }
  123. </script>