public function loadModel($id) { $model = ProductOptionValue::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function loadProductOption($id) { $_productoption = array(); $data = ProductOption::model()->findAll('product_id=:product_id', array(':product_id' => $id)); if (!empty($data)) { foreach ($data as $productoption) { $value = ProductOptionValue::model()->findAll('product_option_id=:product_option_id', array(':product_option_id' => $productoption->id)); $_productoption[] = array($productoption, $value); } } return $_productoption; }
<?php $this->breadcrumbs = array('Product Attributes' => array('index'), 'Manage'); $this->menu = array(array('label' => 'List ProductAttribute', 'url' => array('index')), array('label' => 'Create ProductAttribute', 'url' => array('create'))); ?> <h1>Manage Product Attributes</h1> <div> <?php echo CHtml::link('Add Product Attribute', array('ProductAttribute/create')); ?> | <?php echo CHtml::link('Manage Product Option', array('ProductOption/admin')); ?> | <?php echo CHtml::link('Manage Option Value', array('ProductOptionValue/admin')); ?> </div> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'product-attribute-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'summaryText' => '', 'pager' => array('header' => '', 'firstPageLabel' => '| <', 'lastPageLabel' => '> |', 'nextPageLabel' => '>', 'prevPageLabel' => '<'), 'columns' => array('product_attribute_id', array('name' => 'product_id', 'type' => 'html', 'value' => '$data->product->product_name', 'sortable' => TRUE, 'filter' => CHtml::listData(Product::model()->findAll(), 'product_id', 'product_name')), array('name' => 'product_option_id', 'type' => 'html', 'value' => '$data->productOption->product_option_name', 'sortable' => TRUE, 'filter' => CHtml::listData(ProductOption::model()->findAll(), 'product_option_id', 'product_option_name')), array('name' => 'option_value_id', 'type' => 'html', 'value' => '$data->productOptionValue->product_option_value_name', 'sortable' => TRUE, 'filter' => CHtml::listData(ProductOptionValue::model()->findAll(), 'product_option_value_id', 'product_option_value_name')), 'option_value_price', array('class' => 'CButtonColumn', 'template' => '{update} {delete}'))));
public function afterDelete() { // delete dependencies ProductAttribute::model()->deleteAll("product_id={$this->cacheId}"); ProductDescription::model()->deleteAll("product_id={$this->cacheId}"); ProductDiscount::model()->deleteAll("product_id={$this->cacheId}"); ProductFilter::model()->deleteAll("product_id={$this->cacheId}"); ProductImage::model()->deleteAll("product_id={$this->cacheId}"); ProductOption::model()->deleteAll("product_id={$this->cacheId}"); ProductOptionValue::model()->deleteAll("product_id={$this->cacheId}"); ProductRelated::model()->deleteAll("product_id={$this->cacheId}"); ProductRelated::model()->deleteAll("related_id={$this->cacheId}"); ProductReward::model()->deleteAll("product_id={$this->cacheId}"); ProductSpecial::model()->deleteAll("product_id={$this->cacheId}"); ProductToCategory::model()->deleteAll("product_id={$this->cacheId}"); ProductToDownload::model()->deleteAll("product_id={$this->cacheId}"); ProductToLayout::model()->deleteAll("product_id={$this->cacheId}"); ProductToStore::model()->deleteAll("product_id={$this->cacheId}"); Review::model()->deleteAll("product_id={$this->cacheId}"); UrlAlias::model()->deleteAll("query='product_id={$this->cacheId}'"); parent::afterDelete(); }
echo $form->labelEx($model, 'product_option_id'); ?> <?php echo $form->dropDownList($model, 'product_option_id', CHtml::listData(ProductOption::model()->findAll(), 'product_option_id', 'product_option_name'), array('empty' => '--please select--')); ?> <?php echo $form->error($model, 'product_option_id'); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'option_value_id'); ?> <?php echo $form->dropDownList($model, 'option_value_id', CHtml::listData(ProductOptionValue::model()->findAll(), 'product_option_value_id', 'product_option_value_name'), array('empty' => '--please select--')); ?> <?php echo $form->error($model, 'option_value_id'); ?> </div> <div class="row"> <?php echo $form->labelEx($model, 'option_value_price'); ?> <?php echo $form->textField($model, 'option_value_price'); ?> <?php echo $form->error($model, 'option_value_price');
<?php $this->breadcrumbs = array('Product Option Value To Product Options' => array('index'), 'Manage'); $this->menu = array(array('label' => 'List ProductOptionValueToProductOption', 'url' => array('index')), array('label' => 'Create ProductOptionValueToProductOption', 'url' => array('create'))); $this->title = 'Manage Product Option Value To Product Options'; ?> <!-- <h1>Manage Product Option Value To Product Options</h1> --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'product-option-value-to-product-option-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('product_option_value_to_product_option_id', array('name' => 'product_option_id', 'type' => 'html', 'value' => '$data->productOption->product_option_name', 'sortable' => TRUE, 'filter' => CHtml::listData(ProductOption::model()->findAll(), 'product_option_id', 'product_option_name')), array('name' => 'product_option_value_id', 'type' => 'html', 'value' => '$data->productOptionValue->product_option_value_name', 'sortable' => TRUE, 'filter' => CHtml::listData(ProductOptionValue::model()->findAll(), 'product_option_value_id', 'product_option_value_name')), array('class' => 'CButtonColumn', 'template' => '{update} {delete}'))));
public function addProductOption($id, $q, &$price, &$stock) { $valid = true; $validReal = true; $orderoptions = $optionids = array(); if (!empty($_POST['OrderOption'])) { foreach ($_POST['OrderOption'] as $option) { if (isset($option['product_option_value_id']) && is_array($option['product_option_value_id'])) { foreach ($option['product_option_value_id'] as $value_id) { $orderoption = new OrderOption(); $orderoption->attributes = $option; $orderoption->product_option_value_id = $value_id; $pvalue = ProductOptionValue::model()->findByPk($value_id); if (!empty($pvalue)) { if ($pvalue->quantity < $q) { Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_ERROR, 'The option you selected is out of stock'); return false; } $stock = $pvalue->quantity; if ($pvalue->subtract) { $price -= $pvalue->price; } else { $price += $pvalue->price; } } $valid = $valid && $this->validateProductOption($orderoption); $orderoptions[] = $orderoption; $optionids[] = $orderoption->product_option_id; } } else { $orderoption = new OrderOption(); $orderoption->attributes = $option; if (isset($option['product_option_value_id'])) { $pvalue = ProductOptionValue::model()->findByPk($option['product_option_value_id']); if (!empty($pvalue)) { if ($pvalue->quantity < $q) { Yii::app()->user->setFlash(TbHtml::ALERT_COLOR_ERROR, 'The option you selected is out of stock'); return false; } $stock = $pvalue->quantity; if ($pvalue->subtract) { $price -= $pvalue->price; } else { $price += $pvalue->price; } } } $valid = $valid && $this->validateProductOption($orderoption); $orderoptions[] = $orderoption; $optionids[] = $orderoption->product_option_id; } } } $chkoptions = $this->loadProductOption($id); if (!empty($chkoptions)) { foreach ($chkoptions as $realoption) { if ($realoption[0]->required && !in_array($realoption[0]->id, $optionids)) { $validReal = false; break; } } } /*Yii::log( "OrderCreateActionaappP: ".$validReal.' - '.$valid.'---', CLogger::LEVEL_ERROR, "order.actions.create" );*/ /*Yii::log( "OrderCreateActionaappP: ".CVarDumper::dumpAsString($optionids).'---'.$validReal.' - '.$valid.'---', CLogger::LEVEL_ERROR, "order.actions.create" );*/ $this->_orderoption = $orderoptions; return $valid && $validReal; }
public static function subtractOrder($id) { $porders = OrderProduct::model()->findAll('order_id=:id', array(':id' => $id)); if (!empty($porders)) { foreach ($porders as $porder) { $option = OrderOption::model()->find('order_id=' . $id . ' AND order_product_id=' . $porder->id); if (!empty($option)) { $pvalue = ProductOptionValue::model()->findByPk($option->product_option_value_id); if (!empty($pvalue)) { $pvalue->quantity -= $porder->quantity; $pvalue->save(); } } else { $pvalue = Product::model()->findByPk($porder->product_id); if (!empty($pvalue)) { $pvalue->quantity -= $porder->quantity; $pvalue->save(); } } } } }
public function loadProductOption($id) { $data = ProductOption::model()->findAll('product_id=:product_id', array(':product_id' => $id)); foreach ($data as $productoption) { $value = ProductOptionValue::model()->findAll('product_option_id=:product_option_id', array(':product_option_id' => $productoption->id)); $valueList[] = $value; $this->_productoption[] = array($productoption, $value); } return $this->_productoption; }