mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Refactorizacion
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user