public static function calculateMonthForecast($store_id, $year, $month) {
$motivationCostsItem = MotivationCostsItem::find()->all();
$motivationCostsItemCodes = ArrayHelper::getColumn($motivationCostsItem, 'code');
- $additionalItemsKeys = array_keys(self::$additionalItems);
+ $additionalItemsCodes = ArrayHelper::getColumn(self::$additionalItems, 'code');
- $items = array_merge($motivationCostsItemCodes, $additionalItemsKeys);
+ $items = array_merge($motivationCostsItemCodes, $additionalItemsCodes);
$motivationValueGroups = [];
foreach (range(1, 5) as $ind) {
};
}
}
- if (!$motivationValue) {
- $motivationValue = new MotivationValue;
- $motivationValue->motivation_id = $motivation->id;
- $motivationValue->motivation_group_id = $motivationValueGroupForecast->id;
- $motivationValue->value_id = $code;
- }
- $motivationValue->value_type = $sum_type;
- switch ($sum_type) {
- case MotivationCostsItem::DATA_TYPE_INT: { $motivationValue->value_int = $sum; break; }
- default: { $motivationValue->value_float = $sum; break; }
- }
- $motivationValue->save();
- if ($motivationValue->getErrors()) {
- throw new \Exception(Json::encode($motivationValue->getErrors()));
- }
+ self::saveOrUpdateMotivationValue($motivation->id, "forecast", $code, $sum_type, $sum);
}
}
}