From 01498361e3b31c38f864cc18c11d3785ca8541e7 Mon Sep 17 00:00:00 2001 From: amazuecos Date: Tue, 21 Jan 2025 09:56:59 +0100 Subject: [PATCH] fix duplicate --- .../Entities/Configuracion/PapelImpresion.php | 12 ++--- ci4/app/Services/PapelImpresionService.php | 50 +++++++++++-------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/ci4/app/Entities/Configuracion/PapelImpresion.php b/ci4/app/Entities/Configuracion/PapelImpresion.php index 9aaa4a2f..d977764c 100755 --- a/ci4/app/Entities/Configuracion/PapelImpresion.php +++ b/ci4/app/Entities/Configuracion/PapelImpresion.php @@ -53,19 +53,19 @@ class PapelImpresion extends \CodeIgniter\Entity\Entity "is_deleted" => "int", ]; - public function tipologia() : ?PapelImpresionTipologia + public function tipologia() : ?array { $m = model(PapelImpresionTipologiaModel::class); - return $m->where('papel_impresion_id',$this->attributes["id"])->first(); + return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll(); } - public function maquinas_impresion() : ?MaquinasPapelesImpresionEntity + public function maquinas_impresion() : ?array { $m = model(MaquinasPapelesImpresionModel::class); - return $m->where('papel_impresion_id',$this->attributes["id"])->first(); + return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll(); } - public function margen() : ?PapelImpresionMargen + public function margen() : ?array { $m = model(PapelImpresionMargenModel::class); - return $m->where('papel_impresion_id',$this->attributes["id"])->first(); + return $m->asArray()->where('papel_impresion_id',$this->attributes["id"])->findAll(); } } diff --git a/ci4/app/Services/PapelImpresionService.php b/ci4/app/Services/PapelImpresionService.php index b476f511..3ba1393a 100644 --- a/ci4/app/Services/PapelImpresionService.php +++ b/ci4/app/Services/PapelImpresionService.php @@ -23,44 +23,54 @@ class PapelImpresionService extends BaseService protected PapelImpresion $papelImpresion; - - public function __construct() { + + public function __construct() + { $this->papelImpresionModel = model(PapelImpresionModel::class); $this->papelImpresionModel = model(PapelImpresionModel::class); $this->papelImpresionMargenModel = model(PapelImpresionMargenModel::class); $this->papelImpresionTipologiaModel = model(PapelImpresionTipologiaModel::class); $this->papelImpresionMaquinaModel = model(MaquinasPapelesImpresionModel::class); } - public function setPapelImpresionEntity(PapelImpresion $papelImpresionEntity) : self + public function setPapelImpresionEntity(PapelImpresion $papelImpresionEntity): self { $this->papelImpresion = $papelImpresionEntity; return $this; } - public function duplicate(string $newName) : PapelImpresion + public function duplicate(string $newName): ?PapelImpresion { $papelImpresionRow = $this->papelImpresion?->toArray(); - $papelImpresionMargen = $this->papelImpresion->margen()?->toArray(); - $papelImpresionTipologia = $this->papelImpresion->tipologia()?->toArray(); - $papelImpresionMaquina = $this->papelImpresion->maquinas_impresion()?->toArray(); + $papelImpresionMargenes = $this->papelImpresion->margen(); + $papelImpresionTipologias = $this->papelImpresion->tipologia(); + $papelImpresionMaquinas = $this->papelImpresion->maquinas_impresion(); $papelImpresionRow['nombre'] = $newName; - if($this->papelImpresion){ + if ($this->papelImpresion) { + unset($papelImpresionRow["id"]); $papelImpresionDuplicatedId = $this->papelImpresionModel->insert($papelImpresionRow); } - if($papelImpresionMargen){ - $papelImpresionMargen['papel_impresion_id'] = $papelImpresionDuplicatedId; - $this->papelImpresionMargenModel->insert($papelImpresionMargen); + if ($papelImpresionMargenes) { + foreach ($papelImpresionMargenes as $papelImpresionMargen) { + unset($papelImpresionMargen["id"]); + $papelImpresionMargen['papel_impresion_id'] = $papelImpresionDuplicatedId; + $this->papelImpresionMargenModel->insert($papelImpresionMargen); + } } - if($papelImpresionTipologia){ - $this->papelImpresionTipologiaModel->insert($papelImpresionTipologia); - $papelImpresionTipologia['papel_impresion_id'] = $papelImpresionDuplicatedId; + if ($papelImpresionTipologias) { + foreach ($papelImpresionTipologias as $papelImpresionTipologia) { + unset($papelImpresionTipologia["id"]); + $papelImpresionTipologia['papel_impresion_id'] = $papelImpresionDuplicatedId; + $this->papelImpresionTipologiaModel->insert($papelImpresionTipologia); + } } - if($papelImpresionMaquina){ - $papelImpresionMaquina['papel_impresion_id'] = $papelImpresionDuplicatedId; - $this->papelImpresionMaquinaModel->insert($papelImpresionMaquina); + if ($papelImpresionMaquinas) { + foreach ($papelImpresionMaquinas as $papelImpresionMaquina) { + unset($papelImpresionMaquina["id"]); + $papelImpresionMaquina['papel_impresion_id'] = $papelImpresionDuplicatedId; + $this->papelImpresionMaquinaModel->insert($papelImpresionMaquina); + } } $papelImpresionDuplicated = $this->papelImpresionModel->find($papelImpresionDuplicatedId); - return $papelImpresionDuplicated; - + return $papelImpresionDuplicated; } -} \ No newline at end of file +}