]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-302 Редактирование букета
authormarina <m.zozirova@gmail.com>
Thu, 20 Feb 2025 07:30:18 +0000 (10:30 +0300)
committermarina <m.zozirova@gmail.com>
Thu, 20 Feb 2025 07:30:18 +0000 (10:30 +0300)
erp24/controllers/BouquetController.php
erp24/views/bouquet/_form.php
erp24/views/bouquet/_product_edit.php [new file with mode: 0644]
erp24/views/bouquet/_product_list.php [new file with mode: 0644]
erp24/views/bouquet/create.php
erp24/views/bouquet/update.php

index 85e9d6fa102832453ff24af7077705a1496ab15f..1b325de7df44ff155186eb5862b677dfb29b5bc7 100644 (file)
@@ -120,6 +120,17 @@ class BouquetController extends Controller
 
         }
 
+
+        $availableItems = ArrayHelper::map(
+            Products1c::find()
+                ->where([
+                    'view' => Products1c::IS_VISIBLE,
+                    'tip' => Products1c::TYPE_PRODUCTS
+                ])
+                ->all(),
+            'id',
+            'name'
+        );
         $storesTypeList = BouquetForecast::getStoresList(null, BouquetForecast::OFFLINE_STORES, StoreType::class, []);
         $marketplaceList = BouquetForecast::getStoresList(null, BouquetForecast::MARKETPLACE, CityStore::class, ['visible' => CityStore::IS_VISIBLE]);
         $onlineStoresList = BouquetForecast::getStoresList(null, BouquetForecast::ONLINE_STORES, CityStore::class, ['visible' => CityStore::IS_VISIBLE]);
@@ -128,6 +139,7 @@ class BouquetController extends Controller
             'onlineStoresList' => $onlineStoresList,
             'marketplaceList' => $marketplaceList,
             'storesTypeList' => $storesTypeList,
+            'availableItems' => $availableItems,
         ]);
     }
 
index 0cc42751afa92c7980d9482d87fe6892c6cdadec..b7a0c1d01ebd99ba71774d35284131a7cc675d5d 100644 (file)
@@ -9,6 +9,7 @@ use yii\widgets\ActiveForm;
 use yii_app\records\BouquetComposition;
 use yii_app\records\MatrixType;
 
+
 /** @var yii\web\View $this */
 /** @var yii_app\records\BouquetComposition $model */
 /** @var array $bouquetCompositionProducts */
