]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Настройка привязки классов
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 22 Nov 2024 16:23:08 +0000 (19:23 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 22 Nov 2024 16:23:08 +0000 (19:23 +0300)
erp24/controllers/ProductsController.php
erp24/records/ProductsClass.php
erp24/web/js/products/products-1c.js

index 7601c844cb004f43fd2b01ea7aed219882c2dcc3..62395779bc771cdfa45e267cbc78d9862316fdfd 100755 (executable)
@@ -224,7 +224,7 @@ class ProductsController extends Controller
                 ->all();
             $properties = ArrayHelper::map($properties, 'id', 'name');
 
-          //  var_dump($properties); die();
+
             $result = [];
             foreach ($characteristics as $characteristic) {
                 $propertyName = $properties[$characteristic['property_id']] ?? 'Неизвестное свойство';
@@ -398,7 +398,7 @@ class ProductsController extends Controller
 
                 if ($productClass) {
                     if ($productClass->delete()) {
-                        return "Метка удалена";
+                        return "ok";
                     } else {
                         return "Ошибка удаления метки";
                     }
index a018cdfc1672f7079056ae030484c7bf4c545d07..03bee19919147fb3e0bbf478576d502bcf8658dd 100755 (executable)
@@ -57,4 +57,9 @@ class ProductsClass extends \yii\db\ActiveRecord
             'tip' => 'Tip',
         ];
     }
+
+    public static function primaryKey()
+    {
+        return ['category_id', 'tip'];
+    }
 }
index 79b385f77e959dacfe79fbc997dd58ffb6685ced..ad5022918959789c7cac8f811e747c317e492560 100644 (file)
@@ -1,5 +1,7 @@
 //document.addEventListener('DOMContentLoaded', function () {
-
+function capitalizeFirstLetter(string) {
+    return string.charAt(0).toUpperCase() + string.slice(1)
+}
     function ajax_product_provider(id) {
         $('#modal-7').modal('show', {backdrop: 'static'});
         $('#modal-7 .modal-title').text('Поставщики');
@@ -77,7 +79,7 @@ function ajax_group_config(id) {
     $.ajax({
         url: '/products/ajax-group-config/',
         method: 'post',
-        dataType: 'json', // Ожидаем данные в формате JSON
+        dataType: 'json',
         data: { id: id, [param3]: token3 },
         success: function(response) {
             if (response.error) {
@@ -86,18 +88,19 @@ function ajax_group_config(id) {
             }
 
 
-            let html = '<div class="d-flex flex-column">'; // Flex-контейнер
+            let html = '<div class="d-flex flex-column">';
             const classes = response.classes;
             const data2 = response.data2;
 
+
             for (const [key, name] of Object.entries(classes)) {
                 html += `
                     <div class="d-flex flex-row align-items-center justify-content-between mb-2 border-bottom pb-2">
                         <div class="text-left  me-2">${name}</div>
                         <div class="d-flex flex-row align-items-center justify-content-start w-50 ">
                             ${data2[key]
-                    ? `<button class="btn btn-danger btn-sm" onclick="ajax_class_group_remove('${response.id}', '${key}');">удалить</button><div class="ms-2">(${key})</div>`
-                    : `<button class="btn btn-success btn-sm" onclick="ajax_class_group('${response.id}', '${key}');">добавить</button><div class="ms-2">(${key})</div>`}
+                    ? `<button class="dd${response.id}${key} btn delete btn-danger btn-sm" onclick="ajax_class_group_remove('${response.id}', '${key}');">удалить</button><div class="ms-2">(${key})</div>`
+                    : `<button class="dd${response.id}${key} btn add btn-success btn-sm" onclick="ajax_class_group('${response.id}', '${key}');">добавить</button><div class="ms-2">(${key})</div>`}
                         </div>
                         
                     </div>`;
@@ -183,6 +186,59 @@ function ajax_group_config(id) {
         });
     }
 
+function ajax_class_group(parent_id, tip) {
+    const param3 = $('meta[name=csrf-param]').attr('content');
+    const token3 = $('meta[name=csrf-token]').attr('content');
+
+    $.ajax({
+        url: '/products/ajax-class-group/',
+        method: 'post',
+        dataType: 'html',
+        data: { parent_id: parent_id, tip: tip, [param3]: token3 },
+        success: function (data) {
+            if (data === 'ok') {
+                const button = $(`.dd${parent_id}${tip}`);
+                button.removeClass('add btn-success')
+                    .addClass('delete btn-danger')
+                    .attr('onclick', `ajax_class_group_remove('${parent_id}', '${tip}');`)
+                    .text('удалить');
+            } else {
+                alert('Ошибка: ' + data);
+            }
+        },
+        error: function () {
+            alert('Ошибка при выполнении запроса.');
+        },
+    });
+}
+
+
+function ajax_class_group_remove(id, tip) {
+    const param3 = $('meta[name=csrf-param]').attr('content');
+    const token3 = $('meta[name=csrf-token]').attr('content');
+
+    $.ajax({
+        url: '/products/ajax-class-group-remove/',
+        method: 'post',
+        dataType: 'html',
+        data: { id: id, tip: tip, [param3]: token3 },
+        success: function (data) {
+            if (data === 'ok') {
+                const button = $(`.dd${id}${tip}`);
+                button.removeClass('delete btn-danger')
+                    .addClass('add btn-success')
+                    .attr('onclick', `ajax_class_group('${id}', '${tip}');`)
+                    .text('добавить');
+            } else {
+                alert('Ошибка: ' + data);
+            }
+        },
+        error: function () {
+            alert('Ошибка при выполнении запроса.');
+        },
+    });
+}
+
     function save_providerder(){
 
         const param3 = $('meta[name=csrf-param]').attr('content');
@@ -256,8 +312,6 @@ function ajax_group_config(id) {
             }});
     }
 
-function capitalizeFirstLetter(string) {
-    return string.charAt(0).toUpperCase() + string.slice(1)
-}
+
 
 //});
\ No newline at end of file