html_forms_vista.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <section id="message"></section>
  2. <?php
  3. $target = '/checador_otros/admin_checador/reporte_de_asistencias.php';
  4. $id = $_POST['id'];
  5. include_once "import/html_forms.php";
  6. $carreras = queryAll("SELECT DISTINCT carrera, id, facultad FROM FS_CARRERA WHERE ID IN (SELECT distinct CARRERA_ID FROM FS_HORARIO_BASIC WHERE :id IN (SELECT HORARIO_ID FROM HORARIO_PROFESOR WHERE PROFESOR_ID = :id) AND PERIODO_ID = :per)", [':id' => $id, ':per' => $user->periodo]);
  7. // materia por carrera
  8. #print_r($carreras);
  9. $materias = queryAll("SELECT DISTINCT * FROM FS_MATERIA WHERE CARRERA = COALESCE(:car, CARRERA) AND ID IN (SELECT distinct materia_id FROM HORARIO WHERE :id IN (SELECT HORARIO_ID FROM HORARIO_PROFESOR WHERE PROFESOR_ID = :id) AND PERIODO_ID = :per) ORDER BY NOMBRE", [":car" => empty($carrera) ? null : $carrera, ':id' => $id, ':per' => $user->periodo]);
  10. #exit();
  11. $periodo = query("SELECT inicio, fin FROM FS_PERIODO WHERE ID = :per", [':per' => $user->periodo]);
  12. ?>
  13. <form action="#" method="post" id="form" class="form-horizontal">
  14. <input type="hidden" name="id" value="<?= $id; ?>" />
  15. <input type="hidden" name="periodo" value="<?= $user->periodo ?>" />
  16. <input type="hidden" name="facultad" value="<?= $user->facultad['facultad_id'] ?>" />
  17. <input type="hidden" name="clave" value="<?= $profesor['clave'] ?>" />
  18. <div class="form-box">
  19. <div class="form-group row">
  20. <label for="filter_carrera" class="col-4 col-form-label">Carrera</label>
  21. <div class="col-6">
  22. <div id="dlcarrera" class="datalist datalist-select mb-1 w-100">
  23. <div class="datalist-input">Todas las carreras</div>
  24. <span class="ing-buscar icono"></span>
  25. <ul style="display:none">
  26. <!-- Seleccionar todas -->
  27. <li data-value="0">Todas las carreras</li>
  28. <?php foreach ($carreras as $car) {
  29. ?>
  30. <li data-id="<?= $car['id'] ?>" class="<?= ($car['id'] == $carrera) ? "selected" : '' ?>" onclick="carreras(<?= $car['id'] ?>)">
  31. <?= $car['carrera'] ?>
  32. </li>
  33. <?php } ?>
  34. </ul>
  35. <input type="hidden" id="filter_carrera" name="carrera" value="">
  36. </div>
  37. </div>
  38. </div>
  39. <!-- Materia -->
  40. <div class="form-group row">
  41. <label for="filter_materia" class="col-4 col-form-label">Materia</label>
  42. <div class="col-6">
  43. <div id="dlmateria" class="datalist datalist-select mb-1 w-100">
  44. <div class="datalist-input">Todas las materias</div>
  45. <span class="ing-buscar icono"></span>
  46. <ul style="display:none">
  47. <li data-value="0">Todas las materias</li>
  48. <?php foreach ($materias as $materia) { ?>
  49. <li data-id="<?= $materia['id']; ?>" class="<?= ($materia['id'] == $_POST['materia']) ? "selected" : '' ?>">
  50. <?= $materia['nombre']; ?>
  51. </li>
  52. <?php } ?>
  53. </ul>
  54. <input type="hidden" id="filter_materia" name="materia" value="">
  55. </div>
  56. </div>
  57. </div>
  58. <!-- Fecha inicial y fecha final -->
  59. <div class="form-group row">
  60. <label for="fecha_inicial" class="col-4 col-form-label">Fecha inicial</label>
  61. <div class="col-8 col-sm-4">
  62. <input id="fecha_inicial" name="fecha_inicial" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
  63. <div class="invalid-feedback">No es una fecha válida.</div>
  64. </div>
  65. </div>
  66. <div class="form-group row">
  67. <label for="fecha_final" class="col-4 col-form-label">Fecha final</label>
  68. <div class="col-8 col-sm-4">
  69. <input id="fecha_final" name="fecha_final" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
  70. <div class="invalid-feedback">No es una fecha válida o el rango es incorrecto.</div>
  71. </div>
  72. </div>
  73. </div>
  74. <!-- ICO-BUSCAR FILTRAR & ICO-BORRAR LIMPIAR -->
  75. <div class="form-group row justify-content-center">
  76. <button type="button" class="btn btn-outline-primary mr-2" onclick="if(validateForm) submit('vista_profesor.php')">
  77. <span class="ing-buscar icono"></span>
  78. Filtrar
  79. </button>
  80. <button type="button" class="btn btn-outline-danger" onclick="reset_form(); submit('vista_profesor.php')">
  81. <span class="ing-borrar icono"></span>
  82. Limpiar
  83. </button>
  84. </div>
  85. </form>
  86. <?php
  87. include_once "js/messages.php";
  88. ?>
  89. <script>
  90. $(".date-picker").datepicker($.datepicker.regional["es"]);
  91. $(".date-picker").datepicker({
  92. dateFormat: "dd/mm/yyyy",
  93. changeMonth: true,
  94. });
  95. var today = new Date();
  96. var fecha_inicial = new Date(<?= $fecha_inicial->format("Y, m-1, d") ?>);
  97. var fecha_inicial_periodo = new Date(<?= date("Y, m-1, d", strtotime($periodo['inicio'])) ?>);
  98. var fecha_final = new Date(<?= $fecha_final->format("Y, m-1, d") ?>);
  99. var fecha_final_periodo = new Date(<?= date("Y, m-1, d", strtotime($periodo['fin'])) ?>);
  100. var limit = new Date(Math.min(today, fecha_final_periodo));
  101. // if today is in the period, set the initial date to today
  102. $("#fecha_inicial").datepicker("option", "minDate", fecha_inicial_periodo);
  103. $("#fecha_inicial").datepicker("option", "maxDate", limit);
  104. $("#fecha_final").datepicker("option", "minDate", fecha_inicial_periodo);
  105. $("#fecha_final").datepicker("option", "maxDate", limit);
  106. $("#fecha_inicial").datepicker("setDate", fecha_inicial);
  107. $("#fecha_final").datepicker("setDate", today <= fecha_final ? today : fecha_final);
  108. function reset_form() {
  109. $("#fecha_inicial").datepicker("setDate", fecha_inicial_periodo);
  110. $("#fecha_final").datepicker("setDate", today <= fecha_inicial_periodo ? today : fecha_final_periodo);
  111. setDatalistFirst("#filter_carrera");
  112. setDatalistFirst("#filter_materia");
  113. disableDatalist("#filter_materia");
  114. }
  115. <?php if (empty($carrera)) { ?>
  116. disableDatalist("#filter_materia", true);
  117. <?php } ?>
  118. // $("#fecha_inicial").on("change", function() {
  119. // var fecha_inicial = $("#fecha_inicial").datepicker("getDate");
  120. // var fecha_final = $("#fecha_final").datepicker("getDate");
  121. // if (fecha_final < fecha_inicial) {
  122. // $("#fecha_final").datepicker("setDate", fecha_inicial);
  123. // }
  124. // $("#fecha_final").datepicker("option", "minDate", fecha_inicial);
  125. // });
  126. // $("#fecha_final").on("change", function() {
  127. // var fecha_inicial = $("#fecha_inicial").datepicker("getDate");
  128. // var fecha_final = $("#fecha_final").datepicker("getDate");
  129. // if (fecha_final < fecha_inicial) {
  130. // $("#fecha_inicial").datepicker("setDate", fecha_final);
  131. // }
  132. // $("#fecha_inicial").datepicker("option", "maxDate", fecha_final);
  133. // });
  134. // Datalist carrera then select materia
  135. $(document).on('click', '#dlcarrera li', function() {
  136. // if this is empty
  137. // console.log($(this).attr('data-value'));
  138. if ($(this).attr('data-value') == '0')
  139. disableDatalist("#filter_materia", true);
  140. });
  141. $(document).on('change', '#fecha_inicial', function() {
  142. let fi = $(this).datepicker("getDate");
  143. $("#fecha_final").datepicker("option", "minDate", fi);
  144. });
  145. $(document).on('change', '#fecha_final', function() {
  146. let ff = $(this).datepicker("getDate");
  147. $("#fecha_inicial").datepicker("option", "maxDate", ff);
  148. });
  149. </script>