From: Alexander Smirnov Date: Mon, 14 Oct 2024 09:15:10 +0000 (+0300) Subject: [ERP-220] дефект с поставки целиком идёт на Аэродромную, оставляя остальные магазины... X-Git-Tag: 1.6~36^2~4 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=b41298795d2a5466e068b1c84e00f7a9fc1859b3;p=erp24_rep%2Fyii-erp24%2F.git [ERP-220] дефект с поставки целиком идёт на Аэродромную, оставляя остальные магазины пустыми --- 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; // "Пересорт"