Refactorizacion

This commit is contained in:
imnavajas
2025-07-23 11:56:43 +02:00
parent 065903be2f
commit e65e942e58
15 changed files with 491 additions and 181 deletions

View File

@ -2,6 +2,8 @@
namespace App\Models\Presupuestos;
use Config\Paths;
class PresupuestoFicheroModel extends \App\Models\BaseModel
{
protected $table = "presupuesto_ficheros";
@ -23,16 +25,42 @@ class PresupuestoFicheroModel extends \App\Models\BaseModel
public static $labelField = "nombre";
/**
* Devuelve la ruta relativa del archivo dentro de WRITEPATH.
*
* @param int $presupuesto_id
* @param string $filename
* @return string
*/
public function getRelativePath(int $presupuesto_id, string $filename): string
{
return config(Paths::class)->presupuestosPath . '/' . $presupuesto_id . '/' . $filename;
}
/**
* Devuelve la ruta absoluta en el sistema de archivos del servidor.
*
* @param int $presupuesto_id
* @param string $filename
* @return string
*/
public function getAbsolutePath(int $presupuesto_id, string $filename): string
{
return WRITEPATH . $this->getRelativePath($presupuesto_id, $filename);
}
public function saveFileInBBDD($presupuesto_id, $filename, $extension, $user_id)
{
try {
$new_filename = $this->generateFileHash($filename) . '.' . $extension;
$relativePath = $this->getRelativePath($presupuesto_id, $new_filename);
$this->db->table($this->table . " t1")
->set('presupuesto_id', $presupuesto_id)
->set('nombre', $filename)
->set('file_path', 'uploads/presupuestos/' . $new_filename)
->set('file_path', $relativePath)
->set('upload_by', $user_id)
->set('upload_at', date('Y-m-d H:i:s'))
->insert();
@ -112,6 +140,7 @@ class PresupuestoFicheroModel extends \App\Models\BaseModel
public function deleteMissingFiles(int $presupuesto_id, array $keepNames = [])
{
$files = $this->getFiles($presupuesto_id);
$deletedCount = 0;
foreach ($files as $file) {
if (!in_array($file->nombre, $keepNames)) {
@ -123,8 +152,12 @@ class PresupuestoFicheroModel extends \App\Models\BaseModel
->where('presupuesto_id', $presupuesto_id)
->where('nombre', $file->nombre)
->delete();
$deletedCount++;
}
}
return $deletedCount;
}