Files
safekat/ci4/app/Models/Catalogo/CatalogoLibroModel.php
2025-04-20 15:58:43 +02:00

129 lines
3.2 KiB
PHP

<?php
namespace App\Models\Catalogo;
use CodeIgniter\Model;
use App\Entities\Catalogo\CatalogoLibroEntity;
use App\Models\Clientes\ClienteModel;
class CatalogoLibroModel extends Model
{
protected $table = 'catalogo_libros';
protected $primaryKey = 'id';
protected $returnType = CatalogoLibroEntity::class;
protected $useSoftDeletes = true;
protected $useTimestamps = true;
protected $allowedFields = [
'cliente_id',
'proveedor_id',
'user_created_id',
'user_update_id',
'cubierta_archivo',
'cubierta_url',
'ancho',
'alto',
'peso',
'titulo',
'autor',
'autor_entidad',
'traductor',
'ilustrador',
'idioma',
'num_edic',
'fecha_disponibilidad',
'fecha_public',
'num_fotos',
'num_ilustr',
'num_ilustr_color',
'num_ilustr_bn',
'coleccion',
'isk',
'isbn',
'ean',
'editorial',
'resumen',
'resumen_breve',
'sello',
'paginas',
'tipo_impresion',
'solapas_ancho',
'cubiertas_ancho',
'comentarios',
'negro_paginas',
'negro_papel',
'negro_gramaje',
'color_paginas',
'color_papel',
'color_gramaje',
'portada_paginas',
'portada_papel',
'portada_gramaje',
'portada_acabado',
'cubierta_paginas',
'cubierta_papel',
'cubierta_gramaje',
'cubierta_acabado',
'encuardenacion',
'ubicacion',
];
protected $useAutoIncrement = true;
protected $protectFields = true;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
// Opcional: reglas de validación
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
/**
* Get resource data.
*
* @return \CodeIgniter\Database\BaseBuilder
*/
public function getDatatableQuery()
{
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS id,
t1.titulo AS titulo,
t2.nombre AS cliente,
t1.titulo AS titulo,
t1.num_edic AS edicion,
t1.autor AS autor,
t1.isbn AS isbn,
t1.ean AS ean,
t1.paginas AS paginas,
t1.cubierta_archivo AS cubierta_archivo,
t1.cubierta_url AS portada"
)
->join('clientes t2', 't1.cliente_id = t2.id');
return $builder;
}
public function getClientList($search = "")
{
$clienteModel = new ClienteModel();
$query = $clienteModel->builder()
->select('id, nombre as name') // O el campo que quieras usar como "name"
->where('deleted_at', null);
if ($search != "") {
$query->groupStart()
->orLike("nombre", $search)
->groupEnd();
}
return $query->get()->getResultObject();
}
}