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:
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,
];
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,
];
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;
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;
// 3. Получение данных из MotivationCostsItem
$costsItems = MotivationCostsItem::find()
- ->where(['is_active' => true])
+// ->where(['is_active' => true])
->indexBy('code')
->orderBy(['order' => SORT_ASC])
->all();
}
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;
}
$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; // "Пересорт"