コード例 #1
0
 public function addByIDAction()
 {
     $request = $this->request;
     $response = $this->response;
     $flash = $this->flash;
     if ($request->isPost()) {
         $product_id = $request->getPost('product_id', 'int');
         $mplace_id = $request->getPost('mplace_id', 'int');
         $lang = $request->getPost('lang', 'string');
         $product = PProductMain::findFirst($product_id);
         $mplace = Marketplace::findFirst($mplace_id);
         // Validations
         if (!$product) {
             $flash->error('Ошибка: товар не найден!');
             return $response->redirect('seller/addbyid');
         }
         if ($product->hold == 1) {
             $flash->error('Ошибка: товар на холде!');
             return $response->redirect('seller/addbyid');
         }
         if (!$mplace) {
             $flash->error('Ошибка: площадка не найдена!');
             return $response->redirect('seller/addbyid');
         }
         if (!preg_match("/{$lang}/", $mplace->prefs)) {
             $flash->error('Ошибка: язык не соответствует площадке!');
             return $response->redirect('seller/addbyid');
         }
         // Check for appropriate marketseller
         $marketseller = Marketseller::findFirst("user_id={$this->auth->id} AND marketplace_id={$mplace_id} AND tmaterial_id={$product->tmaterial_id} AND langcode LIKE '%{$lang}%'");
         // If there is no marketseller or if the product is already placed create a new marketseller
         if (!$marketseller or MPlacement::findFirst("marketseller_id={$marketseller->id} AND product_id={$product->id}")) {
             $mseller = new Marketseller();
             $mseller->id = $mseller->id();
             $mseller->created = time();
             $mseller->updated = time();
             $mseller->fio = "{$product->PCategoryGroup->title} на {$mplace->title}";
             $mseller->user_id = $this->auth->id;
             $mseller->marketplace_id = $mplace_id;
             $mseller->tmaterial_id = $product->tmaterial_id;
             $mseller->langcode = $mplace->prefs;
             if (!$mseller->create()) {
                 $flash->error('Ошибка при создании нового виртуального магазина!');
                 return $response->redirect('seller/addbyid');
             } else {
                 return $response->redirect("seller/product/{$mseller->id}/{$product_id}/{$lang}");
             }
         } else {
             return $response->redirect("seller/product/{$marketseller->id}/{$product_id}/{$lang}");
         }
     }
 }