From b41298795d2a5466e068b1c84e00f7a9fc1859b3 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 14 Oct 2024 12:15:10 +0300 Subject: [PATCH] =?utf8?q?[ERP-220]=20=D0=B4=D0=B5=D1=84=D0=B5=D0=BA=D1=82?= =?utf8?q?=20=D1=81=20=D0=BF=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?utf8?q?=D1=86=D0=B5=D0=BB=D0=B8=D0=BA=D0=BE=D0=BC=20=D0=B8=D0=B4=D1=91?= =?utf8?q?=D1=82=20=D0=BD=D0=B0=20=D0=90=D1=8D=D1=80=D0=BE=D0=B4=D1=80?= =?utf8?q?=D0=BE=D0=BC=D0=BD=D1=83=D1=8E,=20=D0=BE=D1=81=D1=82=D0=B0=D0=B2?= =?utf8?q?=D0=BB=D1=8F=D1=8F=20=D0=BE=D1=81=D1=82=D0=B0=D0=BB=D1=8C=D0=BD?= =?utf8?q?=D1=8B=D0=B5=20=D0=BC=D0=B0=D0=B3=D0=B0=D0=B7=D0=B8=D0=BD=D1=8B?= =?utf8?q?=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/records/MotivationCostsItem.php | 8 ++++---- erp24/services/MotivationService.php | 23 +++++++++++++++++++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/erp24/records/MotivationCostsItem.php b/erp24/records/MotivationCostsItem.php index c415d96e..33dc54a4 100644 --- a/erp24/records/MotivationCostsItem.php +++ b/erp24/records/MotivationCostsItem.php @@ -37,8 +37,8 @@ class MotivationCostsItem extends ActiveRecord switch ($itemType) { case WriteOffsErp::WRITE_OFFS_TYPE_BRAK: return self::ITEM_WRITE_OFF_OF_ILLIQUID_GOODS_SPOILAGE_EXPIRATION_OF_SHELF_LIFE; -// case WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK: -// return self::ITEM_DEFECTIVE_DELIVERY; + case WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK: + return self::ITEM_DEFECTIVE_DELIVERY; case WriteOffsErp::WRITE_OFFS_TYPE_DUE_TO_EQUIPMENT_FAILURE_BRAK: return self::ITEM_DEFECT_DUE_TO_EQUIPMENT_FAILURE; case WriteOffsErp::WRITE_OFFS_TYPE_RESORTING_DOES_NOT_COUNT_TOWARDS_COST: @@ -51,7 +51,7 @@ class MotivationCostsItem extends ActiveRecord public static function writeOffsToMotivationItemArray() { return [ WriteOffsErp::WRITE_OFFS_TYPE_BRAK => self::ITEM_WRITE_OFF_OF_ILLIQUID_GOODS_SPOILAGE_EXPIRATION_OF_SHELF_LIFE, -// WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK => self::ITEM_DEFECTIVE_DELIVERY, + WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK => self::ITEM_DEFECTIVE_DELIVERY, WriteOffsErp::WRITE_OFFS_TYPE_DUE_TO_EQUIPMENT_FAILURE_BRAK => self::ITEM_DEFECT_DUE_TO_EQUIPMENT_FAILURE, WriteOffsErp::WRITE_OFFS_TYPE_RESORTING_DOES_NOT_COUNT_TOWARDS_COST => self::ITEM_REGRADING, ]; @@ -60,7 +60,7 @@ class MotivationCostsItem extends ActiveRecord public static function getWriteOffsItems() { return [ WriteOffsErp::WRITE_OFFS_TYPE_BRAK, -// WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK, + WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK, WriteOffsErp::WRITE_OFFS_TYPE_DUE_TO_EQUIPMENT_FAILURE_BRAK, WriteOffsErp::WRITE_OFFS_TYPE_RESORTING_DOES_NOT_COUNT_TOWARDS_COST, ]; diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 79d55c44..ef9d8f8d 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -22,6 +22,7 @@ use yii_app\records\Sales; use yii_app\records\SalesProducts; use yii_app\records\TimetableFactModel; use yii_app\records\Timetable; +use yii_app\records\WriteOffsErp; use yii_app\records\WriteOffsProducts; @@ -31,7 +32,7 @@ class MotivationService const CODE_ONLINE_SALES = 2; const CODE_ASSEMBLY_SERVICES = 3; const CODE_DELIVERY_SERVICES = 4; - //const CODE_DELIVERY_DEFECTS = 6; + const CODE_DELIVERY_DEFECTS = 6; const CODE_WRITE_OFF_ILLIQUID_GOODS_SPOOLAGE_EXPIRATION_OF_SHELF_LIFE = 7; const CODE_EQUIPMENT_FAILURE_DEFECT = 8; const CODE_REGRADING = 9; @@ -186,7 +187,7 @@ class MotivationService // 3. Получение данных из MotivationCostsItem $costsItems = MotivationCostsItem::find() - ->where(['is_active' => true]) +// ->where(['is_active' => true]) ->indexBy('code') ->orderBy(['order' => SORT_ASC]) ->all(); @@ -492,8 +493,22 @@ class MotivationService } foreach (MotivationCostsItem::getWriteOffsItems() as $key) { + + if ($key == WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK) { + if ($store_id == 4) { + $writeOffsResult = WriteOffs::find()->alias('wo')->select(['wo.type', 'wo.date', 'wop.product_id', 'wop.quantity', 'wop.price']) + ->rightJoin('write_offs_products wop', 'wop.write_offs_id = wo.id') + ->where(['between', 'wo.date', $weekStart, $weekEnd]) + ->asArray()->all(); + } else { + $writeOffsResult = []; + } + } else { + $writeOffsResult = $writeOffs; + } + $sum = 0; - foreach ($writeOffs as $data) { + foreach ($writeOffsResult as $data) { if (($data['type'] ?? '') != $key) { continue; } @@ -1607,7 +1622,7 @@ class MotivationService $motivationDataTableSort[$indMap[self::CODE_COSTS_OF_GOODS]][$column] + 0; // "Стоимость товара" $motivationDataTableSort[$indMap[self::CODE_DEFECT_RESORTING]][$column] = // "Брак, пересорт" - //$motivationDataTableSort[$indMap[self::CODE_DELIVERY_DEFECTS]][$column] + // "Брак с поставки" + $motivationDataTableSort[$indMap[self::CODE_DELIVERY_DEFECTS]][$column] + // "Брак с поставки" $motivationDataTableSort[$indMap[self::CODE_WRITE_OFF_ILLIQUID_GOODS_SPOOLAGE_EXPIRATION_OF_SHELF_LIFE]][$column] + // "Списание неликвидного товара: порча, истечение срока годности" $motivationDataTableSort[$indMap[self::CODE_EQUIPMENT_FAILURE_DEFECT]][$column] + // "Брак из-за поломки оборудования" $motivationDataTableSort[$indMap[self::CODE_REGRADING]][$column] + 0; // "Пересорт" -- 2.39.5