]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-238] Ошибка сохранения списание при добавлении 13 -го товара с фото origin/feature_filippov_ERP-238_fix_image_save
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Tue, 24 Feb 2026 07:32:42 +0000 (10:32 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Tue, 24 Feb 2026 07:32:42 +0000 (10:32 +0300)
erp24/web/js/validate/validateForm.js

index 431930708f1f540e2f3485c5c8a27c0428fc85ea..b491028da4be014e71fcd19f2120bd3c0d82a6d6 100755 (executable)
@@ -349,9 +349,10 @@ $(document).on('click', '.form-validate .submitter', function (e) {
 
             let errors = data.errors || {};
 
-            const rows = $('.multiple-input-list__item');
+            const rows = $('.multiple-input-list__item:visible');
 
             let allRowsHaveImage = true;
+            let missingImageProducts = [];
             rows.each(function () {
                 let row = $(this);
                 let hasImageInRow = row.find('.list-cell__images_row img').length > 0;
@@ -359,7 +360,11 @@ $(document).on('click', '.form-validate .submitter', function (e) {
                 let hasFilesSelected = fileInput.length && fileInput[0].files.length > 0;
                 if (!hasImageInRow && !hasFilesSelected) {
                     allRowsHaveImage = false;
-                    return false;
+                    let productSelect = row.find('select[name$="[product_id]"]');
+                    let productName = productSelect.length ? (productSelect.find('option:selected').text() || '').trim() : '';
+                    if (productName) {
+                        missingImageProducts.push(productName);
+                    }
                 }
             });
 
@@ -371,7 +376,11 @@ $(document).on('click', '.form-validate .submitter', function (e) {
 
             if (!allRowsHaveImage) {
                 if (!errors['__common']) errors['__common'] = [];
-                errors['__common'].push('Пожалуйста, добавьте хотя бы одно фото к каждому списанию перед сохранением.');
+                let msg = 'Пожалуйста, добавьте хотя бы одно фото к каждому списанию перед сохранением.';
+                if (missingImageProducts.length > 0) {
+                    msg += ' Нет фото у: ' + missingImageProducts.join(', ');
+                }
+                errors['__common'].push(msg);
             }
 
             if (!allowedCommentUsers.includes(currentUser) && commentValue !== initialCommentValue) {