@@ -432,15 +432,10 @@ public function persistModifiedObject(IObject $object)
432432
433433 $ updateBuilder = $ dataSource ->update ();
434434
435- $ calculableProperties = [];
436- foreach ($ object ->getModifiedProperties () as $ property ) {
435+ foreach ($ modifiedProperties as $ property ) {
437436 if ($ this ->getMetadata ()->getFieldExists ($ property ->getName ())) {
438- if ($ property instanceof ICalculableProperty) {
439- $ calculableProperties [] = $ property ;
440- } else {
441- $ field = $ this ->getMetadata ()->getField ($ property ->getName ());
442- $ field ->persistProperty ($ object , $ property , $ updateBuilder );
443- }
437+ $ field = $ this ->getMetadata ()->getField ($ property ->getName ());
438+ $ field ->persistProperty ($ object , $ property , $ updateBuilder );
444439 }
445440 }
446441
@@ -463,13 +458,8 @@ public function persistModifiedObject(IObject $object)
463458 $ this ->getIdentifyField ()->getDataType ()
464459 );
465460
466- $ updateBuilder ->where ()
467- ->expr ($ versionColumnName , '= ' , ': ' . $ versionColumnName );
468- $ updateBuilder ->bindValue (
469- ': ' . $ versionColumnName ,
470- $ version ,
471- $ this ->getVersionField ()->getDataType ()
472- );
461+ $ updateBuilder ->where ()->expr ($ versionColumnName , '= ' , ': ' . $ versionColumnName );
462+ $ updateBuilder ->bindValue (': ' . $ versionColumnName , $ version , $ this ->getVersionField ()->getDataType ());
473463
474464 $ result = $ updateBuilder ->execute ();
475465
@@ -500,8 +490,6 @@ public function persistModifiedObject(IObject $object)
500490 ));
501491 }
502492 }
503-
504- $ this ->persistCalculableProperties ($ object , $ calculableProperties );
505493 }
506494
507495 /**
@@ -537,54 +525,6 @@ public function persistDeletedObject(IObject $object)
537525 }
538526 }
539527
540- /**
541- * Запускает запросы на сохранение вычисляемых свойств объекта.
542- * @param IObject $object объект, для которого сохраняются значения
543- * @param IProperty[] $calculableProperties список свойств, которые должны быть вычислены
544- * @throws RuntimeException если не удалось сохранить свойства
545- */
546- protected function persistCalculableProperties (IObject $ object , array $ calculableProperties )
547- {
548-
549- $ updateBuilder = $ this ->getMetadata ()->getCollectionDataSource ()->update ();
550-
551- $ updateBuilder
552- ->where ()
553- ->expr (
554- $ this
555- ->getIdentifyField ()
556- ->getColumnName (),
557- '= ' ,
558- ':objectId '
559- );
560- $ updateBuilder ->bindValue (
561- ':objectId ' ,
562- $ object ->getId (),
563- $ this ->getIdentifyField ()
564- ->getDataType ()
565- );
566-
567- foreach ($ calculableProperties as $ property ) {
568- if ($ this ->getMetadata ()->getFieldExists ($ property ->getName ())) {
569- $ field = $ this ->getMetadata ()->getField ($ property ->getName ());
570- $ field ->persistProperty ($ object , $ property , $ updateBuilder );
571- }
572- }
573-
574- if (!$ updateBuilder ->getUpdatePossible ()) {
575- return ;
576- }
577- $ result = $ updateBuilder ->execute ();
578-
579- if ($ result ->rowCount () != 1 ) {
580- throw new RuntimeException ($ this ->translate (
581- 'Cannot set calculable properties for object with id "{id}" and type "{type}". '
582- . ' Database row is not modified. ' ,
583- ['id ' => $ object ->getId (), 'type ' => $ object ->getTypePath ()]
584- ));
585- }
586- }
587-
588528 /**
589529 * Возвращает обязательное поле коллекции.
590530 * @param $fieldName
0 commit comments