static function updateCategoriaNovedad($categoriaNovedadDto) { $categoriaNovedad = BaseDao::getCategoriaNovedadById($categoriaNovedadDto->id); $result = new Result(); try { $transaction = GenericDao::beginTransaction(); $categoriaNovedad->nombre = $categoriaNovedadDto->nombre; $categoriaNovedad->descripcion = $categoriaNovedadDto->descripcion; $categoriaNovedad->enabled = $categoriaNovedadDto->enabled; $categoriaNovedad->updateDate = date("Y-m-d H:i:s", time()); if ($categoriaNovedad->orden != $categoriaNovedadDto->orden) { $categoriasNovedad = $data = BaseDao::getAllCategoriasNovedad(); $categoriasNovedadFiltered = Phinq::create($categoriasNovedad)->orderBy(function ($item) { return $item->orden; })->where(function ($item) use($categoriaNovedadDto) { return $item->id != $categoriaNovedadDto->id && $item->orden >= $categoriaNovedadDto->orden; })->toArray(); $firstOrden = $categoriaNovedadDto->orden; foreach ($categoriasNovedadFiltered as $cf) { $firstOrden++; $cf->orden = $firstOrden; BaseDao::updateCategoriaNovedad($cf, $transaction); } } $categoriaNovedad->orden = $categoriaNovedadDto->orden; BaseDao::updateCategoria($categoriaNovedad, $transaction); $transaction->commit(); } catch (\Exception $ex) { $transaction->rollBack(); $result->hasErrors = true; $result->messages = array($ex->getMessage()); } $response = new Response($result, NULL); return json_encode($response); }