diff --git a/Controller/EditProyecto.php b/Controller/EditProyecto.php index 4cd831b..3a16abe 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'; @@ -161,6 +164,7 @@ protected function createViews() $this->createViewsNotes(); $this->createViewsStock(); $this->createViewsServices(); + // Purchases (supplier) views - add only if user has permissions (mirror EditProveedor) if ($this->user->can('EditPresupuestoProveedor')) { $this->createViewPurchases('PresupuestoProveedor', 'supplier-estimations'); @@ -190,6 +194,8 @@ protected function createViews() if ($this->user->can('EditReciboCliente')) { $this->createReceiptView('ListReciboCliente', 'ReciboCliente'); } + + $this->createViewDocFiles(); $this->createViewsUsers(); } @@ -516,6 +522,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); } @@ -640,6 +661,7 @@ protected function loadData($viewName, $view) case 'ListStockProyecto': case 'ListTareaProyecto': case 'ListServicioAT': + case 'docfiles': $where = [new DataBaseWhere('idproyecto', $idproyecto)]; $view->loadData('', $where); break; diff --git a/Controller/EditTareaProyecto.php b/Controller/EditTareaProyecto.php index 1fde4f5..257b598 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,13 @@ */ class EditTareaProyecto extends EditController { + use DocFilesTrait; + + public function __construct(string $className = '', string $uri = '') + { + parent::__construct($className, $uri); + } + public function getModelClassName(): string { return 'TareaProyecto'; @@ -91,6 +99,34 @@ protected function disableTaskColumns(&$view): void } } + /** + * @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 @@ -107,6 +143,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': @@ -116,6 +158,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; } } }