public const TYPE_WRITE_OFFS = 'writeOffs'; // Тип операции: списания
private const CATEGORY_LOOKBACK_MONTHS = 3; // Период для анализа категорий (месяцы)
private const LOOKBACK_MONTHS = 2; // Отступаемый шаг от плановой даты перед расчетами
- const SPECIAL_PRODUCT = '2b72702a-792f-11e8-9edd-1c6f659fb563';
+
/**
* Получение списка видимых магазинов
: BouquetComposition::REGION_NN;
}
- $pricesMap = self::buildPricesMap($productsIds, self::SPECIAL_PRODUCT, $region);
+ $pricesMap = self::buildPricesMap($productsIds, $region);
foreach ($pricesMap as $id => $price) {
if ($goal == 0 || (float)$price == 0) {
: BouquetComposition::REGION_NN;
}
- $pricesMap = self::buildPricesMap(array_keys($productSalesShare), self::SPECIAL_PRODUCT, $region);
+ $pricesMap = self::buildPricesMap(array_keys($productSalesShare), $region);
foreach ($productSalesShare as $productId => $data) {
$share = $data['share'] ?? 0.0;
->all();
$products = ArrayHelper::getColumn($productShares, 'product_id');
- $pricesMap = self::buildPricesMap($products, self::SPECIAL_PRODUCT);
+ $pricesMap = self::buildPricesMap($products);
foreach ($productShares as $shareItem) {
$storeId = $shareItem['store_id'];
* Строит карту цен за последние 20 дней.
*
* @param array $productIds Список product_id для выборки
- * @param string $specialProductId GUID товара, для которого нужен min
* @param int|null $regionId Если указан — один регион, иначе — несколько
* @return array
*/
public static function buildPricesMap(
- array $productIds,
- string $specialProductId,
- ?int $regionId = null
+ array $productIds,
+ ?int $regionId = null
): array {
+ $heliumGuid = '2b72702a-792f-11e8-9edd-1c6f659fb563';
$periodEnd = (new \DateTime())->format('Y-m-d H:i:s');
$periodStart = (new \DateTime())->modify('-20 days')->format('Y-m-d H:i:s');
? $priceRecord['region_id']
: null;
- if ($productId === $specialProductId) {
+ if (isset($heliumGuid) && $productId === $heliumGuid) {
if ($multiRegion) {
if (!isset($pricesMap[$productId][$regionId])) {
$pricesMap[$productId][$regionId] = [$price];