@@ -74,46 +75,30 @@ $form = ActiveForm::begin([
             </div>
         </div>
     </div>
+<?php if ($model) { ?>
     <div class="row">
-        <div class="col-md-4">
-            <div class="row pt-3 pb-2">
-                <div class="col-md-4 text-center font-weight-bold">Название</div>
-                <div class="col-md-2 text-center font-weight-bold">Кол-во</div>
-                <div class="col-md-1 text-center font-weight-bold">% списания</div>
-                <div class="col-md-2 text-center font-weight-bold">мрж-ть</div>
-                <div class="col-md-1 text-center font-weight-bold">% в сборке</div>
-                <div class="col-md-2 text-center font-weight-bold">ср.шт. в сборке</div>
-            </div>
-
-            <div class="row bg-white border rounded shadow-sm" style="height: 400px; overflow-y: auto; overflow-x: hidden;">
-                <?php foreach ($bouquetCompositionProducts as $product) { ?>
-                    <div class="row border-bottom ms-1 py-2">
-                        <div class="col-md-4 text-center"><?= $product->product->name ?></div>
-                        <div class="col-md-2 text-center"><?= $product->count ?></div>
-                        <div class="col-md-1 text-center">10%</div>
-                        <div class="col-md-2 text-center">30%</div>
-                        <div class="col-md-1 text-center">10%</div>
-                        <div class="col-md-2 text-center">3.2%</div>
-                    </div>
-                <?php } ?>
-            </div>
-            <?php if (!empty($model)): ?>
-                <div class="row pt-3">
-                    <div class="col-md-8">
-                        <strong>Нижегородская область</strong>
-                        <div class='self-cost pt-3' style='display: flex; gap: 10px;'>
-                            Себестоимость: <?= $model->getSelfCost() ?> <br>
-                            Наценка: <?= $model->getMarkUp() ?> <br>
-                            Цена: <?= $model->getCost() ?><br>
-                        </div>
-                    </div>
-                    <div class="col-md-4">
-                        <?= Html::a('Редактировать',  Url::to("/bouquet/update?id=$model->id"), ['class' => $model ? 'btn btn-warning w-100' : 'btn btn-warning w-100 disabled']) ?>
-                    </div>
-                </div>
-            <?php endif; ?>
+    <div class="col-md-5">
+    <?=$this->render('_product_list', [
+        'model' => $model,
+        'bouquetCompositionProducts' => $bouquetCompositionProducts
+    ]);
+    ?>
+    </div>
+<?php } else {?>
+    <div class="row justify-content-center align-items-center">
+    <?= $this->render('_product_edit', [
+        'availableItems' => $availableItems,
+        'selectedItems' => [],
+        'isCreate' => true,
+    ]);?>
         </div>
-        <div class="col-md-5">
+    <div class="row">
+<?php }?>
+
+
+
+
+        <div class="col-md-4">
             <div class="row w-100 w-md-75 w-lg-50">
                 <?php $model = new BouquetComposition(); ?>
                 <div class="row mb-2"><?= Html::label("Фото", null, ['class' => 'text-center font-weight-bold pt-5 h5']) ?></div>
diff --git a/erp24/views/bouquet/_product_edit.php b/erp24/views/bouquet/_product_edit.php
new file mode 100644 (file)
index 0000000..3a8f7d9
--- /dev/null
@@ -0,0 +1,32 @@
+<?php use app\widgets\DualList;
+use yii\helpers\Html;
+use yii\widgets\ActiveForm;
+
+//$form = ActiveForm::begin(['id' => 'dual-list-form']); ?>
+<?= DualList::widget([
+    'name' => 'products',
+    'availableLabel' => 'Выбор',
+    'selectedLabel' => 'Состав букета',
+    'availableItems' => $availableItems,
+    'selectedItems' => $selectedItems,
+    'ajaxUrl' => '/bouquet/get-list',
+    'showQuantity' => true,
+    'triggerButton' => 'apply-button',
+    'filterFields' => ['size', 'color', 'species', 'category', 'type-num']
+]) ?>
+    <div class="row">
+        <div class="col-md-3">
+            <div class="pt-2">
+                <p class="mb-1"><strong>Себестоимость:</strong> <span class="cost-value">0</span> ₽</p>
+                <p class="mb-1"><strong>Наценка:</strong> <span class="markup-value">0</span> %</p>
+                <p class="mb-0"><strong>Цена:</strong> <span class="price-value">0</span> ₽</p>
+            </div>
+        </div>
+        <div class="col-md-6"></div>
+        <div class="col-md-2 d-flex justify-content-end align-items-end mx-7 px-3 w-100">
+            <?php if (!$isCreate)
+                echo Html::submitButton('Сохранить', ['class' => 'btn btn-success w-100'])
+            ?>
+        </div>
+    </div>
+<?php //ActiveForm::end(); ?>
\ No newline at end of file
diff --git a/erp24/views/bouquet/_product_list.php b/erp24/views/bouquet/_product_list.php
new file mode 100644 (file)
index 0000000..9d6bc35
--- /dev/null
@@ -0,0 +1,38 @@
+<div class="row pt-3 pb-2">
+    <div class="col-md-4 text-center font-weight-bold">Название</div>
+    <div class="col-md-2 text-center font-weight-bold">Кол-во</div>
+    <div class="col-md-1 text-center font-weight-bold">% списания</div>
+    <div class="col-md-2 text-center font-weight-bold">мрж-ть</div>
+    <div class="col-md-1 text-center font-weight-bold">% в сборке</div>
+    <div class="col-md-2 text-center font-weight-bold">ср.шт. в сборке</div>
+</div>
+
+<div class="row bg-white border rounded shadow-sm" style="height: 400px; overflow-y: auto; overflow-x: hidden;">
+    <?php use yii\helpers\Html;
+    use yii\helpers\Url;
+
+    foreach ($bouquetCompositionProducts as $product) { ?>
+        <div class="row border-bottom ms-1 py-2">
+            <div class="col-md-4 text-center"><?= $product->product->name ?></div>
+            <div class="col-md-2 text-center"><?= $product->count ?></div>
+            <div class="col-md-1 text-center">10%</div>
+            <div class="col-md-2 text-center">30%</div>
+            <div class="col-md-1 text-center">10%</div>
+            <div class="col-md-2 text-center">3.2%</div>
+        </div>
+    <?php } ?>
+</div>
+
+<div class="row pt-3">
+    <div class="col-md-8">
+        <strong>Нижегородская область</strong>
+        <div class='self-cost pt-3' style='display: flex; gap: 10px;'>
+            Себестоимость: <?= $model->getSelfCost() ?> <br>
+            Наценка: <?= $model->getMarkUp() ?> <br>
+            Цена: <?= $model->getCost() ?><br>
+        </div>
+    </div>
+    <div class="col-md-4">
+        <?= Html::a('Редактировать',  Url::to("/bouquet/update?id=$model->id"), ['class' => $model ? 'btn btn-warning w-100' : 'btn btn-warning w-100 disabled']) ?>
+    </div>
+</div>
\ No newline at end of file
index 604584f88d7b658e68c2e8f5a44c7510e3378f78..d89196711f1b831ce2fd28235a42591f2c54e94b 100644 (file)
@@ -27,6 +27,7 @@ $this->params['breadcrumbs'][] = $this->title;
         'photoFiles' => [],
         'videoUrls' => [],
         'processUrls' => [],
+        'availableItems' => $availableItems,
         'model' => null
     ]); ?>
 </div>
