diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 15e036e9..6ed7c197 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -3686,21 +3686,30 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController public function download_zip() { $presupuesto_id = $this->request->getPost('presupuesto_id'); + $ot_id = $this->request->getPost('ot_id'); + if (!$presupuesto_id) { return $this->response->setStatusCode(400)->setBody('Presupuesto ID requerido'); } + // Definir prefijo si se recibió un ot_id válido + $prefijo = (!empty($ot_id) && is_numeric($ot_id)) ? "OT_{$ot_id}" : null; + $ftpClient = new \App\Libraries\SafekatFtpClient(); try { - $zipPath = $ftpClient->downloadZipPresupuesto((int) $presupuesto_id); + $zipPath = $ftpClient->downloadZipPresupuesto((int) $presupuesto_id, $prefijo); if ($zipPath === null || !file_exists($zipPath)) { return $this->response->setStatusCode(404)->setBody('No se encontraron archivos'); } + $nombreArchivo = $prefijo + ? "{$prefijo}_PRESUPUESTO_{$presupuesto_id}.zip" + : "archivos_presupuesto_{$presupuesto_id}.zip"; + return $this->response - ->download($zipPath, null) // null = usar nombre original del archivo - ->setFileName('archivos_presupuesto_' . $presupuesto_id . '.zip'); + ->download($zipPath, null) + ->setFileName($nombreArchivo); } catch (\Throwable $e) { log_message('error', $e->getMessage()); return $this->response->setStatusCode(500)->setBody('Error interno'); @@ -3708,4 +3717,5 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } + } diff --git a/ci4/app/Controllers/Produccion/Ordenmaquina.php b/ci4/app/Controllers/Produccion/Ordenmaquina.php deleted file mode 100755 index a92f0ae8..00000000 --- a/ci4/app/Controllers/Produccion/Ordenmaquina.php +++ /dev/null @@ -1,35 +0,0 @@ -base_dir, 'pedidos_files', $rootIdExtern]); } - public function downloadZipPresupuesto(int $presupuesto_id): ?string + public function downloadZipPresupuesto(int $presupuesto_id, ?string $prefijo = null): ?string { $modelPedidoLinea = model(PedidoLineaModel::class); $model = model(PresupuestoFicheroModel::class); @@ -143,8 +143,11 @@ class SafekatFtpClient foreach ($files as $file) { $originalName = $file->nombre ?? basename($file->file_path); - $localFile = $localTempDir . '/' . $originalName; + $prefixedName = $prefijo ? $prefijo . '_' . $originalName : $originalName; + + $localFile = $localTempDir . '/' . $prefixedName; $remoteFile = $remotePath . '/' . basename($file->file_path); + $this->ftp->get($remoteFile, $localFile); } @@ -167,4 +170,5 @@ class SafekatFtpClient } + } diff --git a/ci4/app/Views/themes/vuexy/components/dropzone.php b/ci4/app/Views/themes/vuexy/components/dropzone.php index 4065ca91..3ca591e9 100755 --- a/ci4/app/Views/themes/vuexy/components/dropzone.php +++ b/ci4/app/Views/themes/vuexy/components/dropzone.php @@ -12,7 +12,7 @@ data-bs-parent="#accordionPresupuestoFiles">