])
->select('p1n.id');
- $storeId = Yii::$app->request->get('store', 4);
-
- $products = Products1c::find()
+ $storeId = Yii::$app->request->post('store', 'dbd70103-2c7b-11e9-9b87-c85b76f0e893');
+ $isValid = Yii::$app->request->post('is_valid');
+ $innerQuery = Products1c::find()
->alias('p1n')
->leftJoin('prices p', 'p.product_id = p1n.id')
->leftJoin('matrix_erp_property_dynamic mep', 'mep.product_id = p1n.id AND mep.active = 1')
FROM jsonb_each(
replace(trim(both '\"' from mep.value), '\"\"', '\"')::jsonb
) AS j(key, value)
- LEFT JOIN balances b ON b.product_id::text = j.key AND b.store_id = '{$storeId}'
+ LEFT JOIN balances b ON b.product_id::text = j.key AND b.store_id = :storeId
LEFT JOIN products_1c prod ON prod.id::text = j.key
)
")], 'true')
'p1n.name',
'p1n.articule',
new \yii\db\Expression("
- (
- 'Коэффициент: ' || COALESCE(mp.reminder_koef::text, 'N/A') || E'\n' ||
- COALESCE(
- concat_ws(
- E'\n',
- CASE WHEN mep.id IS NULL THEN 'Не имеет состава букета' ELSE NULL END,
- CASE WHEN p.price IS NULL THEN 'Нет имеет цены' ELSE NULL END
- ),
- ''
- )
- ||
- CASE WHEN mp_check.has_insufficient_quantity THEN
- E'\n' || mp_check.insuff_reason
- ELSE ''
- END
- ) AS reason
-")
-
- ,
+ (
+ 'Коэффициент: ' || COALESCE(mp.reminder_koef::text, 'N/A') || E'\n' ||
+ COALESCE(
+ concat_ws(
+ E'\n',
+ CASE WHEN mep.id IS NULL THEN 'Не имеет состава букета' ELSE NULL END,
+ CASE WHEN p.price IS NULL THEN 'Нет имеет цены' ELSE NULL END
+ ),
+ ''
+ )
+ ||
+ CASE WHEN mp_check.has_insufficient_quantity THEN
+ E'\n' || mp_check.insuff_reason
+ ELSE ''
+ END
+ ) AS reason
+ "),
new \yii\db\Expression("
- CASE
- WHEN mep.id IS NULL OR p.price IS NULL OR mp_check.has_insufficient_quantity THEN FALSE
- ELSE TRUE
- END AS is_valid
- "),
+ CASE
+ WHEN mep.id IS NULL OR p.price IS NULL OR mp_check.has_insufficient_quantity THEN FALSE
+ ELSE TRUE
+ END AS is_valid
+ "),
])
->where(['in', 'parent_id', $subQuery])
+ ->params([':storeId' => $storeId]);
+
+ $products = (new \yii\db\Query())
+ ->from(['q' => $innerQuery])
+ ->andFilterWhere(['is_valid' => $isValid])
->orderBy(['is_valid' => SORT_ASC])
- ->asArray()
->all();
<div class="col-md">
<?= Select2::widget([
'name' => 'store',
- 'value' => Yii::$app->request->get('store', 4),
- 'data' => ArrayHelper::map(
- CityStore::findAll(['visible' => CityStore::IS_VISIBLE]),
- 'id',
- 'name'
- ),
+ 'value' => Yii::$app->request->post('store', 'dbd70103-2c7b-11e9-9b87-c85b76f0e893'),
+ 'data' => CityStore::getAllActiveGuidName(),
'options' => [
'placeholder' => 'Выберите магазин',
],
],
]) ?>
</div>
- <div class="col-md-auto" style="padding-top: 5px;">
+ <div class="col-md">
+ <?= Select2::widget([
+ 'name' => 'is_valid',
+ 'value' => Yii::$app->request->post('is_valid'),
+ 'data' => [
+ 'true' => 'Да',
+ 'false' => 'Нет',
+ ],
+ 'options' => [
+ 'placeholder' => 'Активен ли букет на МП?',
+ ],
+ 'pluginOptions' => [
+ 'allowClear' => true,
+ ],
+ ]) ?>
+ </div>
+ <div class="col-md-auto">
<?= Html::submitButton('Применить', ['class' => 'btn btn-primary']) ?>
</div>
</div>
<?php ActiveForm::end() ?>
</div>
+
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [