{
private const TYPE_SALES = 'sales'; // Тип операции: продажи
private const TYPE_WRITE_OFFS = 'writeOffs'; // Тип операции: списания
- private const OPERATION_SALE = 'Продажа'; // Операция продажи
- private const DATE_FORMAT = 'Y-m-d'; // Формат даты
private const CATEGORY_LOOKBACK_MONTHS = 3; // Период для анализа категорий (месяцы)
- private const SUBCATEGORY_LOOKBACK_MONTHS = 24; // Период для анализа подкатегорий (месяцы)
private const LOOKBACK_MONTHS = 2; // Отступаемый шаг от плановой даты перед расчетами
/**
public function calculateFullGoalChain(array $filters): array
{
$datePlan = $filters['plan_date'];
- $dateFromForCategory = (new \DateTime($datePlan))->modify('-' . (self::CATEGORY_LOOKBACK_MONTHS + self::LOOKBACK_MONTHS) . ' months')->format(self::DATE_FORMAT);
+ $dateFromForCategory = (new \DateTime($datePlan))->modify('-' . (self::CATEGORY_LOOKBACK_MONTHS + self::LOOKBACK_MONTHS) . ' months')->format('Y-m-d');
$monthCategoryShare = $this->getMonthCategoryShareOrWriteOff($dateFromForCategory, $filters);
$monthCategoryGoal = $this->getMonthCategoryGoal($monthCategoryShare, $datePlan, $filters);