• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/copy/implement/group.php
  • Класс: BitrixSocialnetworkCopyImplementGroup
  • Вызов: Group::getRecountFieldsProjectTerm
private function getRecountFieldsProjectTerm($fields, $startPoint)
{
	try
	{
		$projectTerm = [
			"project" => true,
			"old_start_point" => $fields["PROJECT_DATE_START"]
		];

		$oldDateStart = new DateTime($fields["PROJECT_DATE_START"]);

		$phpDateFormat = BitrixMainTypeDateTime::convertFormatToPhp(FORMAT_DATE);

		$newDateStart = new DateTime($startPoint);
		$fields["PROJECT_DATE_START"] = $newDateStart->format($phpDateFormat);

		if (!empty($fields["PROJECT_DATE_FINISH"]))
		{
			$dateFinish = new DateTime($fields["PROJECT_DATE_FINISH"]);
			$interval = new DateInterval("PT".($dateFinish->getTimestamp()-$oldDateStart->getTimestamp())."S");
			$newDateStart->add($interval);
			$fields["PROJECT_DATE_FINISH"] = $newDateStart->format($phpDateFormat);
		}

		$projectTerm["start_point"] = $fields["PROJECT_DATE_START"];
		$projectTerm["end_point"] = $fields["PROJECT_DATE_FINISH"];

		$this->setProjectTerm($projectTerm);
	}
	catch (Exception $exception)
	{
		$fields["PROJECT_DATE_FINISH"] = "";
		$this->result->addError(new Error($exception->getMessage()));
	}

	return $fields;
}