コード例 #1
0
ファイル: Goods.php プロジェクト: A111ex/parser.ru
 /**
  * 
  * @param type $id
  * @return type
  */
 public static function getName($id, $mode = 'name')
 {
     $good = \app\models\Goods::findOne($id);
     \app\models\GoodsT::$tabName = self::$goodTablePefix . $good->goods_type_type;
     $goodT = \app\models\GoodsT::findOne($id);
     //        $arGoodsParamsNames = self::getGoodTypeParams($good->goods_type_type);
     $goodType = \app\models\GoodsType::findOne($good->goods_type_type);
     $arGoodsParamsNames = $goodType->getGoodsParamsNames()->orderBy('sort')->all();
     $arParams = ['goodType' => $goodType->name];
     foreach ($arGoodsParamsNames as $oParam) {
         $idParamVal = $goodT->{$oParam->id};
         $oParamValue = \app\models\GoodsParams::findOne($idParamVal);
         $arParams[$oParam->id] = $oParamValue->public_value ? $oParamValue->public_value == \Yii::$app->params['emptyStringParam'] ? '' : $oParamValue->public_value : $oParamValue->value;
     }
     $tpl = $goodType->template_view;
     if ($mode == 'array') {
         return ['name' => self::fullName($arParams, $tpl), 'goodTipe' => $goodType, 'good' => $good, 'params' => $arGoodsParamsNames, 'values' => $arParams];
     }
     return self::fullName($arParams, $tpl);
 }
コード例 #2
0
 public static function calc($goods_id, $providers_id, $priceType)
 {
     //Получить список наценок
     if (!isset(self::$arDisconts)) {
         $arODisconts = \app\models\Discounts::find()->where('price_type_id = :price_type_id', [':price_type_id' => $priceType])->asArray()->all();
         self::$arDisconts = [];
         foreach ($arODisconts as $arDiscont) {
             $arP = explode(';', $arDiscont['params']);
             $arV = explode(';', $arDiscont['values']);
             $arW = [];
             foreach ($arP as $key => $value) {
                 if ($value) {
                     $arW[$value] = $arV[$key];
                 }
             }
             $arDiscont['arPV'] = $arW;
             self::$arDisconts[$arDiscont['providers_id']][$arDiscont['goods_type_type']][] = $arDiscont;
         }
     }
     //Получить свойства товара
     $good = \app\models\Goods::findOne($goods_id);
     $goodT = \yii\helpers\ArrayHelper::toArray($good->getGoodsT());
     //Для каждой наценки проверить - подходит ли товар под нее
     $dds = self::$arDisconts[$providers_id][$good->goods_type_type];
     $k = 1;
     $arK = [];
     if (!is_array($dds)) {
         return 1;
     }
     foreach ($dds as $arDiscount) {
         if (count(array_intersect_assoc($arDiscount['arPV'], $goodT)) == count($arDiscount['arPV'])) {
             $k = $k * $arDiscount['coef'];
             $arK[] = $arDiscount['coef'];
         }
     }
     return $k > 1 ? $k : 1;
 }
コード例 #3
0
 /**
  * Finds the Goods model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Goods the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Goods::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }