public function init()
 {
     $this->name = \Yii::t('skeeks/shop/app', 'Types of payers');
     $this->modelShowAttribute = "name";
     $this->modelClassName = ShopPersonType::className();
     parent::init();
 }
 public function init()
 {
     $this->name = \skeeks\cms\shop\Module::t('app', 'Types of payers');
     $this->modelShowAttribute = "name";
     $this->modelClassName = ShopPersonType::className();
     parent::init();
 }
Пример #3
0
 public function init()
 {
     parent::init();
     if (!$this->shopPersonType) {
         $this->shopPersonType = \Yii::$app->shop->shopFuser->personType;
     }
     if (!$this->shopBuyer) {
         $this->shopBuyer = \Yii::$app->shop->shopFuser->buyer;
     }
     if ($this->shopBuyer) {
         $this->shopPersonType = $this->shopBuyer->shopPersonType;
     } else {
         if ($this->shopPersonType) {
             $this->shopBuyer = $this->shopPersonType->createModelShopBuyer();
         }
     }
 }
Пример #4
0
    /**
     * @inheritdoc
     */
    public function actions()
    {
        return ArrayHelper::merge(parent::actions(), ['index' => ["dataProviderCallback" => function (ActiveDataProvider $dataProvider) {
            $query = $dataProvider->query;
            /**
             * @var ActiveQuery $query
             */
            //$query->select(['app_company.*', 'count(`app_company_officer_user`.`id`) as countOfficer']);
            $query->groupBy(['shop_fuser.id']);
            $query->with('user');
            $query->with('personType');
            $query->with('buyer');
            $query->with('shopBaskets');
            $query->with('shopBaskets.product');
        }, "columns" => [['class' => UpdatedAtColumn::className()], ['class' => DataColumn::className(), 'filter' => false, 'format' => raw, 'label' => \skeeks\cms\shop\Module::t('app', 'User'), 'value' => function (ShopFuser $model) {
            return $model->user ? (new AdminBuyerUserWidget(['user' => $model->user]))->run() : \skeeks\cms\shop\Module::t('app', 'Not authorized');
        }], ['class' => DataColumn::className(), 'filter' => false, 'format' => 'raw', 'label' => \skeeks\cms\shop\Module::t('app', 'Profile of buyer'), 'value' => function (ShopFuser $model) {
            if (!$model->buyer) {
                return null;
            }
            return Html::a($model->buyer->name . " [{$model->buyer->id}]", UrlHelper::construct('shop/admin-buyer/related-properties', ['pk' => $model->buyer->id])->enableAdmin()->toString());
        }], ['class' => DataColumn::className(), 'filter' => ArrayHelper::map(ShopPersonType::find()->active()->all(), 'id', 'name'), 'attribute' => 'person_type_id', 'label' => \skeeks\cms\shop\Module::t('app', 'Profile type'), 'value' => function (ShopFuser $model) {
            return $model->personType->name;
        }], ['class' => DataColumn::className(), 'filter' => false, 'label' => \skeeks\cms\shop\Module::t('app', 'Price of basket'), 'value' => function (ShopFuser $model) {
            return \Yii::$app->money->intlFormatter()->format($model->money);
        }], ['class' => DataColumn::className(), 'filter' => false, 'label' => \skeeks\cms\shop\Module::t('app', 'Number of items'), 'value' => function (ShopFuser $model) {
            return $model->countShopBaskets;
        }], ['class' => DataColumn::className(), 'filter' => false, 'format' => 'raw', 'label' => \skeeks\cms\shop\Module::t('app', 'Good'), 'value' => function (ShopFuser $model) {
            if ($model->shopBaskets) {
                $result = [];
                foreach ($model->shopBaskets as $shopBasket) {
                    $money = \Yii::$app->money->intlFormatter()->format($shopBasket->money);
                    $result[] = Html::a($shopBasket->name, $shopBasket->product->cmsContentElement->url, ['target' => '_blank']) . <<<HTML
 ({$shopBasket->quantity} {$shopBasket->measure_name}) — {$money}
HTML;
                }
                return implode('<hr />', $result);
            }
        }], ['class' => DataColumn::className(), 'filter' => ArrayHelper::map(CmsSite::find()->active()->all(), 'id', 'name'), 'attribute' => 'site_id', 'format' => 'raw', 'label' => \skeeks\cms\shop\Module::t('app', 'Site'), 'value' => function (ShopFuser $model) {
            return $model->site->name . " [{$model->site->code}]";
        }], ['class' => CreatedAtColumn::className()]]]]);
    }
 public function safeUp()
 {
     $tableExist = $this->db->getTableSchema("{{%shop_person_type_site}}", true);
     if ($tableExist) {
         return true;
     }
     $tableOptions = null;
     if ($this->db->driverName === 'mysql') {
         $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
     }
     $this->createTable("{{%shop_person_type_site}}", ['person_type_id' => $this->integer()->notNull(), 'site_code' => "CHAR(15) NOT NULL"], $tableOptions);
     $this->createIndex('site_code__person_type_id', '{{%shop_person_type_site}}', ['person_type_id', 'site_code'], true);
     $this->execute("ALTER TABLE {{%shop_person_type_site}} COMMENT = 'Связь плательщиков с сайтами';");
     $this->addForeignKey('shop_person_type_site_person_type_id', "{{%shop_person_type_site}}", 'person_type_id', '{{%shop_person_type}}', 'id', 'CASCADE', 'CASCADE');
     $this->addForeignKey('shop_person_type_site_site_code', "{{%shop_person_type_site}}", 'site_code', '{{%cms_site}}', 'code', 'CASCADE', 'CASCADE');
     $persons = \skeeks\cms\shop\models\ShopPersonType::find()->all();
     $site = \skeeks\cms\models\CmsSite::find()->def()->one();
     if ($persons && $site) {
         foreach ($persons as $person) {
             $this->insert('{{%shop_person_type_site}}', ['person_type_id' => $person->id, 'site_code' => $site->code]);
         }
     }
 }
Пример #6
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPersonType()
 {
     return $this->hasOne(ShopPersonType::className(), ['id' => 'person_type_id']);
 }
Пример #7
0
 /**
  * @return ShopPersonType
  */
 public function getShopPersonType()
 {
     return ShopPersonType::findOne((int) $this->v3toysShopPersonTypeId);
 }
Пример #8
0
use yii\helpers\Html;
use skeeks\cms\modules\admin\widgets\form\ActiveFormUseTab as ActiveForm;
/* @var $this yii\web\View */
?>

<?php 
$form = ActiveForm::begin();
?>

<?php 
echo $form->fieldSet(\skeeks\cms\shop\Module::t('app', 'Main'));
?>

    <?php 
echo $form->fieldSelect($model, 'cms_user_id', \yii\helpers\ArrayHelper::map(\skeeks\cms\models\CmsUser::find()->all(), 'id', 'displayName'));
?>

    <?php 
echo $form->fieldSelect($model, 'shop_person_type_id', \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->all(), 'id', 'name'));
?>
    <?php 
echo $form->field($model, 'name')->textInput();
?>

<?php 
echo $form->fieldSetEnd();
?>

<?php 
echo $form->buttonsCreateOrUpdate($model);
ActiveForm::end();
Пример #9
0
 /**
  * @return ShopPersonType[]
  */
 public function getShopPersonTypes()
 {
     return ShopPersonType::find()->active()->all();
 }
Пример #10
0
 /**
  * Валидация данных с формы
  * @return array
  */
 public function actionShopPersonTypeValidate()
 {
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         if (\Yii::$app->request->post('shop_person_type_id')) {
             $shop_person_type_id = \Yii::$app->request->post('shop_person_type_id');
             /**
              * @var $shopPersonType ShopPersonType
              */
             $shopPersonType = ShopPersonType::find()->active()->andWhere(['id' => $shop_person_type_id])->one();
             if (!$shopPersonType) {
                 $rr->message = \skeeks\cms\shop\Module::t('app', 'This payer is disabled or deleted. Refresh the page.');
                 $rr->success = false;
                 return $rr;
             }
             $modelHasRelatedProperties = $shopPersonType->createModelShopBuyer();
             if (method_exists($modelHasRelatedProperties, "createPropertiesValidateModel")) {
                 $model = $modelHasRelatedProperties->createPropertiesValidateModel();
             } else {
                 $model = $modelHasRelatedProperties->getRelatedPropertiesModel();
             }
             return $rr->ajaxValidateForm($model);
         }
     }
 }
Пример #11
0
echo $form->fieldRadioListBoolean($model, 'filtrable');
?>
    <?/*= $form->fieldRadioListBoolean($model, 'smart_filtrable') */?>
    <?/*= $form->fieldRadioListBoolean($model, 'with_description') */?>


    <? if ($content_id = \Yii::$app->request->get('shop_person_type_id')) : ?>

        <?php 
echo $form->field($model, 'shop_person_type_id')->hiddenInput(['value' => $content_id])->label(false);
?>

    <? else: ?>

        <?php 
echo $form->field($model, 'shop_person_type_id')->label(\skeeks\cms\shop\Module::t('app', 'Type payer'))->widget(\skeeks\cms\widgets\formInputs\EditedSelect::className(), ['items' => \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->all(), "id", "name"), 'controllerRoute' => 'shop/admin-shop-person-type']);
?>

    <? endif; ?>

<?php 
echo $form->fieldSetEnd();
?>


<?php 
echo $form->fieldSet('Связь с пользователем');
?>

    <?php 
echo $form->fieldRadioListBoolean($model, 'is_user_email');
Пример #12
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPersonTypes()
 {
     return $this->hasMany(ShopPersonType::className(), ['id' => 'person_type_id'])->viaTable('{{%shop_pay_system_person_type}}', ['pay_system_id' => 'id']);
 }
Пример #13
0
<?php 
echo $form->fieldSet(\skeeks\cms\shop\Module::t('app', 'Main'));
?>


    <?php 
echo $form->field($model, 'name')->textInput(['maxlength' => 255]);
?>
    <?php 
echo $form->field($model, 'description')->textarea();
?>
    <?php 
echo $form->fieldRadioListBoolean($model, 'active');
?>
    <?php 