index cc9b340708a59b105de900b62ed2f774f6ac5db0..c541ead84ce29f68dd9aea9b409a1135723becb6 100644 (file)
@@ -46,33 +46,9 @@ $this->registerJsFile('/js/bouquet/bouquet.js', ['position' => \yii\web\View::PO
         </div>
         <div class="col-md-8">
             <div class="row mb-5"></div>
-            <?php $form = ActiveForm::begin(['id' => 'dual-list-form']); ?>
-            <?= DualList::widget([
-                'name' => 'products',
-                'availableLabel' => 'Выбор',
-                'selectedLabel' => 'Состав букета',
+            <?= $this->render('_product_edit', [
                 'availableItems' => $availableItems,
                 'selectedItems' => $selectedItems,
-                'ajaxUrl' => '/bouquet/get-list',
-                'showQuantity' => true,
-                'triggerButton' => 'apply-button',
-                'filterFields' => ['size', 'color', 'species', 'category', 'type-num']
-            ]) ?>
+                'isCreate' => true,
+            ]); ?>
         </div>
-
-    </div>
-    <div class="row">
-        <div class="col-md-3">
-            <div class="pt-2">
-                <p class="mb-1"><strong>Себестоимость:</strong> <span class="cost-value">0</span> ₽</p>
-                <p class="mb-1"><strong>Наценка:</strong> <span class="markup-value">0</span> %</p>
-                <p class="mb-0"><strong>Цена:</strong> <span class="price-value">0</span> ₽</p>
-            </div>
-        </div>
-        <div class="col-md-6"></div>
-        <div class="col-md-2 d-flex justify-content-end align-items-end mx-7 px-3 w-100">
-            <?= Html::submitButton('Сохранить', ['class' => 'btn btn-success w-100']) ?>
-        </div>
-    </div>
-    <?php ActiveForm::end(); ?>
-</div>