cms.proweb-dossiers.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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 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="hismo_date_crea" data-filter-control="select">Création</th>
  36. <th data-sortable="true" data-field="prest_lib" data-filter-control="select">Prestation</th>
  37. <th data-sortable="true" data-field="prest_lib2" data-filter-control="select">Complément</th>
  38. <th data-sortable="true" data-field="catprest_lib" data-filter-control="select">Catégorie</th>
  39. <th data-sortable="true" data-field="comm_ref" data-filter-control="select">Commission</th>
  40. <th data-sortable="true" data-field="prest_closed" data-filter-control="select" data-formatter="clotureFormatter">Clôturé</th>
  41. <th data-sortable="true" data-field="etdoss_lib" data-filter-control="select">Etat</th>
  42. <th data-sortable="true" data-field="od_matricule" data-filter-control="input">Matricule</th>
  43. <th data-sortable="true" data-field="nomComplet" data-filter-control="input" data-formatter="concatNomPrenom">Prénom Nom</th>
  44. <th data-sortable="true" data-field="doss_nb_inscrit" data-filter-control="select" data-footer-formatter="totalInscrits">Nb. Inscrits</th>
  45. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partce" data-filter-control="input" data-footer-formatter="prixCSE">Part CSE</th>
  46. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_partod" data-filter-control="input" data-footer-formatter="prixSalarie">Part Salarié</th>
  47. <th data-sortable="true" data-formatter="dataFormatter" data-field="doss_montant_total" data-filter-control="input" data-footer-formatter="prixTotal">Total</th>
  48. </tr>
  49. </thead>
  50. </table>
  51. </div>
  52. <script>
  53. let euro = Intl.NumberFormat('de-DE', {
  54. style: 'currency',
  55. currency: 'EUR',
  56. });
  57. function dataFormatter(value) {
  58. return euro.format(value);
  59. }
  60. function totalInscrits(data) {
  61. var total = 0;
  62. data.forEach(function(row) {
  63. var nb = parseFloat(row.doss_nb_inscrit);
  64. if (!isNaN(nb)) {
  65. total += nb;
  66. }
  67. });
  68. return total;
  69. }
  70. function prixCSE(data) {
  71. var total = 0;
  72. data.forEach(function(row) {
  73. total += parseFloat(row.doss_partce);
  74. });
  75. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  76. }
  77. function prixSalarie(data) {
  78. var total = 0;
  79. data.forEach(function(row) {
  80. total += parseFloat(row.doss_partod);
  81. });
  82. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  83. }
  84. function prixTotal(data) {
  85. var total = 0;
  86. data.forEach(function(row) {
  87. total += parseFloat(row.doss_montant_total);
  88. });
  89. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  90. }
  91. function concatNomPrenom(value, row, index) {
  92. return row.od_prenom + ' ' + row.od_nom;
  93. }
  94. function clotureFormatter(value) {
  95. return value == 1 ? "Clôturé" : "Ouvert";
  96. }
  97. function subventionFormatter(value) {
  98. switch (value) {
  99. case "O":
  100. return "Subventionné"
  101. break;
  102. case "N":
  103. return "Non-subventionné"
  104. break;
  105. default:
  106. return "-"
  107. break;
  108. }
  109. }
  110. </script>