echo $form->field($model, 'personTypeIds')->checkboxList(\yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->all(), 'id', 'name'));
?>
    <?php 
echo $form->fieldInputInt($model, 'priority');
?>


    <?php 
echo $form->field($model, 'component')->listBox(array_merge(['' => ' — '], [\skeeks\cms\shop\paySystems\RobokassaPaySystem::className() => (new \skeeks\cms\shop\paySystems\RobokassaPaySystem())->descriptor->name, \skeeks\cms\shop\paySystems\PayPalPaySystem::className() => (new \skeeks\cms\shop\paySystems\PayPalPaySystem())->descriptor->name, \skeeks\cms\shop\paySystems\YandexKassaPaySystem::className() => (new \skeeks\cms\shop\paySystems\YandexKassaPaySystem())->descriptor->name, \skeeks\cms\shop\paySystems\TinkoffPaySystem::className() => (new \skeeks\cms\shop\paySystems\TinkoffPaySystem())->descriptor->name]), ['size' => 1, 'data-form-reload' => 'true']);
?>

    <? if ($handler) : ?>
        <?php 
echo \skeeks\cms\modules\admin\widgets\BlockTitleWidget::widget(['content' => \Yii::t('skeeks/cms', 'Settings')]);
?>
            <?php 
Пример #14
0
<? $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, 'pjax' => $pjax, 'adminController' => \Yii::$app->controller, 'columns' => [['class' => \skeeks\cms\grid\UpdatedAtColumn::className()], ['class' => \yii\grid\DataColumn::className(), 'filter' => false, 'format' => 'raw', 'label' => \Yii::t('skeeks/shop/app', 'User'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    return $model->user ? (new \skeeks\cms\shop\widgets\AdminBuyerUserWidget(['user' => $model->user]))->run() : \Yii::t('skeeks/shop/app', 'Not authorized');
}], ['class' => \yii\grid\DataColumn::className(), 'filter' => false, 'format' => 'raw', 'label' => \Yii::t('skeeks/shop/app', 'Profile of buyer'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    if (!$model->buyer) {
        return null;
    }
    return \yii\helpers\Html::a($model->buyer->name . " [{$model->buyer->id}]", \skeeks\cms\helpers\UrlHelper::construct('shop/admin-buyer/related-properties', ['pk' => $model->buyer->id])->enableAdmin()->toString());
}], ['class' => \yii\grid\DataColumn::className(), 'filter' => \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->active()->all(), 'id', 'name'), 'attribute' => 'person_type_id', 'label' => \Yii::t('skeeks/shop/app', 'Profile type'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    return $model->personType ? $model->personType->name : "";
}], ['class' => \yii\grid\DataColumn::className(), 'filter' => false, 'label' => \Yii::t('skeeks/shop/app', 'Price of basket'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    return \Yii::$app->money->intlFormatter()->format($model->money);
}], ['class' => \yii\grid\DataColumn::className(), 'filter' => false, 'label' => \Yii::t('skeeks/shop/app', 'Number of items'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    return $model->countShopBaskets;
}], ['class' => \yii\grid\DataColumn::className(), 'filter' => false, 'format' => 'raw', 'label' => \Yii::t('skeeks/shop/app', 'Good'), 'value' => function (\skeeks\cms\shop\models\ShopFuser $model) {
    if ($model->shopBaskets) {
        $result = [];
        foreach ($model->shopBaskets as $shopBasket) {
            $money = \Yii::$app->money->intlFormatter()->format($shopBasket->money);
            $result[] = \yii\helpers\Html::a($shopBasket->name, $shopBasket->product ? $shopBasket->product->cmsContentElement->url : '#', ['target' => '_blank']) . <<<HTML
({$shopBasket->quantity} {$shopBasket->measure_name}) — {$money}
HTML;
        }
        return implode('<hr style="margin: 0px;"/>', $result);
Пример #15
0
echo $form->field($model, 'cms_user_id')->widget(\skeeks\cms\modules\admin\widgets\formInputs\SelectModelDialogUserInput::className());
?>
        </div>

    <? elseif ($model->isNewRecord) : ?>
        <?php 
echo $form->field($model, 'cms_user_id')->widget(\skeeks\cms\modules\admin\widgets\formInputs\SelectModelDialogUserInput::className());
?>
    <? endif; ?>

    <?php 
echo $form->field($model, 'name')->textInput();
?>

    <?php 
echo $form->field($model, 'shop_person_type_id')->listBox(\yii\helpers\ArrayHelper::merge(['' => ' — '], \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopPersonType::find()->all(), 'id', 'name')), ['size' => 1, 'data-form-reload' => 'true']);
?>

    <? if ($model->relatedProperties) : ?>
        <?php 
echo \skeeks\cms\modules\admin\widgets\BlockTitleWidget::widget(['content' => \Yii::t('skeeks/cms', 'Settings')]);
?>
        <? if ($properties = $model->relatedProperties) : ?>
            <? foreach ($properties as $property) : ?>
                <?php 
echo $property->renderActiveForm($form);
?>
            <? endforeach; ?>
        <? endif; ?>

    <? else : ?>