]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-417
authormarina <m.zozirova@gmail.com>
Wed, 28 May 2025 09:32:14 +0000 (12:32 +0300)
committermarina <m.zozirova@gmail.com>
Wed, 28 May 2025 09:32:14 +0000 (12:32 +0300)
erp24/controllers/WriteOffsErpController.php

index 2e5e372dcf87b2e946f2ef544a1b7215e561ee7d..ca0b474b8f88f1895d54206c693a2cf4f9029296 100644 (file)
@@ -820,76 +820,72 @@ class WriteOffsErpController extends Controller
                     $writeOffsErpId = $model->getId();
 
                     foreach ($modelsProducts as $keyModelProduct => $modelProduct) {
-                        /** @var WriteOffsProductsErp $modelProduct */
                         $modelProduct->setWriteOffsErpId($writeOffsErpId);
                         $modelProduct->setCreatedAt();
-                        if (($flag = $modelProduct->save(false)) === false) {
-                            $transaction->rollBack();
+
+                        if (!$modelProduct->save(false)) {
+                            $flag = false;
                             break;
                         }
 
-                        if (!empty($modelsProductsFiles)) {
-                            if (array_key_exists($keyModelProduct, $modelsProductsFiles)) {
-                                $modelProductId = $modelProduct->id;
+                        if (!empty($modelsProductsFiles) && array_key_exists($keyModelProduct, $modelsProductsFiles)) {
+                            $modelProductId = $modelProduct->id;
+                            $productFilesArray = ArrayHelper::getValue($modelsProductsFiles, $keyModelProduct);
+                            $imageFiles = ArrayHelper::getValue($productFilesArray, 'imageFiles', []);
+                            $hasNewPhotos = !empty(array_filter($imageFiles));
 
-                                $productFilesArray = ArrayHelper::getValue($modelsProductsFiles, $keyModelProduct);
-                                $imageFiles = ArrayHelper::getValue($productFilesArray, 'imageFiles', []);
-                                $hasNewPhotos = !empty(array_filter($imageFiles));
-
-                                if (1 != (int)$modelProduct->add_image && !$hasNewPhotos && empty($videoFile)) {
-                                    ImageDocumentLink::deleteCurrentLinkImage($writeOffsErpId, $modelProductId, $documentGroupId, $adminId);
-                                }
-
-                                if ($hasNewPhotos) {
-                                    foreach ($imageFiles as $index => $imageFile) {
-                                        if (Images::isImageFile($imageFile)) {
-                                            Yii::info("Загружаем фото #$index: " . $imageFile->name ?? 'нет имени', __METHOD__);
+                            if ((int)$modelProduct->add_image !== 1 && !$hasNewPhotos && empty($videoFile)) {
+                                ImageDocumentLink::deleteCurrentLinkImage($writeOffsErpId, $modelProductId, $documentGroupId, $adminId);
+                            }
 
-                                            $image = new Images();
-                                            $imageId = $image->loadImage($imageFile);
-                                            if ($imageId) {
-                                                $imageDocumentLink = new ImageDocumentLink();
-                                                $imageDocumentLink->setActive()
-                                                    ->setCreatedAt()
-                                                    ->setCreatedAdminId($adminId)
-                                                    ->setDocumentGroupId($documentGroupId)
-                                                    ->setDocumentId($writeOffsErpId)
-                                                    ->setDocumentItemId($modelProductId)
-                                                    ->setImageId($imageId);
-                                                if ($imageDocumentLink->validate()) {
-                                                    $imageDocumentLink->save();
-                                                } else {
-                                                    Yii::warning("Ошибки валидации ImageDocumentLink для фото #$index", __METHOD__);
-                                                }
-                                            } else {
-                                                Yii::warning("Не удалось загрузить фото #$index", __METHOD__);
+                            if ($hasNewPhotos) {
+                                foreach ($imageFiles as $index => $imageFile) {
+                                    if (Images::isImageFile($imageFile)) {
+                                        Yii::info("Загружаем фото #$index: " . ($imageFile->name ?? 'нет имени'), __METHOD__);
+                                        $image = new Images();
+                                        $imageId = $image->loadImage($imageFile);
+                                        if ($imageId) {
+                                            $imageDocumentLink = new ImageDocumentLink();
+                                            $imageDocumentLink->setActive()
+                                                ->setCreatedAt()
+                                                ->setCreatedAdminId($adminId)
+                                                ->setDocumentGroupId($documentGroupId)
+                                                ->setDocumentId($writeOffsErpId)
+                                                ->setDocumentItemId($modelProductId)
+                                                ->setImageId($imageId);
+                                            if (!$imageDocumentLink->validate() || !$imageDocumentLink->save()) {
+                                                Yii::warning("Ошибки валидации/saving ImageDocumentLink для фото #$index", __METHOD__);
                                             }
                                         } else {
-                                            Yii::info("Файл #$index не является изображением", __METHOD__);
+                                            Yii::warning("Не удалось загрузить фото #$index", __METHOD__);
                                         }
+                                    } else {
+                                        Yii::info("Файл #$index не является изображением", __METHOD__);
                                     }
                                 }
+                            }
 
-                                $videoFile = ArrayHelper::getValue($productFilesArray, 'videoFiles');
-                                if ($videoFile) {
-                                    Files::deleteAll(['entity_id' => $modelProductId, 'entity' => WriteOffsProductsErp::WRITE_OFFS_VIDEO]);
-                                    FileService::saveUploadedFile($videoFile, WriteOffsProductsErp::WRITE_OFFS_VIDEO, $modelProductId);
-                                }
+                            $videoFile = ArrayHelper::getValue($productFilesArray, 'videoFiles');
+                            if ($videoFile) {
+                                Files::deleteAll(['entity_id' => $modelProductId, 'entity' => WriteOffsProductsErp::WRITE_OFFS_VIDEO]);
+                                FileService::saveUploadedFile($videoFile, WriteOffsProductsErp::WRITE_OFFS_VIDEO, $modelProductId);
                             }
                         }
                     }
                 }
-                if ($flag) {
-                    $transaction->commit();
-                }
+
                 if ($flag) {
                     $transaction->commit();
                     return $this->redirect(['/write-offs-erp/view', 'id' => $model->id]);
+                } else {
+                    $transaction->rollBack();
                 }
+
             } catch (Exception $e) {
-                $transaction->rollBack();
-                $errors = $e->getMessage();
-var_dump($errors);die();
+                if ($transaction->isActive) {
+                    $transaction->rollBack();
+                }
+
                 return $this->render('/write_offs_erp/update', [
                     'model' => $model,
                     'multipleUploadForm' => $multipleUploadForm,
@@ -897,10 +893,9 @@ var_dump($errors);die();
                     'listCityStoreNames' => $listCityStoreNames,
                     'listCauseDict' => $listCauseDict,
                     'listProductsDict' => $listProductsDict,
-                    'errors' => $errors
+                    'errors' => $e->getMessage()
                 ]);
             }
-
         }
 
         $modelsProductsArray = $modelArray['writeOffsProductsErps'];