]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-282 Нужно сделать интерфейс настройки магазина
authormarina <m.zozirova@gmail.com>
Mon, 27 Jan 2025 13:34:12 +0000 (16:34 +0300)
committermarina <m.zozirova@gmail.com>
Mon, 27 Jan 2025 13:34:12 +0000 (16:34 +0300)
erp24/controllers/CityStoreParamsController.php
erp24/records/CityStoreParams.php
erp24/views/city-store-params/index.php
erp24/web/js/city-store-params/city-store-params.js

index b80bc70ea030da1de43cdb700f26518e90b119ea..f549d26ad3fe3920506e766042c5e1df121b1e97 100644 (file)
@@ -71,7 +71,7 @@ class CityStoreParamsController extends Controller
             if ($model->validate()) {
                 if ($model->save()) {
                     $flash = 'success';
-                    $value = 'Ð\9dоваÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ñ\83Ñ\81пеÑ\88но Ñ\81оздана.';
+                    $value = 'Ð\94аннÑ\8bе Ñ\83Ñ\81пеÑ\88но Ñ\81оÑ\85Ñ\80аненÑ\8b';
                     $selected_store = $model->store_id;
                 }
             } else {
@@ -174,7 +174,7 @@ class CityStoreParamsController extends Controller
                 'id' => $params->id ?? null,
                 'storeId' => $storeId,
                 'name' => $store->name,
-                'type' => $params->stores_type ?? $store->type ?? null,
+                'type' => $params->store_type ?? $store->type ?? null,
                 'region' => $params->address_region ?? $store->region ?? null,
                 'city' => $params->address_city ?? $store->city ?? null,
                 'district' => $params->address_district ?? $store->district ?? null,
index ec16b3c7c7a81a246ac388ca8df7bc05068a7c04..25502245551071440a7b7260a3dca67448fca025 100644 (file)
@@ -97,6 +97,25 @@ class CityStoreParams extends ActiveRecord
         ];
     }
 
+    public function afterSave($insert, $changedAttributes)
+    {
+        if (isset($changedAttributes->address_region)) {
+            CityStore::update(['region' => $changedAttributes->address_region], ['id' => $changedAttributes->store_id]);
+        }
+
+        if (isset($changedAttributes->address_city)) {
+            CityStore::update(['city' => $changedAttributes->address_city], ['id' => $changedAttributes->store_id]);
+        }
+
+        if (isset($changedAttributes->address_district)) {
+            CityStore::update(['district' => $changedAttributes->address_district], ['id' => $changedAttributes->store_id]);
+        }
+
+        if (isset($changedAttributes->address_type)) {
+            CityStore::update(['type' => $changedAttributes->address_type], ['id' => $changedAttributes->store_id]);
+        }
+    }
+
     public function getStore() {
         return $this->hasOne(CityStore::class, ['id' => 'store_id']);
     }
index bfe23c8aeef03f93d728897514b59f3e8f5e9e32..8b8598a18552d0126f7b7321979f7ebe61429d08 100644 (file)
@@ -28,9 +28,19 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
     <div class="row">
         <div class="col-md-2">
             <div class="card p-3 bg-light shadow-sm">
-                <?= Html::dropDownList('address_region', null,
-                    ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_REGION]), 'id', 'name'),
-                    ['prompt' => 'Выберите регион', 'class' => 'form-select', 'id' => 'address_region']);
+                <?= Select2::widget([
+                    'name' => 'address_region',
+                    'value' => null,
+                    'data' => ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_REGION]), 'id', 'name'),
+                    'options' => [
+                        'placeholder' => 'Регион',
+                        'class' => 'form-select',
+                        'id' => 'address_region',
+                    ],
+                    'pluginOptions' => [
+                        'allowClear' => true,
+                    ],
+                ]);
                 ?>
                 <?= Html::a('Редактировать', [
                     Url::to('/store-city-list')], ['class' => 'd-block mt-2 text-decoration-none']);
@@ -41,7 +51,7 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
             <div class="card p-3 bg-light shadow-sm">
                 <?= Html::dropDownList('address_city', null,
                     ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_CITY]), 'id', 'name'),
-                    ['prompt' => 'Ð\92Ñ\8bбеÑ\80иÑ\82е Ð³ород', 'class' => 'form-select', 'id' => 'address_city']);
+                    ['prompt' => 'Ð\93ород', 'class' => 'form-select', 'id' => 'address_city']);
                 ?>
             </div>
         </div>
@@ -49,7 +59,7 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
             <div class="card p-3 bg-light shadow-sm">
                 <?= Html::dropDownList('address_district', null,
                     ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_DISTRICT]), 'id', 'name'),
