]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добаввил экшн actionAjaxProductProvider
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 21 Nov 2024 11:15:16 +0000 (14:15 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 21 Nov 2024 11:15:16 +0000 (14:15 +0300)
erp24/controllers/ProductsController.php
erp24/views/products/products-1c.php

index bcef9dc997ff5a3a6b60c0fad27e538527b22c55..21e562ecc6754471be29cc246a343a4d081c7095 100755 (executable)
@@ -3,6 +3,7 @@
 namespace app\controllers;
 
 use Yii;
+use yii\helpers\ArrayHelper;
 use yii\helpers\Html;
 use yii\web\Controller;
 use yii_app\records\ExportImportTable;
@@ -65,7 +66,121 @@ class ProductsController extends Controller
 
 
     }
-    public function actionAjaxProductProvider() { return $this->renderPartial('ajax-product-provider'); }
+           public function actionAjaxProductProvider()
+        {
+            $id = Yii::$app->request->post('id');
+            if (!empty($id)) {
+                $id = htmlentities($id);
+
+
+                $providers = ShipmentProviders::find()
+                    ->select(['id', 'name'])
+                    ->indexBy('id')
+                   // ->asArray()
+                    ->all();
+                $providers = ArrayHelper::map($providers, 'id', 'name');
+// var_dump($providers); die();
+
+               $data = Products1cOptions::find()
+                   ->where(['id' => $id])
+                   ->one();
+
+
+                $view = Products1c::find()
+                    ->select('view')
+                    ->where(['id' => $id])
+                    ->scalar();
+
+
+                $productColorsArray = explode(';', $data->colors ?? '');
+
+                // Определение массива групп продуктов
+                $productGroups = [
+                    "1" => "Голландия/Израиль",
+                    2 => "Кения",
+                    3 => "Эквадор/Колумбия",
+                    4 => "Россия",
+                    5 => "Горшечка",
+                    6 => "Сопутка",
+                    7 => "Фейерверки",
+                    10 => "Матрица"
+                ];
+
+
+
+                $dataResponse = '<div id=result_prov></div><form method=post class="row" action="">';
+                $dataResponse .= '<div class="col-6 text-right">Поставщик</div>
+<div class="col-6"><select class="form-control" id=provider_id name=provider_id>';
+                foreach($providers as $idv =>$name) {
+                    $dataResponse .= "<option value=".$idv."";
+                    if(($data['provider_id'] ??'')==$idv) $dataResponse .= " selected"; $dataResponse .= ">".$name."</option>";
+                }
+
+                $dataResponse .= "<option value=dell ";
+                if(($data['provider_id']??'')=="dell") $dataResponse .= " selected";
+
+                $dataResponse .= ">удалить поставщика</option></select></div>";
+
+
+                $dataResponse .= '<div class="col-6 text-right">Группа</div>
+<div class="col-6"><select class="form-control" id=group_id name=group_id><option value=0 ';   if(empty($data['group_id'])) $dataResponse .= " selected";  $dataResponse .= '>-без группы-</option>';
+                foreach($productGroups as $idv =>$name) {
+                    $dataResponse .= "<option value=".$idv.""; if(($data['group_id']??'')==$idv) $dataResponse .= " selected"; $dataResponse .= ">".$name."</option>";
+                }
+                $dataResponse .= "</select></div>";
+
+
+                $dataResponse .= '<div class="col-6 text-right">Основной товар?</div>
+<div class="col-6"><select class="form-control" id=main name=main>
+<option value=0 ';   if(empty($data['main'])) $dataResponse .= " selected";  $dataResponse .= '>нет</option>
+<option value=1 ';   if(!empty($data['main'])) $dataResponse .= " selected";  $dataResponse .= '>да</option>';
+                $dataResponse .= "</select></div>";
+
+
+                $dataResponse .= '
+<div class="col-6 text-right">срок хранения в днях</div><div class="col-6"> <input type=number style="width:70px;" name=expiration_days id=expiration_days class="form-control" value="'. ($data['expiration_days']??'') .'"></div>
+<div class="col-6 text-right">минимальный лот деления в шт. (кол-во шт в месте)
+</div><div class="col-6"> <input type=number style="width:70px;" name=min_lot id=min_lot class="form-control" value="'. ($data['min_lot']??'') .'"></div>
+<div class="col-6 text-right">минимальный заказ в шт.</div><div class="col-6"> <input type=number style="width:70px;" name=min_order id=min_order class="form-control" value="'. ($data['min_order']??'') .'"></div>
+<div class="col-6 text-right">Цена закупки в  долл. или евро (зависит от поставщика) пример 1.25</div><div class="col-6"> <input type=number style="width:70px;" name=price_zakup id=price_zakup class="form-control" value="'. ($data['price_zakup']??'') .'"></div>
+<div class="col-12">Цвета разделитель ;<textarea row=2 name=colors id=colors class="form-control">'. ($data['colors']??'') .'</textarea></div>
+<div class="col-12">Опции <textarea row=2 name=options id=options class="form-control">'. ($data['options']??'') .'</textarea></div>
+
+
+<div class="col-12">
+
+Сорта по цветам';
+
+                foreach($productColorsArray as $color) {
+                    $color=trim($color);
+                    if(!empty($color)) {
+                        $dataResponse .= "<br><span class=\"btn btn-sm btn-info me-1\">$color</span>";
+                    }
+
+
+                }
+
+
+                $dataResponse .= '</div><div class="col-12">';
+
+                $dataResponse .= "<input type=checkbox name=view id=view ";
+                if($view==1)  $dataResponse .= ' value=2 checked';
+                else $dataResponse .= " valiue=0";
+                $dataResponse .= '> показыввать товар в автозаказе';
+
+                $dataResponse .= '</div>
+<div class="col-12">
+<span class="btn btn-lg btn-success m-2" onclick="save_providerder();return false" name=sv value=1>сохранить</span></div></form>';
+
+                return $dataResponse;
+            }
+
+
+            return '';
+        }
+
+
+
     public function actionAjaxGroupConfig() {
 
         if (Yii::$app->request->isAjax) {
index 06d9d93f9d85fafa211026bfa5e348d51c654087..dd30810b5934ef5952b2be4d6aa02287ff1d8355 100644 (file)
@@ -100,6 +100,23 @@ function ajax_products_in_group(parent_id) {
     });
 }
 
+function save_providerder(){
+
+const param3 = $('meta[name=csrf-param]').attr('content');
+const token3 = $('meta[name=csrf-token]').attr('content');
+
+$.ajax({
+       url: '/products/ajax-product-provider-add/',
+       method: 'post',       
+       dataType: 'html',        
+       data: {id: '<?=$id?>', provider_id: $('#provider_id').val(),
+       options: $('#options').val(),  expiration_days: $('#expiration_days').val(),  
+       min_lot: $('#min_lot').val(), colors: $('#colors').val(), min_order: $('#min_order').val(), price_zakup: $('#price_zakup').val(), group_id: $('#group_id').val() , main: $('#main').val() , view: $('#view').val(), [param3]:token3 },
+       success: function(data){  
+    $('#result_prov').html(data);
+       }}); 
+}
+
 // Добавьте остальные функции JavaScript аналогично
 JS
     , \yii\web\View::POS_END);