Пример #1
0
 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
 static function deleteProducto($productoId)
 {
     $producto = BaseDao::getProductoById($productoId);
     $result = new Result();
     try {
         $transaction = GenericDao::beginTransaction();
         $producto->deleted = true;
         BaseDao::updateCategoria($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);
 }