Я подозреваю, что проблема из-за того, что у каждого типа плательщика свои уникальные свойства. И изменяя тип плательщика, может нужно как-нибудь заново загрузить соответствующие ему объекты propertyCollection?
$orderPropValue = $propertyCollection->getItemByOrderPropertyId($propId);
if ( is_object($orderPropValue) )
{
$orderPropValue->setValue($propVal);
}
$datetime1 = new \DateTime('01.03.2018');
$datetime2 = new \DateTime('31.03.2018');
$interval = $datetime1->diff($datetime2);
var_dump($interval->format('%m'));
//string(1) "1"
$datetime1 = new \DateTime('01.01.2018');
$datetime2 = new \DateTime('31.01.2018');
$interval = $datetime1->diff($datetime2);
var_dump($interval->format('%m'));
//string(1) "0"
$datetime1 = new \DateTime('01.02.2018');
$datetime2 = new \DateTime('28.02.2018');
$interval = $datetime1->diff($datetime2);
var_dump($interval->format('%m'));
//string(1) "0"
Ошибка в базе, к которой установщик не готов.
Техподдержка, которая отвечает отписками.
Первый встречный, который отвечает дружелюбнее, чем официальная поддержка.