use yii\web\Controller;
use yii\web\Response;
use yii_app\records\CityStore;
+use yii_app\records\CityStoreParams;
use yii_app\records\ExportImportTable;
use yii_app\records\Sales;
use yii_app\records\SalesWriteOffsPlan;
+use yii_app\records\StoreDynamic;
use yii_app\records\WriteOffs;
use yii_app\records\WriteOffsErp;
public function actionGetStores() {
Yii::$app->response->format = Response::FORMAT_JSON;
- $cityId = Yii::$app->request->post('city_id');
- $regionId = Yii::$app->request->post('region_id');
- $raionId = Yii::$app->request->post('raion_id');
- $storeTypeId = Yii::$app->request->post('store_type_id');
-// $territoryManagerId = Yii::$app->request->post('territory_manager_id');
-// $kshfId = Yii::$app->request->post('kshf_id');
-
- $stores = CityStore::find()
- ->andFilterWhere([
- 'visible' => 1,
- 'city' => $cityId,
- 'region' => $regionId,
- 'district' => $raionId,
- 'type' => $storeTypeId,
- ])
-// ->andFilterWhere(['in', 'id', $bushChefFloristStoreIds])
-// ->andFilterWhere(['in', 'id', $territorialManagerStoreIds])
- ->orderBy('id')
- ->all();
+ $data = Yii::$app->request->post();
+
+ $territorialManager = $data['territorial_manager_id'] ?? null;
+ $bushChefFlorist = $data['kshf_id'] ?? null;
+
+ $query = CityStore::find()
+ ->andWhere(['visible' => CityStore::IS_VISIBLE]);
+
+ if (!empty($data['city_id'])) {
+ $query->andWhere(['id' => CityStoreParams::find()
+ ->andWhere(['address_city' => $data['city_id']])
+ ->select('store_id')
+ ->column()]);
+ }
+
+ if (!empty($data['region_id'])) {
+ $query->andWhere(['id' => CityStoreParams::find()
+ ->andWhere(['address_region' => $data['region_id']])
+ ->select('store_id')
+ ->column()]);
+ }
+
+ if (!empty($data['raion_id'])) {
+ $query->andWhere(['id' => CityStoreParams::find()
+ ->andWhere(['address_district' => $data['raion_id']])
+ ->select('store_id')
+ ->column()]);
+ }
+
+ if (!empty($data['store_type_id'])) {
+ $query->andWhere(['id' => CityStoreParams::find()
+ ->andWhere(['store_type' => $data['store_type_id']])
+ ->select('store_id')
+ ->column()]);
+ }
+
+ if (!empty($territorialManager)) {
+ $territorialManagerStoreIds = StoreDynamic::find()
+ ->select('store_id')
+ ->where(['category' => 3, 'active' => 1, 'value_int' => $territorialManager])
+ ->column();
+
+ $query->andWhere(['in', 'id', $territorialManagerStoreIds ?: [-1]]);
+ }
+
+ if (!empty($bushChefFlorist)) {
+ $bushChefFloristStoreIds = StoreDynamic::find()
+ ->select('store_id')
+ ->where(['category' => 2, 'active' => 1, 'value_int' => $bushChefFlorist])
+ ->column();
+
+ $query->andWhere(['in', 'id', $bushChefFloristStoreIds ?: [-1]]);
+ }
+
+ $stores = $query->all();
return ArrayHelper::map($stores, 'id', 'name');
}
use yii_app\helpers\HtmlHelper;
use yii_app\records\SalesWriteOffsPlan;
use yii_app\records\StoreCityList;
+use yii_app\records\Admin;
+use yii_app\records\AdminGroup;
+use yii_app\records\StoreType;
/* @var $model DynamicModel */
/* @var $years array */
</div>
<div class="col-4">
<?= $form->field($model, 'store_type_id')->widget(Select2::class, [
- 'data' => [0 => 'оффлайн', 1 => 'онлайн'],
+ 'data' => ArrayHelper::map(StoreType::find()->all(), 'id', 'name'),
'language' => 'ru',
'options' => ['placeholder' => 'Тип магазина...'],
'pluginOptions' => [
</div>
<div class="col-4">
<?= $form->field($model, 'territory_manager_id')->widget(Select2::class, [
- 'data' => [0 => 'Маша', 1 => 'Миша'],
+ 'data' => ArrayHelper::map(Admin::findAll(['group_id' => AdminGroup::GROUP_BUSH_DIRECTOR]), 'id', 'name_full'),
'language' => 'ru',
'options' => ['placeholder' => 'Тер. Управляющий...'],
'pluginOptions' => [
</div>
<div class="col-4">
<?= $form->field($model, 'kshf_id')->widget(Select2::class, [
- 'data' => [0 => 'Маша', 1 => 'Миша'],
+ 'data' => ArrayHelper::map(Admin::findAll(['group_id' => AdminGroup::GROUP_BUSH_CHEF_FLORIST]), 'id', 'name_full'),
'language' => 'ru',
'options' => ['placeholder' => 'кШФ...'],
'pluginOptions' => [