コード例 #1
0
ファイル: FormAdmin.php プロジェクト: pablozabo/Diarco
 static function updateForm($formDto)
 {
     $form = FormDao::getById($formDto->id);
     $lastTemplate = json_decode(FormDao::getFormTemplate($formDto->id)->template);
     $transaction = NULL;
     try {
         $transaction = GenericDao::beginTransaction();
         //region Form
         $template = new FormTemplate(NULL, date("Y-m-d H:i:s", time()), TRUE, $form->id, json_encode($formDto));
         $form->currentTemplateId = FormDao::createFormTemplate($template, $transaction);
         $form->title = $formDto->title;
         $form->updateDate = date("Y-m-d H:i:s", time());
         $form->enabled = $formDto->enabled;
         FormDao::updateForm($form, $transaction);
         //endregion
         //region Productos
         $currentProductos = BaseDao::getProductosByFormId($formDto->id);
         $newProductos = $formDto->productos;
         $productosToAdd = Phinq::create($newProductos)->where(function ($item) use($currentProductos) {
             return !Phinq::create($currentProductos)->any(function ($id) use($item) {
                 return $id == $item;
             });
         })->toArray();
         $productosToDelete = Phinq::create($currentProductos)->where(function ($item) use($newProductos) {
             return !Phinq::create($newProductos)->any(function ($id) use($item) {
                 return $id == $item;
             });
         })->toArray();
         foreach ($productosToAdd as $productoId) {
             $producto = BaseDao::getProductoById($productoId);
             $producto->formularioId = $formDto->id;
             BaseDao::updateProducto($producto, $transaction);
         }
         foreach ($productosToDelete as $productoId) {
             $producto = BaseDao::getProductoById($productoId);
             $producto->formularioId = null;
             BaseDao::updateProducto($producto, $transaction);
         }
         //endregion
         //region Model
         $columns = FormAdmin::getNewFormColumns($formDto, $lastTemplate);
         FormDao::updateEntryModel($form->id, $columns, $transaction);
         //endregion
         $transaction->commit();
     } catch (\Exception $ex) {
         $transaction->rollBack();
     }
     $result = new Response(new Result(), NULL);
     return json_encode($result);
 }
コード例 #2
0
ファイル: BaseAdmin.php プロジェクト: pablozabo/Diarco
 static function updateProducto($productoDto)
 {
     $producto = BaseDao::getProductoById($productoDto->id);
     $result = new Result();
     try {
         $transaction = GenericDao::beginTransaction();
         $producto->categoriaId = $productoDto->categoriaId;
         $producto->nombre = $productoDto->nombre;
         $producto->descripcion = $productoDto->descripcion;
         $producto->terminos = $productoDto->terminos;
         $producto->enabled = $productoDto->enabled;
         $producto->updateDate = date("Y-m-d H:i:s", time());
         if ($producto->orden != $productoDto->orden) {
             $productos = $data = BaseDao::getAllProductos();
             $productosFiltered = Phinq::create($productos)->orderBy(function ($item) {
                 return $item->orden;
             })->where(function ($item) use($productoDto) {
                 return $item->id != $productoDto->id && $item->orden >= $productoDto->orden;
             })->toArray();
             $firstOrden = $productoDto->orden;
             foreach ($productosFiltered as $cf) {
                 $firstOrden++;
                 $cf->orden = $firstOrden;
                 BaseDao::updateCategoria($cf, $transaction);
             }
         }
         $producto->orden = $productoDto->orden;
         BaseDao::updateProducto($producto, $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);
 }