static function updateEmpresa($empresaDto) { $empresa = BaseDao::getEmpresaById($empresaDto->id); $result = new Result(); try { $transaction = GenericDao::beginTransaction(); $empresa->nombre = $empresaDto->nombre; $empresa->descripcion = $empresaDto->descripcion; $empresa->enabled = $empresaDto->enabled; $empresa->updateDate = date("Y-m-d H:i:s", time()); if ($empresa->orden != $empresaDto->orden) { $empresas = $data = BaseDao::getAllEmpresas(); $empresasFiltered = Phinq::create($empresas)->orderBy(function ($item) { return $item->orden; })->where(function ($item) use($empresaDto) { return $item->id != $empresaDto->id && $item->orden >= $empresaDto->orden; })->toArray(); $firstOrden = $empresaDto->orden; foreach ($empresasFiltered as $cf) { $firstOrden++; $cf->orden = $firstOrden; BaseDao::updateEmpresa($cf, $transaction); } } $empresa->orden = $empresaDto->orden; BaseDao::updateCategoria($empresa, $transaction); if (FileManager::fileLoaded()) { $empresa->img = 'empresa_' . $empresa->id . "." . FileManager::getFileExtension(); BaseDao::updateCategoria($empresa, $transaction); FileManager::saveFile('empresas', 'empresa', $empresa->id); } $transaction->commit(); } catch (\Exception $ex) { $transaction->rollBack(); $result->hasErrors = true; $result->messages = array($ex->getMessage()); } $response = new Response($result, NULL); return json_encode($response); }