Copybara bot | be50d49 | 2023-11-30 00:16:42 +0100 | [diff] [blame] | 1 | <?php |
| 2 | require_once("core.php"); |
| 3 | security::checkType(security::HYPERADMIN); |
| 4 | |
| 5 | $companies = companies::getAll(); |
| 6 | |
| 7 | $advancedMode = (isset($_GET["advanced"]) && $_GET["advanced"] == "1"); |
| 8 | if ($advancedMode) $conf["backgroundColor"] = "red-200"; |
| 9 | |
| 10 | $mdHeaderRowBefore = visual::backBtn("powertools.php"); |
| 11 | ?> |
| 12 | <!DOCTYPE html> |
| 13 | <html> |
| 14 | <head> |
| 15 | <title><?php echo $conf["appName"]; ?></title> |
| 16 | <?php visual::includeHead(); ?> |
| 17 | <link rel="stylesheet" href="css/dashboard.css"> |
| 18 | <style> |
| 19 | .advanced-mode { |
| 20 | border: dotted 3px red; |
| 21 | padding: 13px 13px 29px 13px; |
| 22 | } |
| 23 | </style> |
| 24 | </head> |
| 25 | <?php visual::printBodyTag(); ?> |
| 26 | <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-drawer"> |
| 27 | <?php visual::includeNav(); ?> |
| 28 | <main class="mdl-layout__content"> |
| 29 | <div class="page-content"> |
| 30 | <div class="main mdl-shadow--4dp<?=($advancedMode ? " advanced-mode" : "")?>"> |
| 31 | <div class="actions"> |
| 32 | <?php |
| 33 | if ($advancedMode) { |
| 34 | ?> |
| 35 | <a href="manuallygenerateregistry.php" class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect">Desactivar modo avanzado</a> |
| 36 | <?php |
| 37 | } else { |
| 38 | ?> |
| 39 | <a href="manuallygenerateregistry.php?advanced=1" class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect">Activar modo avanzado</a> |
| 40 | <?php |
| 41 | } |
| 42 | ?> |
| 43 | </div> |
| 44 | |
| 45 | <h2>Generar registros manualmente</h2> |
| 46 | <form action="domanuallygenerateregistry.php" method="POST"> |
| 47 | <?php |
| 48 | if ($advancedMode) { |
| 49 | ?> |
| 50 | <input type="hidden" name="advanced" value="1"> |
| 51 | <p><span style="font-weight: bold; color: red;">ATENCIÓN:</span> al generar los registros en un intervalo de días, hay que hacer los siguientes pasos adicionales para asegurarse que estos se generan correctamente:</p> |
| 52 | <ol> |
| 53 | <li>Antes de hacer clic en el botón <b>Generar</b>, hay que asegurarse que <b>las fechas de inicio y fin sean correctas</b>. Si no, se podrían generar registros en muchos días no deseados, y el resultado puede ser muy costoso de revertir.</li> |
| 54 | <li>Al acabarse de generar los registros, hay que ir al apartado <b>Logs</b> de la configuración y asegurarse que los logs correspondientes a los días generados <b>no tengan ningún icono de error al lado en el listado</b>. Si ha habido un error, cabe la posibilidad de que los registros no se hayan generado correctamente y hace falta comprobar si se han generado o no todos. (Para más información, léase <a href="https://avm99963.github.io/hores-external/administradores/registros/#ver-logs" target="_blank" rel="noopener noreferrer">este artículo de ayuda</a>)</li> |
| 55 | </ol> |
| 56 | <p>Teniendo en cuenta esto, selecciona los trabajadores y el periodo de días para el cual quieres generar los registros:</p> |
| 57 | <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> |
| 58 | <input class="mdl-textfield__input" type="date" name="begins" id="begins" autocomplete="off" data-required> |
| 59 | <label class="mdl-textfield__label always-focused" for="begins">Día inicio</label> |
| 60 | </div> |
| 61 | <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> |
| 62 | <input class="mdl-textfield__input" type="date" name="ends" id="ends" autocomplete="off" data-required> |
| 63 | <label class="mdl-textfield__label always-focused" for="ends">Día fin</label> |
| 64 | </div> |
| 65 | <?php |
| 66 | } else { |
| 67 | ?> |
| 68 | <p>Selecciona los trabajadores y el día para el cual quieres generar los registros:</p> |
| 69 | <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> |
| 70 | <input class="mdl-textfield__input" type="date" name="day" id="day" autocomplete="off" data-required> |
| 71 | <label class="mdl-textfield__label always-focused" for="day">Día</label> |
| 72 | </div> |
| 73 | <?php |
| 74 | } |
| 75 | ?> |
| 76 | |
| 77 | <div class="overflow-wrapper overflow-wrapper--for-table"> |
| 78 | <table class="mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp"> |
| 79 | <thead> |
| 80 | <tr> |
| 81 | <?php |
| 82 | if ($conf["debug"]) { |
| 83 | ?> |
| 84 | <th class="extra">ID</th> |
| 85 | <?php |
| 86 | } |
| 87 | ?> |
| 88 | <th class="mdl-data-table__cell--non-numeric">Nombre</th> |
| 89 | <th class="mdl-data-table__cell--non-numeric">Empresa</th> |
| 90 | <th class="mdl-data-table__cell--non-numeric extra">Categoría</th> |
| 91 | </tr> |
| 92 | </thead> |
| 93 | <tbody> |
| 94 | <?php |
| 95 | $workers = people::getAll(false, true); |
| 96 | foreach ($workers as $w) { |
| 97 | ?> |
| 98 | <tr data-worker-id="<?=(int)$w["workerid"]?>"> |
| 99 | <?php |
| 100 | if ($conf["debug"]) { |
| 101 | ?> |
| 102 | <td class="extra"><?=(int)$w["workerid"]?></td> |
| 103 | <?php |
| 104 | } |
| 105 | ?> |
| 106 | <td class="mdl-data-table__cell--non-numeric"><?=security::htmlsafe($w["name"])?></td> |
| 107 | <td class="mdl-data-table__cell--non-numeric"><?=security::htmlsafe($companies[$w["companyid"]])?></td> |
| 108 | <td class="mdl-data-table__cell--non-numeric extra"><?=security::htmlsafe($w["category"])?></td> |
| 109 | </tr> |
| 110 | <?php |
| 111 | } |
| 112 | ?> |
| 113 | </tbody> |
| 114 | </table> |
| 115 | </div> |
| 116 | <br> |
| 117 | <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--accent mdl-js-ripple-effect">Generar</button> |
| 118 | </form> |
| 119 | </div> |
| 120 | </div> |
| 121 | </main> |
| 122 | </div> |
| 123 | |
| 124 | <?php |
| 125 | visual::smartSnackbar([ |
| 126 | ["empty", "Faltan datos por introducir en el formulario."], |
| 127 | ["unexpected", "Ha ocurrido un error inesperado. Inténtelo de nuevo en unos segundos."], |
| 128 | ["done", "Se ha ejecutado la acción. Accede al apartado de logs para ver si se han generado los registros correctamente o no."], |
| 129 | ["generatederr", "Ha ocurrido un error y no se ha podido guardar el log con la información de lo que ha hecho el programa."] |
| 130 | ]); |
| 131 | |
| 132 | $logId = (int)($_GET["logId"] ?? 0); |
| 133 | if ($logId > 0) { |
| 134 | echo "<script>dynDialog.load('dynamic/log.php?id=".$logId."')</script>"; |
| 135 | } |
| 136 | ?> |
| 137 | <script src="js/invalidatebulkrecords.js"></script> |
| 138 | </body> |
| 139 | </html> |