RestInvoice::fillCompatibleFields

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. RestInvoice
  4. fillCompatibleFields
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recurring/entity/parametermapper/restinvoice.php
  • Класс: Bitrix\Crm\Recurring\Entity\ParameterMapper\RestInvoice
  • Вызов: RestInvoice::fillCompatibleFields
private function fillCompatibleFields()
{
	$this->map[self::FIELD_DATE_PAY_BEFORE_TYPE] = Invoice::UNSET_DATE_PAY_BEFORE;
	if (!empty($this->map[self::FIELD_DATE_PAY_BEFORE_PERIOD]))
	{
		$this->map[self::FIELD_DATE_PAY_BEFORE_TYPE] = Invoice::SET_DATE_PAY_BEFORE;
	}

	$this->map[$this->getUnitTypeMapCode()] = $this->unitType;
	$this->map[$this->getIntervalMapCode()] = $this->interval;
	if ($this->mode === Calculator::SALE_TYPE_DAY_OFFSET)
	{
		$this->map[self::FIELD_DAILY_WORKDAY_ONLY] = $this->map[self::FIELD_IS_WORKING_ONLY];
	}
	if ($this->mode === Calculator::SALE_TYPE_WEEK_OFFSET)
	{
		$weekday = 1;
		if ((int)$this->map[self::FIELD_WEEKDAY] > 0 && (int)$this->map[self::FIELD_WEEKDAY] <= 7)
		{
			$weekday = $this->map[self::FIELD_WEEKDAY];
		}
		$this->map[self::FIELD_WEEKLY_WEEKDAYS] = [$weekday];
	}
	elseif ($this->mode === Calculator::SALE_TYPE_MONTH_OFFSET || $this->mode === Calculator::SALE_TYPE_YEAR_OFFSET)
	{
		$dayCode = ($this->mode === Calculator::SALE_TYPE_MONTH_OFFSET) ? self::FIELD_MONTHLY_FIRST_TYPE_INTERVAL_DAY : self::FIELD_YEARLY_FIRST_TYPE_INTERVAL_DAY;
		$this->map[$dayCode] = $this->map[self::FIELD_NUM_DAY_IN_MONTH];

		$isWorkdayCode = ($this->mode === Calculator::SALE_TYPE_MONTH_OFFSET) ? self::FIELD_MONTHLY_FIRST_TYPE_WORKDAY_ONLY : self::FIELD_YEARLY_FIRST_TYPE_WORKDAY_ONLY;
		$this->map[$isWorkdayCode] = $this->map[self::FIELD_IS_WORKING_ONLY];

		$numWeekdayCode = ($this->mode === Calculator::SALE_TYPE_MONTH_OFFSET) ? self::FIELD_MONTHLY_SECOND_TYPE_WEEK_VALUE : self::FIELD_YEARLY_SECOND_TYPE_WEEK_VALUE;
		$this->map[$numWeekdayCode] = $this->map[self::FIELD_NUM_WEEKDAY_IN_MONTH];

		$weekdayCode = ($this->mode === Calculator::SALE_TYPE_MONTH_OFFSET) ? self::FIELD_MONTHLY_SECOND_TYPE_WEEKDAY : self::FIELD_YEARLY_SECOND_TYPE_WEEKDAY;
		$this->map[$weekdayCode] = $this->map[self::FIELD_WEEKDAY];
	}
}

Добавить комментарий