Implementada funcionalidad descarga en zip

This commit is contained in:
Ignacio Martinez Navajas
2025-05-22 22:10:14 +02:00
parent b084d1bd7c
commit e3c202ae64
8 changed files with 188 additions and 19 deletions

View File

@ -332,15 +332,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
$forzarRotativa = false;
if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
} else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
$excluirRotativa = true;
}
}
$input_data = array(
'uso' => 'interior',
@ -760,14 +759,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
$forzarRotativa = false;
if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
} else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
$excluirRotativa = true;
}
}
$input_data = array(
'uso' => 'interior',
@ -1340,8 +1338,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$datos_presupuesto['entrega_taller'] = $reqData['entrega_taller'] ?? 0;
$resultado_presupuesto['info']['merma'] = isset($resultado_presupuesto['info']['num_formas']) ?
PresupuestoService::calcular_merma($selected_tirada, $POD, $resultado_presupuesto['info']['num_formas']): PresupuestoService::calcular_merma($selected_tirada, $POD);
$resultado_presupuesto['info']['merma'] = isset($resultado_presupuesto['info']['num_formas']) ?
PresupuestoService::calcular_merma($selected_tirada, $POD, $resultado_presupuesto['info']['num_formas']) : PresupuestoService::calcular_merma($selected_tirada, $POD);
$datos_presupuesto['faja'] = $faja;
@ -2080,14 +2078,13 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
$forzarRotativa = false;
if ($tirada[$t] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
} else if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
$excluirRotativa = true;
}
}
$input_data = array(
'uso' => 'interior',
@ -3586,4 +3583,29 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $servicios;
}
public function download_zip()
{
$presupuesto_id = $this->request->getPost('presupuesto_id');
if (!$presupuesto_id) {
return $this->response->setStatusCode(400)->setBody('Presupuesto ID requerido');
}
$ftpClient = new \App\Libraries\SafekatFtpClient();
try {
$zipPath = $ftpClient->downloadZipPresupuesto((int) $presupuesto_id);
if ($zipPath === null || !file_exists($zipPath)) {
return $this->response->setStatusCode(404)->setBody('No se encontraron archivos');
}
return $this->response
->download($zipPath, null) // null = usar nombre original del archivo
->setFileName('archivos_presupuesto_' . $presupuesto_id . '.zip');
} catch (\Throwable $e) {
log_message('error', $e->getMessage());
return $this->response->setStatusCode(500)->setBody('Error interno');
}
}
}