]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление выпадающего списка товаров в группе
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 21 Nov 2024 08:13:52 +0000 (11:13 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 21 Nov 2024 08:13:52 +0000 (11:13 +0300)
erp24/controllers/ProductsController.php

index 417f4cad13d65e79dcb672ca3396732dc751a6d9..bcef9dc997ff5a3a6b60c0fad27e538527b22c55 100755 (executable)
@@ -5,6 +5,7 @@ namespace app\controllers;
 use Yii;
 use yii\helpers\Html;
 use yii\web\Controller;
+use yii_app\records\ExportImportTable;
 use yii_app\records\Prices;
 use yii_app\records\Products1c;
 use yii_app\records\Products1cOptions;
@@ -129,8 +130,10 @@ class ProductsController extends Controller
 
                 $data = Products1c::find()
                     ->alias('p')
-                    ->select(['p.id', 'p.name', 'e.entity_id', 'p.view'])
-                    ->leftJoin('export_import_table e', "e.export_iD = p.id AND e.export_val = '1' AND e.entity = 'products'")
+                    ->select(['p.id', 'p.name', 'alias.entity_id', 'p.view'])
+                    ->leftJoin(['alias' => ExportImportTable::find()
+                                    ->select(['export_id', 'export_val', 'entity', 'entity_id' ])],
+                        "alias.export_id::text = p.id AND alias.export_val = '1' AND alias.entity = 'products'")
                     ->where(['p.tip' => 'products', 'p.parent_id' => $parent_id])
                     ->orderBy(['p.name' => SORT_ASC])
                     ->asArray()
@@ -163,13 +166,80 @@ class ProductsController extends Controller
                     ->select(['product_id', 'color', 'name'])
                     ->orderBy(['posit' => SORT_DESC])
                     ->all();
-
+                $dataResponse = '';
                 $products_varieties = [];
                 foreach ($varietiesData as $variety) {
                     $products_varieties[$variety->product_id][$variety->color][] = $variety->name;
                 }
 
 
+                $dataResponse .= '<table class="table table-sm table-hover"><tbody>';
+                foreach ($data as $row) {
+                     
+                    $dataResponse .= "<tr"; if(empty($row["entity_id"])) $dataResponse .= " class=\"bg-gray-500\""; $dataResponse .= "><td>".$row["name"]." ";
+
+
+                    $row['name']=str_replace('"','',$row['name']);
+                    $row['name']=str_replace("'",'',$row['name']);
+
+                    if($row["view"]==0) {
+                        $dataResponse .=  "<span class=\"btn btn-sm btn-danger\">скрыто</span>";
+                    }
+
+                    $dataResponse .= '<div  id="provider_'.$row['id'].'"  class="btn btn-sm btn-warning" onclick="ajax_product_provider(\''.$row['id'].'\'); " >+ поставщика '.($providers[$row['id']]??'').'</div>';
+
+                    if(!empty($colorsProducts[$row["id"]])) {
+                        $s=0;
+                        foreach($colorsProducts[$row["id"]] as $color) {
+                            $color=trim($color);
+                            if(!empty($color)) {
+                                $s++;
+                                $dataResponse .= "<br><span class=\"btn btn-sm btn-info me-1 mt-1 mb-1\">$color</span>";
+
+                                if(!empty($products_varieties[$row["id"]][$color])) {
+                                    $dataResponse .= "сорта ";
+                                    foreach($products_varieties[$row["id"]][$color] as $varieties => $nameV) {
+
+                                        $dataResponse .= ' <span class="btn btn-sm btn-warning me-2">'.$nameV.'</span> ';
+                                    }
+                                }
+                            }
+                        }
+
+                        if($s>0) {
+                            $dataResponse .=  "<a href=\"/products/productVarieties/?id=" . $row['id'] . "\" target=new class=\"btn btn-info btn-sm\">+ добавить сорта</a>";
+                        }
+                    }
+                    $dataResponse .= " GUID ".$row["id"]."</td><td>";
+
+                    if(!empty($prices[$row['id']]) and empty($row["entity_id"]))
+                        $dataResponse .= '<div  id="diver_'.$row['id'].'"  class="btn btn-sm btn-warning" onclick="ajax_add_product(\''.$row['id'].'\',\''.$parent_id.'\',\''.$row['name'].'\',\''.$prices[$row['id']].'\'); " >внести цена '.$prices[$row['id']].'</div>';
+                    else {
+                        $dataResponse .= '<div  id="diver_'.$row['id'].'"  class="btn btn-sm btn-warning" onclick="ajax_add_product(\''.$row['id'].'\',\''.$parent_id.'\',\''.$row['name'].'\',\''.($prices[$row['id']]??'').'\'); " >внести цена '.($prices[$row['id']]??'').'</div>';
+                    }
+
+                    $dataResponse .= "</td><td>".$row["entity_id"]."";
+
+                    if(!empty($row["entity_id"])) {
+                        $dataResponse .=  '<div  id="diver_' . $row['id'] . '"  class="btn btn-sm btn-danger" onclick="ajax_remove_product(\'' . $row['id'] . '\'); " >удалить продукт</div>
+                            <div  id="diver2_' . $row['id'] . '"  class="btn btn-sm btn-danger" onclick="ajaxRemoveExport(\'' . $row['id'] . '\'); " >
+                            удалить только связь</div>';
+                    }
+
+                    $dataResponse .= "</td></tr>";
+
+
+                    if(!empty($row["entity_id"])) {
+       
+                    }
+
+                }
+                $dataResponse .= '</tbody></table>';
+                
+                
+            }
+             
+            return $dataResponse;
                /* return $this->renderPartial('ajax-products-in-group', [
                     'data' => $data,
                     'prices' => $prices,
@@ -177,7 +247,7 @@ class ProductsController extends Controller
                     'colorsProducts' => $colorsProducts,
                     'products_varieties' => $products_varieties,
                 ]);*/
-            }
+
         }
 
         // Возвращаем пустой ответ, если запрос не AJAX или parent_id пустой