コード例 #1
0
ファイル: BaseAdmin.php プロジェクト: pablozabo/Diarco
 static function createCategoriaNovedad($categoriaNovedadDto)
 {
     $categoriaNovedad = new CategoriaNovedad(NULL, date("Y-m-d H:i:s", time()), TRUE, $categoriaNovedadDto->nombre, $categoriaNovedadDto->descripcion, $categoriaNovedadDto->orden);
     $transaction = NULL;
     $result = new Result();
     $lastOrden = $categoriaNovedadDto->orden;
     try {
         $transaction = GenericDao::beginTransaction();
         $categoriasNovedad = $data = BaseDao::getAllCategoriasNovedad();
         if ($lastOrden == 0 || $lastOrden == null) {
             $lastOrden = Phinq::create($categoriasNovedad)->max(function ($item) {
                 return $item->orden;
             });
             $categoriaNovedad->orden = $lastOrden == null ? 1 : ++$lastOrden->orden;
         } else {
             $categoriasNovedadFiltered = Phinq::create($categoriasNovedad)->where(function ($item) use($categoriaNovedadDto) {
                 return $item->orden >= $categoriaNovedadDto->orden;
             })->orderBy(function ($item) {
                 return $item->orden;
             })->toArray();
             foreach ($categoriasNovedadFiltered as $cf) {
                 $lastOrden++;
                 $cf->orden = $lastOrden;
                 BaseDao::updateCategoriaNovedad($cf, $transaction);
             }
         }
         $categoriaNovedad->id = BaseDao::createCategoriaNovedad($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);
 }