/** * Инициализация возможных статусов заказов из api */ public function actionOrderStatuses() { $response = \Yii::$app->v3toysApi->getStatus(); if ($response->isError) { $this->stdout("Ошибка апи: {$response->error_message}\n", Console::FG_RED); return false; } if ($response->data) { $total = count($response->data); $this->stdout("Статусов в апи: {$total}\n", Console::BOLD); foreach ((array) $response->data as $statusData) { $name = ArrayHelper::getValue($statusData, 'title'); $v3toys_id = ArrayHelper::getValue($statusData, 'id'); if (V3toysOrderStatus::findOne(['v3toys_id' => $v3toys_id])) { $this->stdout("\t {$name} - exist\n", Console::FG_YELLOW); } else { $status = new V3toysOrderStatus(); $status->name = $name; $status->v3toys_id = $v3toys_id; if ($status->save()) { $this->stdout("\t {$name} - added\n", Console::FG_GREEN); } else { $error = Json::encode($status->getFirstErrors()); $this->stdout("\t {$name} - not added: {$error}\n", Console::FG_RED); } } } } }
public function init() { $this->name = \Yii::t('v3toys/skeeks', 'Статусы заказов'); $this->modelShowAttribute = "id"; $this->modelClassName = V3toysOrderStatus::className(); parent::init(); }
* @date 02.06.2015 */ /* @var $this yii\web\View */ /* @var $searchModel \skeeks\cms\models\Search */ /* @var $dataProvider yii\data\ActiveDataProvider */ $pjax = \skeeks\cms\modules\admin\widgets\Pjax::begin(); ?> <?php echo $this->render('_search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); ?> <?php echo \skeeks\cms\modules\admin\widgets\GridViewStandart::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'autoColumns' => false, 'pjax' => $pjax, 'adminController' => $controller, 'columns' => ['id', ['class' => \skeeks\cms\grid\CreatedAtColumn::className()], ['attribute' => 'user_id', 'class' => \skeeks\cms\grid\UserColumnData::className()], 'name', 'phone', 'email', ['attribute' => 'shipping_method', 'filter' => \v3toys\skeeks\models\V3toysOrder::getShippingMethods(), 'value' => function (\v3toys\skeeks\models\V3toysOrder $v3toysOrder) { return $v3toysOrder->deliveryName; }], 'v3toys_order_id', ['attribute' => 'v3toys_status_id', 'filter' => \yii\helpers\ArrayHelper::map(\v3toys\skeeks\models\V3toysOrderStatus::find()->all(), 'v3toys_id', 'name'), 'value' => function (\v3toys\skeeks\models\V3toysOrder $v3toysOrder) { return $v3toysOrder->v3toys_status_id ? $v3toysOrder->status->name : null; }], ['label' => 'К оплате', 'value' => function (\v3toys\skeeks\models\V3toysOrder $v3toysOrder) { return \Yii::$app->money->convertAndFormat($v3toysOrder->money); }], ['label' => 'Скидка', 'value' => function (\v3toys\skeeks\models\V3toysOrder $v3toysOrder) { return \Yii::$app->money->convertAndFormat($v3toysOrder->moneyDiscount); }], ['label' => 'Доставка', 'value' => function (\v3toys\skeeks\models\V3toysOrder $v3toysOrder) { return \Yii::$app->money->convertAndFormat($v3toysOrder->moneyDelivery); }]]]); ?> <?php if ($dataProvider->query->count()) { ?> <?php /**
} if ($filter->q) { $dataProvider->query->andWhere(['or', ['like', 'id', $filter->q], ['like', 'name', $filter->q], ['like', 'email', $filter->q], ['like', 'phone', $filter->q], ['like', 'v3toys_order_id', $filter->q]]); } if ($filter->v3toys_statuses) { $dataProvider->query->andWhere(['v3toys_status_id' => $filter->v3toys_statuses]); } $form = \skeeks\cms\modules\admin\widgets\filters\AdminFiltersForm::begin(['action' => '/' . \Yii::$app->request->pathInfo]); ?> <?php echo $form->field($filter, 'q')->label('Поиск')->textInput(['placeholder' => 'Поиск по имени, телефону, email, номеру зкаказа'])->setVisible(); ?> <?php echo $form->field($filter, 'id'); ?> <?php echo $form->field($searchModel, 'name'); ?> <?php echo $form->field($searchModel, 'phone'); ?> <?php echo $form->field($searchModel, 'email'); ?> <?php echo $form->field($filter, 'v3toys_statuses')->label('Статус')->widget(\skeeks\widget\chosen\Chosen::className(), ['multiple' => true, 'items' => \yii\helpers\ArrayHelper::map(\v3toys\skeeks\models\V3toysOrderStatus::find()->all(), 'v3toys_id', 'name')]); ?> <?php $form::end();
/** * @return \yii\db\ActiveQuery */ public function getStatus() { return $this->hasOne(V3toysOrderStatus::className(), ['v3toys_id' => 'v3toys_status_id']); }