From cecb54c924ec94f67e08f4d85818e589c7b7702a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20S=C3=A1nchez=20Mart=C3=ADnez?= Date: Fri, 13 Mar 2026 12:00:28 +0100 Subject: [PATCH 1/3] =?UTF-8?q?A=C3=B1adida=20pesta=C3=B1a=20archivos=20a?= =?UTF-8?q?=20EditProyectos.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/EditProyecto.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Controller/EditProyecto.php b/Controller/EditProyecto.php index ca2b59b..360ca07 100644 --- a/Controller/EditProyecto.php +++ b/Controller/EditProyecto.php @@ -30,6 +30,7 @@ use FacturaScripts\Core\DataSrc\Series; use FacturaScripts\Core\Lib\ExtendedController\EditController; use FacturaScripts\Core\Lib\ExtendedController\EditView; +use FacturaScripts\Core\Lib\ExtendedController\DocFilesTrait; use FacturaScripts\Core\Lib\InvoiceOperation; use FacturaScripts\Core\Tools; use FacturaScripts\Dinamic\Lib\ProjectStockManager; @@ -46,6 +47,8 @@ */ class EditProyecto extends EditController { + use DocFilesTrait; + public function getModelClassName(): string { return 'Proyecto'; @@ -169,6 +172,7 @@ protected function createViews() $this->createViewSales('PedidoCliente', 'customer-orders'); $this->createViewSales('AlbaranCliente', 'customer-delivery-notes'); $this->createViewSales('FacturaCliente', 'customer-invoices'); + $this->createViewDocFiles(); $this->createViewsUsers(); } @@ -449,6 +453,21 @@ protected function execPreviousAction($action) $parts = explode('-', $action); return $this->unlinkUpAction(end($parts)); + case 'add-file': + return $this->addFileAction(); + + case 'delete-file': + return $this->deleteFileAction(); + + case 'edit-file': + return $this->editFileAction(); + + case 'unlink-file': + return $this->unlinkFileAction(); + + case 'sort-files': + return $this->sortFilesAction(); + default: return parent::execPreviousAction($action); } @@ -573,6 +592,7 @@ protected function loadData($viewName, $view) case 'ListStockProyecto': case 'ListTareaProyecto': case 'ListServicioAT': + case 'docfiles': $where = [new DataBaseWhere('idproyecto', $idproyecto)]; $view->loadData('', $where); break; From 24d60f7a5102e298efd5ca88b78a59b81f15a51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20S=C3=A1nchez=20Mart=C3=ADnez?= Date: Fri, 13 Mar 2026 12:23:31 +0100 Subject: [PATCH 2/3] =?UTF-8?q?pesta=C3=B1a=20archivos=20a=C3=B1adida=20a?= =?UTF-8?q?=20EditTareaProyecto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/EditTareaProyecto.php | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/Controller/EditTareaProyecto.php b/Controller/EditTareaProyecto.php index f645983..6d09a0a 100644 --- a/Controller/EditTareaProyecto.php +++ b/Controller/EditTareaProyecto.php @@ -22,6 +22,7 @@ use FacturaScripts\Core\Base\DataBase\DataBaseWhere; use FacturaScripts\Core\Lib\ExtendedController\EditController; use FacturaScripts\Core\Lib\ExtendedController\EditView; +use FacturaScripts\Core\Lib\ExtendedController\DocFilesTrait; use FacturaScripts\Core\Tools; @@ -33,6 +34,15 @@ */ class EditTareaProyecto extends EditController { + use DocFilesTrait; + + public function __construct(string $className = '', string $uri = '') + { + parent::__construct($className, $uri); + // Keep tabs visible when creating a new task so user can add files/notes + $this->hasData = true; + } + public function getModelClassName(): string { return 'TareaProyecto'; @@ -53,6 +63,7 @@ protected function createViews() parent::createViews(); $this->setTabsPosition('bottom'); $this->createViewsNotes(); + $this->createViewDocFiles(); } protected function createViewsNotes(string $viewName = 'EditNotaProyecto') @@ -76,6 +87,34 @@ protected function disableTaskColumns(&$view) } } + /** + * @param string $action + * + * @return bool + */ + protected function execPreviousAction($action) + { + switch ($action) { + case 'add-file': + return $this->addFileAction(); + + case 'delete-file': + return $this->deleteFileAction(); + + case 'edit-file': + return $this->editFileAction(); + + case 'unlink-file': + return $this->unlinkFileAction(); + + case 'sort-files': + return $this->sortFilesAction(); + + default: + return parent::execPreviousAction($action); + } + } + /** * @param string $viewName * @param EditView $view @@ -92,6 +131,12 @@ protected function loadData($viewName, $view) $this->disableTaskColumns($view); $this->views['EditTareaProyecto']->disableColumn('code'); } + + // If it is a new task (no model exists yet) keep the files tab active so user can add files + if (false === $view->model->exists()) { + $this->setSettings('docfiles', 'active', true); + } + break; case 'EditNotaProyecto': @@ -101,6 +146,10 @@ protected function loadData($viewName, $view) $view->model->idproyecto = $this->getViewModelValue($mainViewName, 'idproyecto'); } break; + + case 'docfiles': + $this->loadDataDocFiles($view, $this->getModelClassName(), $this->getViewModelValue($mainViewName, 'idtarea')); + break; } } } From c04242165d9e9265a947817e7c426f551e5a6ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20S=C3=A1nchez=20Mart=C3=ADnez?= Date: Fri, 13 Mar 2026 12:45:55 +0100 Subject: [PATCH 3/3] =?UTF-8?q?->hasData=20=3D=20true;=20quitado=20del=20c?= =?UTF-8?q?onstructor=20para=20no=20forzar=20que=20se=20vean=20las=20pesta?= =?UTF-8?q?=C3=B1as?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/EditTareaProyecto.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/Controller/EditTareaProyecto.php b/Controller/EditTareaProyecto.php index 6d09a0a..9f8418b 100644 --- a/Controller/EditTareaProyecto.php +++ b/Controller/EditTareaProyecto.php @@ -39,8 +39,6 @@ class EditTareaProyecto extends EditController public function __construct(string $className = '', string $uri = '') { parent::__construct($className, $uri); - // Keep tabs visible when creating a new task so user can add files/notes - $this->hasData = true; } public function getModelClassName(): string