Excel sin recibir datos
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$fecha = date('d_m_Y');
|
$fecha = date('d_m_Y');
|
||||||
@@ -6,7 +5,24 @@ header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetm
|
|||||||
header("Content-Disposition: attachment;filename=horario_$fecha.xlsx");
|
header("Content-Disposition: attachment;filename=horario_$fecha.xlsx");
|
||||||
header("Cache-Control: max-age=0");
|
header("Cache-Control: max-age=0");
|
||||||
|
|
||||||
require_once "../vendor/autoload.php";
|
$ruta = "..";
|
||||||
|
require_once "$ruta/class/c_login.php";
|
||||||
|
if (!isset($_SESSION['user'])) {
|
||||||
|
http_response_code(401);
|
||||||
|
die(json_encode(['error' => 'unauthorized']));
|
||||||
|
}
|
||||||
|
$user = unserialize($_SESSION['user']);
|
||||||
|
|
||||||
|
/* $json = file_get_contents('php://input');
|
||||||
|
$data = json_decode($json, true); */
|
||||||
|
|
||||||
|
$query = $db
|
||||||
|
->where('usuario_id', $user->user['id'])
|
||||||
|
->getOne('last_auditoria', 'auditoria')['auditoria'];
|
||||||
|
|
||||||
|
$data = json_decode($query, true);
|
||||||
|
|
||||||
|
empty($data) and die(json_encode(['error' => 'No se recibieron datos', 'data' => $data]));
|
||||||
|
|
||||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Border;
|
use PhpOffice\PhpSpreadsheet\Style\Border;
|
||||||
@@ -28,11 +44,6 @@ $drawing->setName('La Salle')
|
|||||||
->setOffsetX(10)
|
->setOffsetX(10)
|
||||||
->setWorksheet($spreadsheet->getActiveSheet());
|
->setWorksheet($spreadsheet->getActiveSheet());
|
||||||
|
|
||||||
$json = file_get_contents('php://input');
|
|
||||||
$data = json_decode($json, true);
|
|
||||||
|
|
||||||
empty($data) and die(json_encode(['error' => 'No se recibieron datos', 'data' => $data]));
|
|
||||||
|
|
||||||
$data_excel = array(
|
$data_excel = array(
|
||||||
"FECHA" => 'registro_fecha_ideal',
|
"FECHA" => 'registro_fecha_ideal',
|
||||||
"CLAVE" => 'profesor_clave',
|
"CLAVE" => 'profesor_clave',
|
||||||
@@ -137,8 +148,8 @@ function getFormattedValue($key, $registro)
|
|||||||
'registro_fecha_supervisor' => is_null($registro[$key]) ? 'Sin registro' : date('H:i', strtotime($registro[$key])),
|
'registro_fecha_supervisor' => is_null($registro[$key]) ? 'Sin registro' : date('H:i', strtotime($registro[$key])),
|
||||||
'nombre' => $registro[$key] ?? "Sin registro",
|
'nombre' => $registro[$key] ?? "Sin registro",
|
||||||
'horario_hora_completa' => "{$registro['horario_hora']} - {$registro['horario_fin']}",
|
'horario_hora_completa' => "{$registro['horario_hora']} - {$registro['horario_fin']}",
|
||||||
'usuario_nombre',
|
'usuario_nombre' => $registro[$key] ?? "Sin registro",
|
||||||
'salon_array' => implode(", ", json_decode($registro[$key], true)),
|
'salon_array' => json_encode($registro[$key], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
|
||||||
'justificacion',
|
'justificacion',
|
||||||
'comentario' => $registro[$key] ?? "Sin registro",
|
'comentario' => $registro[$key] ?? "Sin registro",
|
||||||
default => $registro[$key]
|
default => $registro[$key]
|
||||||
@@ -161,7 +172,7 @@ foreach ($data as $index => $registro) {
|
|||||||
array_walk($values, function ($row, $column_index) use ($sheet, $index, $registro) {
|
array_walk($values, function ($row, $column_index) use ($sheet, $index, $registro) {
|
||||||
$value = getFormattedValue($row, $registro);
|
$value = getFormattedValue($row, $registro);
|
||||||
$cellLocation = chr(65 + $column_index) . (ROW + $index + 1);
|
$cellLocation = chr(65 + $column_index) . (ROW + $index + 1);
|
||||||
|
|
||||||
$sheet->setCellValue($cellLocation, $value);
|
$sheet->setCellValue($cellLocation, $value);
|
||||||
|
|
||||||
if ($value == "Sin registro") {
|
if ($value == "Sin registro") {
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ const store = reactive({
|
|||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
},
|
},
|
||||||
body: JSON.stringify(this.relevant)
|
// body: JSON.stringify(this.relevant)
|
||||||
});
|
});
|
||||||
const blob = await res.blob();
|
const blob = await res.blob();
|
||||||
window.saveAs(blob, `auditoria_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
window.saveAs(blob, `auditoria_${new Date().toISOString().slice(0, 10)}.xlsx`);
|
||||||
@@ -314,8 +314,50 @@ const store = reactive({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const detalle = reactive({
|
||||||
|
correo: null,
|
||||||
|
facultad: null,
|
||||||
|
materia: null,
|
||||||
|
carrera: null,
|
||||||
|
nivel: null,
|
||||||
|
horario_grupo: null,
|
||||||
|
|
||||||
|
reset() {
|
||||||
|
this.correo = null
|
||||||
|
this.facultad = null
|
||||||
|
this.materia = null
|
||||||
|
this.carrera = null
|
||||||
|
this.nivel = null
|
||||||
|
this.horario_grupo = null
|
||||||
|
},
|
||||||
|
|
||||||
|
async obtener_detalle(horario_id, profesor_id) {
|
||||||
|
detalle.reset();
|
||||||
|
|
||||||
|
$('div.modal#cargando').modal('show');
|
||||||
|
try {
|
||||||
|
const resultado = await (await fetch(`action/action_auditoria_detalle.php?${new URLSearchParams({ horario_id, profesor_id })}`)).json();
|
||||||
|
|
||||||
|
this.correo = resultado.profesor_correo;
|
||||||
|
this.facultad = resultado.facultad;
|
||||||
|
this.materia = resultado.materia;
|
||||||
|
this.carrera = resultado.carrera;
|
||||||
|
this.nivel = resultado.nivel;
|
||||||
|
this.grupo = resultado.grupo;
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
console.log('Error:', error)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
$('div.modal#cargando').modal('hide');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
createApp({
|
createApp({
|
||||||
store,
|
store,
|
||||||
|
detalle,
|
||||||
messages: [],
|
messages: [],
|
||||||
get clase_vista() {
|
get clase_vista() {
|
||||||
return store.current.clase_vista;
|
return store.current.clase_vista;
|
||||||
|
|||||||
Reference in New Issue
Block a user