66 lines
2.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use App\Models\Documenti;
class GenDoc extends Model
{
use HasFactory;
// DocumentiGenerali
public static function saveDocument($data){
//$filename = $data->file('filename')->store(self::getEntityFolder($data['entity']));
$file=$data->file('filename');
$filename = $file->hashName();
$upload = Storage::put(self::getEntityFolder($data['entity'])."/".$filename,$file);
dd($filename);
DB::table('gen_docs')
->insert([
'entity'=>$data['entity'],
'entity_id'=>($data['entity_id'] ?? 0 ),
'descrizione'=>$data['descrizione'],
'filename'=>$filename,
]);
}
public static function listDocument($entity,$entity_id = 1)
{
// Ritorna la lista dei documenti in base all'entità e al rispettivo id
return DB::table('gen_docs')->where('entity','=',$entity)->where('entity_id','=',$entity_id)->get(); //nuova funzione
// return DB::table('documentis')->where('movimenti_id','=', $entity_id)->get();
}
public static function countDocument($entity,$entity_id = 1){
// Conta i documenti inseriti per la determinata entità e id
$quanti=DB::table('gen_docs')
->where('entity','=',$entity)
->where('entity_id','=',$entity_id)
->count();
return $quanti;
}
private static function getEntityFolder($id)
{
// Recupera il percorso ('path') dell'entità con l'ID specificato dalla tabella 'Documenti'
$entita = Documenti::where('id',$id)->pluck('path');
// Restituisce il primo elemento del risultato, che dovrebbe essere il percorso dell'entità
return $entita[0];
}
public static function delDocument($id){
$deleted = GenDoc::where('id',$id)->get();
Storage::delete($deleted[0]->filename);
$removed = GenDoc::destroy($id);
//$removed->detete();
return 0;
}
}