From d427ed308d80001541c5857e0a94078644eea742 Mon Sep 17 00:00:00 2001 From: amazuecos Date: Wed, 22 Jan 2025 16:54:49 +0100 Subject: [PATCH] maquina duplicate --- ci4/app/Entities/Configuracion/Maquina.php | 26 ++++++++++ ci4/app/Services/MaquinaService.php | 60 ++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 ci4/app/Services/MaquinaService.php diff --git a/ci4/app/Entities/Configuracion/Maquina.php b/ci4/app/Entities/Configuracion/Maquina.php index 11b5496b..0aeb2046 100755 --- a/ci4/app/Entities/Configuracion/Maquina.php +++ b/ci4/app/Entities/Configuracion/Maquina.php @@ -1,6 +1,9 @@ "int", "user_updated_id" => "int", ]; + + public function papeles_impresion() : ?array + { + $m = model(MaquinasPapelesImpresionModel::class); + return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll(); + } + public function maquina_defecto(): ?array + { + $m = model(MaquinasDefectoModel::class); + return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll(); + } + public function maquina_calles() : ?array + { + $m = model(MaquinasCallesModel::class); + return $m->asArray()->where('maquina_id',$this->attributes['id'])->findAll(); + } + public function withAll() : self + { + $this->attributes['papeles_impresion'] = $this->papeles_impresion(); + $this->attributes['maquina_calles'] = $this->maquina_calles(); + $this->attributes['maquina_defecto'] = $this->maquina_defecto(); + return $this; + } } diff --git a/ci4/app/Services/MaquinaService.php b/ci4/app/Services/MaquinaService.php new file mode 100644 index 00000000..b384b7d7 --- /dev/null +++ b/ci4/app/Services/MaquinaService.php @@ -0,0 +1,60 @@ +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(); + } +}