maquina duplicate

This commit is contained in:
amazuecos
2025-01-22 16:54:49 +01:00
parent fe289bc3ce
commit d427ed308d
2 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,60 @@
<?php
namespace App\Services;
use App\Entities\Configuracion\Maquina;
use App\Models\Configuracion\MaquinaModel;
use CodeIgniter\Config\BaseService;
class MaquinaService extends BaseService
{
protected Maquina $maquina;
protected MaquinaModel $maquinaModel;
public function __construct()
{
$this->maquinaModel = model(MaquinaModel::class);
}
public function setMaquinaEntity(Maquina $maquinaEntity): self
{
$this->maquina = $maquinaEntity;
return $this;
}
public function duplicate(string $newName): ?Maquina
{
$maquina_array = $this->maquina->toArray();
$maquinaDuplicatedId = $this->maquinaModel->insert($maquina_array);
$maquina_array['nombre'] = $newName;
$maquinaWithAllRelations = $this->maquina->withAll()->toArray();
$maquina_defecto = $maquinaWithAllRelations['maquina_defecto'];
$maquina_papeles_impresion = $maquinaWithAllRelations['papeles_impresion'];
$maquina_calles = $maquinaWithAllRelations['maquina_calles'];
foreach ($maquina_defecto as $md)
{
unset($md['id']);
$md['maquina_id'] = $maquinaDuplicatedId;
}
foreach ($maquina_papeles_impresion as $mpi)
{
unset($mpi['id']);
$mpi['maquina_id'] = $maquinaDuplicatedId;
}
foreach ($maquina_calles as $mc)
{
unset($mc['id']);
$mc['maquina_id'] = $maquinaDuplicatedId;
}
return $this->maquinaModel->find($maquinaDuplicatedId)->withAll();
}
}