diff --git a/backend/views/seo/index.php b/backend/views/seo/index.php index 846ea6d..1118984 100755 --- a/backend/views/seo/index.php +++ b/backend/views/seo/index.php @@ -27,8 +27,6 @@ $this->params['breadcrumbs'][] = $this->title; 'seo_id', 'url:url', 'meta', - 'title', - 'description', 'h1', // 'seo_text:ntext', diff --git a/common/modules/product/models/Category.php b/common/modules/product/models/Category.php index 062accf..9be052a 100755 --- a/common/modules/product/models/Category.php +++ b/common/modules/product/models/Category.php @@ -8,7 +8,6 @@ use common\components\artboxtree\ArtboxTreeHelper; use common\modules\relation\relationBehavior; use common\modules\rubrication\behaviors\ArtboxSynonymBehavior; use Yii; -use yii\base\ErrorException; /** * This is the model class for table "category". @@ -29,7 +28,6 @@ use yii\base\ErrorException; * @property boolean $populary * * @property CategoryName $categoryName - * @property Product[] $products * @property ProductUnit $productUnit * @property CategoryName[] $categoryNames * @property ProductCategory[] $productCategories @@ -205,12 +203,4 @@ class Category extends \yii\db\ActiveRecord } return false; } - - public function beforeDelete() - { - if ( ($count = $this->getProducts()->count()) > 0) { - throw new ErrorException('С категорией "'. $this->name .'" связанно '. $count .' товаров. Удаление невозможно.'); - return false; - } - } } diff --git a/common/modules/product/models/Product.php b/common/modules/product/models/Product.php index d4f24c9..af8ecb0 100755 --- a/common/modules/product/models/Product.php +++ b/common/modules/product/models/Product.php @@ -233,20 +233,7 @@ class Product extends \yii\db\ActiveRecord public function getOptions() { return $this->hasMany(TaxOption::className(), ['tax_option_id' => 'option_id'])->viaTable('product_option', ['product_id' => 'product_id']); - } - - public function getProperties() { - $groups = $options = []; - foreach ($this->options as $option) { - $options[$option->tax_group_id][] = $option; - } - foreach (TaxGroup::find()->where(['tax_group_id' => array_keys($options)])->all() as $group) { - if (!empty($options[$group->tax_group_id])) { - $group->_options = $options[$group->tax_group_id]; - $groups[] = $group; - } - } - return $groups; +// return $this->getRelations('product_option'); } public function getStocks() { @@ -387,4 +374,18 @@ class Product extends \yii\db\ActiveRecord } return $op; } + + public function getProperties() { + $groups = $options = []; + foreach ($this->options as $option) { + $options[$option->tax_group_id][] = $option; + } + foreach (TaxGroup::find()->where(['tax_group_id' => array_keys($options)])->all() as $group) { + if (!empty($options[$group->tax_group_id])) { + $group->_options = $options[$group->tax_group_id]; + $groups[] = $group; + } + } + return $groups; + } } diff --git a/common/widgets/Mailer.php b/common/widgets/Mailer.php index dd8b735..3f377cd 100755 --- a/common/widgets/Mailer.php +++ b/common/widgets/Mailer.php @@ -41,7 +41,7 @@ class Mailer extends Widget{ return 'Mailer Error: ' . $mail->ErrorInfo; } else { - \Yii::$app->getSession()->setFlash('success', 'Мастер-приемщик свяжется с вами в ближайшее время'); + return 'Message has been sent'; } } diff --git a/frontend/controllers/BasketController.php b/frontend/controllers/BasketController.php index ec083d3..1f89b8f 100755 --- a/frontend/controllers/BasketController.php +++ b/frontend/controllers/BasketController.php @@ -40,20 +40,48 @@ class BasketController extends Controller } $body .= "\n\r"; - if ($modelOrder->load(Yii::$app->request->post()) && $modelOrder->save()) { + if ($modelOrder->load(Yii::$app->request->post()) && $modelOrder->validate()) { $productV = $_POST['ProductVariant']; foreach ($productV as $index=>$row) { $modelOrdersProducts = new OrdersProducts(); $mod_id = $row['id']; - unset($row['id']); + $data['OrdersProducts'] = $row; $data['OrdersProducts']['mod_id'] = $mod_id; $data['OrdersProducts']['order_id'] = $modelOrder->id; - $productV[$index]['img'] = \common\components\artboximage\ArtboxImageHelper::getImageSrc(ProductVariant::findOne($mod_id)->image->imageUrl, 'list'); - $modelOrdersProducts->load($data); - $modelOrdersProducts->save(); + $product = ProductVariant::findOne($mod_id); + /** + * Проверяем товар на наличие + */ + if(!$product->stock > 0 && !$product->price > 0 ){ + \Yii::$app->getSession()->setFlash('error', 'К сожалению товара '.$product->name . ' нет в наличии'); + + $basket_mods = $modelOrder->getBasketMods(); + return $this->render('index',[ + 'modelMod'=>$modelMod, + 'basket_mods'=>$basket_mods, + 'modelOrder'=>$modelOrder, + ]); + }else { + + /** + * Удаляем товар с массива и сохраняем в заказ + */ + unset($row['id']); + $productV[$index]['img'] = \common\components\artboximage\ArtboxImageHelper::getImageSrc($product->image->imageUrl, 'list'); + $modelOrdersProducts->load($data); + $modelOrdersProducts->save(); + } + } + + /** + * Сохраняем заказ + */ + + $modelOrder->save(); + if(!Yii::$app->user->id && !empty($modelOrder->email)){ $modelUser = new Customer(); $modelUser->role = 'person'; @@ -65,6 +93,10 @@ class BasketController extends Controller $modelUser->save(); } $order = clone $modelOrder; + /** + * Чистим сессию корзины + */ + $modelOrder->clearBasket(); Mailer::widget( diff --git a/frontend/views/basket/index.php b/frontend/views/basket/index.php index f5c1104..ad767b6 100755 --- a/frontend/views/basket/index.php +++ b/frontend/views/basket/index.php @@ -41,7 +41,12 @@ $('#orders-delivery input[type=\"radio\"]').click(function(){

Корзина

- + session->getFlash ('success')): ?> +
+ + session->getFlash ('error')): ?> +
+ false]); ?>
diff --git a/frontend/views/iam/share.php b/frontend/views/iam/share.php index 8d7a72c..fc95d3c 100755 --- a/frontend/views/iam/share.php +++ b/frontend/views/iam/share.php @@ -46,6 +46,7 @@ $this->registerJs("
product)):?> + product); die(); ?>