-                    ['prompt' => 'Ð\92Ñ\8bбеÑ\80иÑ\82е Ñ\80айон', 'class' => 'form-select', 'id' => 'address_district']);
+                    ['prompt' => 'Район', 'class' => 'form-select', 'id' => 'address_district']);
                 ?>
             </div>
         </div>
@@ -57,7 +67,7 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
             <div class="card p-3 bg-light shadow-sm">
                 <?= Html::dropDownList('store_type', null,
                     ArrayHelper::map(StoreType::find()->all(), 'id', 'name'),
-                    ['prompt' => 'Ð\92Ñ\8bбеÑ\80иÑ\82е Ñ\82ип магазина', 'class' => 'form-select', 'id' => 'store_type']);
+                    ['prompt' => 'Тип магазина', 'class' => 'form-select', 'id' => 'store_type']);
                 ?>
                 <?= Html::a('Редактировать', [\yii\helpers\Url::to('/store-type')], ['class' => 'd-block mt-2 text-decoration-none']); ?>
             </div>
@@ -66,24 +76,25 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
             <div class="card p-3 bg-light shadow-sm">
                 <?= Html::dropDownList('territorial_manager', null,
                     ArrayHelper::map(Admin::findAll(['group_id' => AdminGroup::GROUP_BUSH_DIRECTOR]), 'id', 'name_full'),
-                    ['prompt' => 'Ð\92Ñ\8bбеÑ\80иÑ\82е Ñ\82ерриториального управляющего', 'class' => 'form-select', 'id' => 'territorial_manager']);
+                    ['prompt' => 'Территориального управляющего', 'class' => 'form-select', 'id' => 'territorial_manager']);
                 ?>
             </div>
         </div>
-    </div>
-    <div class="row mt-3">
-        <div class="col-md-2"></div>
-        <div class="col-md-2"></div>
-        <div class="col-md-2"></div>
-        <div class="col-md-2"></div>
         <div class="col-md-2 border-end border-2">
             <div class="card p-3 bg-light shadow-sm">
                 <?= Html::dropDownList('bush_chef_florist', null,
                     ArrayHelper::map(Admin::findAll(['group_id' => \yii_app\records\AdminGroup::GROUP_BUSH_CHEF_FLORIST]), 'id', 'name_full'),
-                    ['prompt' => 'Ð\92Ñ\8bбеÑ\80иÑ\82е Ðºустового шеф флориста', 'class' => 'form-select', 'id' => 'bush_chef_florist']);
+                    ['prompt' => 'Ð\9aустового шеф флориста', 'class' => 'form-select', 'id' => 'bush_chef_florist']);
                 ?>
             </div>
         </div>
+    </div>
+    <div class="row mt-3">
+        <div class="col-md-2"></div>
+        <div class="col-md-2"></div>
+        <div class="col-md-2"></div>
+        <div class="col-md-2"></div>
+        <div class="col-md-2"></div>
         <div class="col-md-2 d-flex justify-content-center align-items-center">
             <div class="card p-45 bg-light shadow-sm w-100">
                 <?= Html::button('Применить', ['class' => 'btn btn-primary w-100', 'id' => 'apply-button']); ?>
@@ -110,7 +121,7 @@ $this->registerJsFile('/js/city-store-params/city-store-params.js', ['position'
         <div class="col-md-9">
             <?php if (Yii::$app->session->hasFlash($flash)): ?>
                 <?= Html::tag('div', Yii::$app->session->getFlash($flash), [
-                    'class' => 'alert text-center alert-' . Html::encode($flash),
+                    'class' => 'alert text-center flash-message alert-' . Html::encode($flash),
                 ]) ?>
             <?php endif; ?>
             <div class="form-group">
index fa0a55a5864121094b5b34636a4faafe83937e78..8e1565455604c07d926fbef693e5d87cdd808903 100644 (file)
@@ -29,7 +29,8 @@ $('#apply-button').on('click', function () {
 });
 
 $('#edit-button').on('click', function () {
-    getData()
+    $('.flash-message').remove();
+    getData();
 });
 
 function getData() {
@@ -129,14 +130,19 @@ function validateDecimal(input) {
 
 
 $(document).ready(function () {
-    var selectedValues = $('#selected-store').val();
-    if (selectedValues && selectedValues.length > 0) {
-        $('#edit-button').click();
+    if ($('.flash-message').length) {
+        sessionStorage.setItem('flashMessage', $('.flash-message').html());
     }
-    $('#text-info').text('Для редактирования выберите магазин!').addClass('text-danger')
-})
 
+    if ($('#selected-store').val()?.length > 0) {
+        $('#edit-button').click();
+    }
 
+    if (sessionStorage.getItem('flashMessage')) {
+        $('body').prepend('<div class="flash-message">' + sessionStorage.getItem('flashMessage') + '</div>');
+        sessionStorage.removeItem('flashMessage');
+    }
+});