Tul xxx Tul
User / IP
:
216.73.216.217
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
aircan3
/
app
/
models
/
Viewing: Tarea.php
<?php /** * Modelo Tarea */ class Tarea extends Model { /** * Obtener todas las tareas con nombre de empleado */ public function getAll(): array { $sql = "SELECT t.*, e.nombre AS empleado_nombre, e.cargo AS empleado_cargo, e.foto AS empleado_foto FROM tareas t JOIN empleados e ON e.id = t.empleado_id ORDER BY t.fecha_creacion DESC"; return $this->fetchAll($sql); } /** * Obtener tareas de un empleado */ public function getByEmpleado(int $empleadoId): array { $sql = "SELECT t.*, e.nombre AS empleado_nombre, e.cargo AS empleado_cargo, e.foto AS empleado_foto FROM tareas t JOIN empleados e ON e.id = t.empleado_id WHERE t.empleado_id = :empleado_id ORDER BY t.fecha_creacion DESC"; return $this->fetchAll($sql, ['empleado_id' => $empleadoId]); } /** * Obtener tarea por ID con datos del empleado */ public function getById(int $id): array|false { $sql = "SELECT t.*, e.nombre AS empleado_nombre, e.cargo AS empleado_cargo, e.foto AS empleado_foto FROM tareas t JOIN empleados e ON e.id = t.empleado_id WHERE t.id = :id LIMIT 1"; return $this->fetchOne($sql, ['id' => $id]); } /** * Crear tarea */ public function create(array $data): string { $sql = "INSERT INTO tareas (empleado_id, titulo, descripcion, estado, archivo) VALUES (:empleado_id, :titulo, :descripcion, :estado, :archivo)"; $this->query($sql, [ 'empleado_id' => $data['empleado_id'], 'titulo' => $data['titulo'], 'descripcion' => $data['descripcion'] ?? null, 'estado' => $data['estado'] ?? 'pendiente', 'archivo' => $data['archivo'] ?? null, ]); return $this->lastInsertId(); } /** * Actualizar estado */ public function updateEstado(int $id, string $estado): void { $sql = "UPDATE tareas SET estado = :estado WHERE id = :id"; $this->query($sql, ['id' => $id, 'estado' => $estado]); } /** * Actualizar tarea completa */ public function update(int $id, array $data): void { $sql = "UPDATE tareas SET titulo = :titulo, descripcion = :descripcion, empleado_id = :empleado_id WHERE id = :id"; $this->query($sql, [ 'id' => $id, 'titulo' => $data['titulo'], 'descripcion' => $data['descripcion'] ?? null, 'empleado_id' => $data['empleado_id'], ]); } /** * Eliminar tarea */ public function delete(int $id): void { $this->query("DELETE FROM tareas WHERE id = :id", ['id' => $id]); } /** * Contar tareas por estado */ public function countByEstado(string $estado): int { $r = $this->fetchOne("SELECT COUNT(*) as total FROM tareas WHERE estado = :estado", ['estado' => $estado]); return (int)($r['total'] ?? 0); } /** * Contar tareas por empleado */ public function countByEmpleado(int $empleadoId): int { $r = $this->fetchOne("SELECT COUNT(*) as total FROM tareas WHERE empleado_id = :empleado_id", ['empleado_id' => $empleadoId]); return (int)($r['total'] ?? 0); } /** * Obtener items del checklist de una tarea */ public function getChecklist(int $tareaId): array { $sql = "SELECT * FROM tarea_items WHERE tarea_id = :tarea_id ORDER BY id ASC"; return $this->fetchAll($sql, ['tarea_id' => $tareaId]); } /** * Agregar item al checklist */ public function addChecklistItem(int $tareaId, string $descripcion): void { $sql = "INSERT INTO tarea_items (tarea_id, descripcion) VALUES (:tarea_id, :descripcion)"; $this->query($sql, ['tarea_id' => $tareaId, 'descripcion' => $descripcion]); } /** * Actualizar estado de un item del checklist */ public function updateChecklistItem(int $itemId, int $completado): void { $sql = "UPDATE tarea_items SET completado = :completado WHERE id = :id"; $this->query($sql, ['id' => $itemId, 'completado' => $completado]); } }
Coded With 💗 by
0x6ick