# Changelog

## Version 8.18.0 [2024-11-20]
- Fix: Cache löschen, wenn neue Objekte gelöscht oder hinzugefügt werden vom Typ:
  - attributevalue
  - propertyname

## Version 8.17.0 [2024-11-20]
- Fix getArchiveTarget: Nutze absoluten Pfad von Pimcore, wenn gesetzt
- iManIntegrationDeleteCommand: nur xml-Dateien löschen

## Version 8.16.0 [2024-11-20]
- Refactoring
  - AbstractEntityEventSubscriber => AbstractEventSubscriber
  - EntityEventSubscriberInterface => EventSubscriberInterface
    - Allg. Methode action zur Umsetzung von Logik im erweiterten Bundle
  - BatchProgressBar, BatchProgressBarTrait entfernt
  - logToApplication auf DbLogger umgestellt und Methode in FileLogger entfernt
  - FileLogger::getInstance('batch-published-logger');
    - Parameter 'batch-published-logger', wird global über die Command gesetzt
    - iman-integration => event-listener-object, event-listener-version

> benötigt c4s_core >= v2.3.0

## Version 8.15.0 [2024-11-19]
- Cache löschen, wenn neue Objekte gelöscht oder hinzugefügt werden vom Typ:
  - attributevalue
  - propertyname

## Version 8.14.0 [2024-11-08]
- Refactoring castEntityObject => mergeEntities

## Version 8.13.0 [2024-11-07]
- Refactoring BatchProcess
  - Ausleitung über mehrere Dateien (über Setting::getFileEntrySize())
  - public-Methoden zu proteced-Methoden umbenannt
- Refactoring HydratorWorker
  - Parameter $oBatchProcess obsolet und entfernt
- Fix: Prüfung ob cron-Tabelle existiert, wenn nicht bei Installation des Bundle anlegen
- PIMCORE_WEB_ROOT als absoluten Pfad verwenden => TRUE

## Version 8.12.0 [2024-10-29]
- REN-337: Command iManIntegrationCommand:removeData zum Löschen alter Ausleitungsdateien aus dem Archivverzeichnis

> Bundle neu installieren

## Version 8.11.0 [2024-10-28]
- REN-337: Download der Ausleitungdatei in der Versionsübersicht

> Archiv-Verzeichnis konfigurieren

## Version 8.10.1 [2024-10-23]
- REN-337: Ausgabe der Ausleitungdatei in der Versionsübersicht
  - Filename in DB persistieren

## Version 8.10.0 [2024-10-23]
- REN-337: Ausgabe der Ausleitungdatei in der Versionsübersicht

> Bundle neu installieren

## Version 8.9.0 [2024-10-09]
- Kategorie
  - Sort hinzugefügt

## Version 8.8.1 [2024-10-08]
- Fix: public function BatchProgressBarTrait

## Version 8.8.0 [2024-10-08]
- Unveröffentlichte Objekte ausleiten
- Ausleitung generieren, wenn Objekt gelöscht wird (über Event)

## Version 8.7.1 [2024-09-30]
- Mehrsprachige Multiselect-Felder Pipe-separiert je Sprache ausleiten
  - Trenner über getMultiValueSep bestimmen

## Version 8.7.0 [2024-09-06]
- Mehrsprachige Multiselect-Felder Pipe-separiert je Sprache ausleiten

## Version 8.6.0 [2024-09-05]
- Revert v8.3.0: Schreibe weiterhin den Value von Auswahlwerten ohne OptionsProvider-Anbindung in die Ausleitung

## Version 8.5.0 [2024-09-02]
- Zugehörige Materialzuweisung in Log-Datei wieder entfernt
- Session-Reset vor Versionsverarbeitung 

## Version 8.4.0 [2024-09-02]
- Zugehörige Materialzuweisung in Log-Datei schreiben

## Version 8.3.0 [2024-08-29]
- Schreibe den "Key" von Auswahlwerten ohne OptionsProvider-Anbindung in die Ausleitung

## Version 8.2.0 [2024-08-13]
- gc_probability: null in c4s_core ausgelagert

> benötigt c4s_core >= v2.1.0

## Version 8.1.0 [2024-08-08]
- Icon als "einfaches Feld" entfernt.

## Version 8.0.0 [2024-05-30]
- Refactoring für PIMCORE 11
- Objektbausteine immer über <attributes> ausleiten
- Validierung (Objekt/Version) in Event ausgelagert
- Generierung bei Löschung von Objekten auskommentiert
- Material
  - ChannelRelation entfernt
  - CrossSelling entfernt
  - Properties entfernt
- ConcreteEvent und HydratorEvent raus. Alles über Event (vorher EntityEvent)
- Article
  - Configuration entfernt
  - Attributes entfernt
  - VariantAttributes entfernt

> benötigt c4s_core >= v2.0.0

## Version 7.24.0 [2024-03-08]
- gc_probability: null

## Version 7.23.0 [2023-12-15]
- Typisierung $oVersion->getUserId() auf INT

## Version 7.22.0 [2023-11-30]
- Asset-Transport bei Kategorieausleitung, wenn Checkbox "Sollen Assets bei iMan-Ausleitung transportiert werden?" aktiv

## Version 7.21.0 [2023-11-13]
- Fix getRootMainCategoryObject, Return $oObject

## Version 7.20.0 [2023-10-24]
- Neues Event: entity.<material>.event.channel-relations_entity.disable
  - Verhindert die Ausführung der Objekt-Anhängigkeiten (Artikel zum Material), wenn das Event in einem Kunden-Bundle gesetzt ist

## Version 7.19.0 [2023-10-24]
- Fix: $oAttributeEntity=null bei Ermittlung der Atttribute über Objektbausteine (doppelte Attribute vermeiden)

## Version 7.18.0 [2023-10-23]
- Fix: openVersions

## Version 7.17.0 [2023-09-28]
- C4S_EDITOR_ID über $oVersion->getUserId(), vorher $oVersion->getUser()->getId()

## Version 7.16.0 [2023-08-24]
- Validierung (Objekt/Version) in Event ausgelagert

## Version 7.15.0 [2023-07-05]
- Alle localizedfields an den Objektbausteinen ausleiten, wenn diese mehrfach vorhanden sind
- TabPanel-ID: imanintegration

## Version 7.14.0 [2023-05-17]
- Benutzer-ID wird in versions_iman protokolliert
- Klassenkommentare angepasst

> ALTER TABLE `versions_iman` ADD COLUMN `C4S_EDITOR_ID` TINYINT(1) NOT NULL DEFAULT '0' AFTER `C4S_PROCESS_END`;

## Version 7.13.0 [2023-05-17]
- Fix: Wert am quantityValue-Feld über getValue() ermitteln

## Version 7.12.0 [2023-04-21]
- Category
  - Path, Sort, SortIndex über BaseEntityTrait

## Version 7.11.0 [2023-04-18]
- Category
  - Icon (MultiLang)

## Version 7.10.1 [2023-04-12]
- Material
  - VariantNames: Prüfung, ob Parent ein Material ist wurde entfernt

## Version 7.10.0 [2023-04-11]
- Material
  - VariantNames auch für PropertyNames
  
> benötigt c4s_core >= v1.1.0

## Version 7.9.1 [2023-04-06]
- Fix: TargetSystemEntity

## Version 7.9.0 [2023-04-06]
- Neue Objektklassen
  - AttributeDefinition
  - AttributeValue

- Material
  - VariantNames

> Refactoring in den Customer-Modulen notwendig, wo diese Objekte benötigt werden!
  > Prüfung ParentEntityTrait (AttributeValue) ob das Listing verwendet findet. Wenn ja, dann Ausleitungen prüfen/abgleichen!

> benötigt c4s_core >= v1.0.0

## Version 7.8.0 [2023-03-24]
- Rückbau <parent-id>oxrootid</parent-id>
- div Fixes
  - getShopId
  - getShopDomain
  - getRootMainCategoryObject
  - getCategoryLevel
  - _setMetaDataEntity

## Version 7.7.0 [2023-03-01]
- oxrootid => auf Integer umgestellt (vorher oxrootid), wenn Vater ein Shop-Objekt ist: <parent-id>0</parent-id>
- Path in meta-data ausgeben

## Version 7.6.0 [2023-02-14]
- isArticleVariant nach Tool ausgelagert
- Aufruf Reset-Methode ys => ies (resetQualitys => resetQualities)
- Prüfung $oVariantValues->$sBrickGetter(), ob Objekt nicht NULL ist

## Version 7.5.0 [2023-02-08]
- Fix: FileLogger

## Version 7.4.0 [2023-01-16]
- Flag "isPublic" ins Log schreiben

## Version 7.3.0 [2023-01-10]
- Inhalt von C4S_PROCESS_ERROR_MSG löschen, wenn Datei korrekt erzeugt wurde

## Version 7.2.0 [2022-11-03]
- Refactoring VersionListener, DataObjectListener
- Assets nur übertragen, wenn AssetSynchronizer-Modul aktiv ist

> benötigt c4s_asset_synchronizer >= v2.3.0 (wenn das Bundle installiert ist)

## Version 7.1.0 [2022-10-25]
- Fix Löschen von Kategorien zulassen
- Löschen von Objekten: Ausleitungsdatei wird über das Event getriggert

> benötigt c4s_core >= v0.8.0

## Version 7.0.0 [2022-09-01]
- Integration CoreBundle
- Fix: openVersions
- Umstellung auf logToApplication

> benötigt c4s_core >= v0.7.0

## Version 6.24.1 [2022-08-30]
- Fix: Immer Objekte ausleiten, wenn über API/GraphQL angefragt wurde

## Version 6.24.0 [2022-08-25]
- Fix: Ausleitungen von veröffentlichten Objekten über API

## Version 6.23.0 [2022-08-19]
- Fix: Mehrsprachigkeit in Objektbausteinen (Textfeld, Eingabefeld)

## Version 6.22.0 [2022-08-17]
- Anpassung:
  - 'C4S_OBJECT_DATA'  => $oObject->getId(),
  - 'C4S_VERSION_DATA' => $oVersion->getId(),

## Version 6.21.0 [2022-08-10]
- MetaData
  - is-parent
- AccessoryMaterialEntity
  - is-parent
  - key
- UpsellingMaterialEntity
  - is-parent
  - key

## Version 6.20.0 [2022-06-02]
- _set, wenn Parameter NULL erlaubt, dann mit Parameter aufrufen
- setFileEntities => asset-Id mit in Ausleitung schreiben

## Version 6.19.0 [2022-06-01]
- Fix Ausleitung Artikelgruppen (unabhängig von Kinder-Artikeln)
- Versionen werden nun immer einzeln aus DB gelesen
- Nebenläufigkeiten von PHP-Prozessen konfigurierbar. Hier dürfen je nach Konfiguration weitere Prozesse gestartet werden, auch wenn ein Prozess noch nicht abgeschlossen ist.
- Bugfixes: MetaDataEntity
- Gelöschte Objekte auf Failed 7 setzen, wenn diese nicht wiederhergestellt (serialize) werden können
- Gelöschte Materialien hydrieren
- Mailer-Configuration wieder entfernt
- Übersetzungen
- JS-Aufruf für Plugin-Panel überarbeitet
- iManIntegrationSingleCommand (Ausleiten von einzelnen Objekten über Console)
- Refactoring

> Plugin reaktivieren
> Anzahl der Nebenläufigkeiten innerhalb der Konfiguration per Default auf 1 setzen

## Version 6.18.1 [2022-03-31]
- Bugfix: Prüfung ob Property (value) vorhanden

## Version 6.18.0 [2022-02-25]
- Bugfix: Ausleitung für Dateien und Dokumente über FilesEntityTrait

## Version 6.17.0 [2022-02-15]
- Anzeige wie viele Objekte zur Ausleitung anstehen über getTotalCount
- Refactoring Class-Doc

## Version 6.16.0 [2022-02-11]
- Caching für AttributeOptions (Ausschluss: tree-get-childs-by-id)
- Mailer-Configuration über config.yml
- Bugfix: Mailversand bei DEBUG-Modus
- Bugfix: Prüfung Cronsteuerung auf Diff-Minutes

## Version 6.15.0 [2022-02-04]
- Caching für AttributeOptions

## Version 6.14.0 [2022-01-26]
- castEntityObject nach Tools verlegt
- ID für Multiselect an LocalizedField setzen

## Version 6.13.0 [2022-01-26]
- Attribute id am LocalizedField
- CrossSellingEntity am Material

## Version 6.12.0 [2022-01-25]
- Refactoring (getContainer => new)

## Version 6.11.2 [2022-01-19]
- Bugfix

## Version 6.11.1 [2022-01-17]
- Bugfix, PHPDoc

## Version 6.11.0 [2022-01-12]
- Allgemeines Refactoring

## Version 6.10.0 [2022-01-11]
- Parallele Cron-Abarbeitung über Konfiguration verhindern

> Plugin reaktivieren
> Konfigurationswerte ggf. anpassen
  > Cron wartet bis Ausleitung abgeschlossen ist (keine parallelen Ausleitungen möglich!) => aktivieren
  > Sendet eine Mail, wenn nach einer bestimmten Zeit (in Minuten) der Cron immer noch nicht abgeschlossen ist (0=keine Überprüfung) => 90 Minuten

## Version 6.9.0 [2021-12-27]
- SELECT/MULTISELECT und MANY-TO-MANY-Relation: Werte werden nur über LocalizedField in Ausleitung geschrieben (inkl. OptionsProvider), wenn Webservice eine Container-Methode (ADD) aufweist. Ansonsten wird der Wert an die SET geschrieben.
- Umbenennung ProcessType => HydratorType
- Klassenvariable $_oMetaDataEntity von AbstractEntity in MetaDataEntityTrait verschoben 
- Nur dann Objekte hinzufügen, wenn MetaDataEntiy != null
- LocalizedEntityTrait um Name, Value erweitert

## Version 6.8.0 [2021-12-17]
- SELECT/MULTISELECT und MANY-TO-MANY-Relation: Werte werden über LocalizedField in Ausleitung geschrieben (inkl. OptionsProvider)

## Version 6.7.0 [2021-12-17]
- Allgemeine Fehlerausgaben verbessert, Exceptions werden nun auch in den Dateien geloggt

## Version 6.6.0 [2021-12-14]
- Konfiguration: absoluter Pfad für Ausleitungsdateien

## Version 6.5.0 [2021-12-13]
- Fix: AbstractObject (Cannot instantiate abstract class Pimcore\Model\DataObject\AbstractObject)
- Fix: Call to undefined method getKeyValue in class Pimcore\Model\DataObject\Folder

## Version 6.4.0 [2021-12-06]
- Checkbox "Active" über die Pluginkonfiguration, steuert die Generierung der Ausleitungsdateien
- Anzeige der anstehenden Ausleitungsobjekte

> Checkbox "Aktiv?" aktivieren

## Version 6.3.1 [2021-12-01]
- Fix: Name über Versions-Objekt per "method_exists" prüfen

## Version 6.3.0 [2021-11-30]
- Fixes Ausleitung über Objektbausteine

## Version 6.2.0 [2021-11-11]
- Refactoring für Pimcore 10.x unter PHP8.0
- Neue Konfiguration: Anzeige Key/Value von Auswahllisten über OptionProvider

## Version 6.1.0 [2021-11-11]
- Refactoring für Pimcore 10.x unter PHP8.0

## Version 6.0.0 [2021-10-13]
- Refactoring für Pimcore 10.x unter PHP8.0

## Version 5.11.0 [2021-10-12]
- "jms/serializer-bundle": "3.10.0"

## Version 5.10.0 [2021-10-12]
- "jms/serializer-bundle": "3.14.0"

## Version 5.9.0 [2021-09-16]
- Geschwister-Artikel an einer Artikelgruppe optional ausleiten

> Checkbox "Alle Artikel einer Artikelgruppe ausleiten?" aktivieren

## Version 5.8.0 [2021-09-10]
- FilesEntityTrait
- Neue Felder in InputEntityTrait
- Neue Felder in LocalizedEntityTrait
- Neue Felder in NumberEntityTrait
- Icon (Files)

## Version 5.7.2 [2021-09-02]
- Bugfix: doppelte Ausgabe long-description

## Version 5.7.1 [2021-09-02]
- Bugfix: setAttribute nur für STRINGs

## Version 5.7.0 [2021-08-13]
- ObjektId und AttributeId an Objektbausteinfelder schreiben

## Version 5.6.0 [2021-08-12]
- Sort-Index an article und articlegroup
- neues Boolean is-sample-order
- MetaData: InheritShopIds

## Version 5.5.0 [2021-07-23]
- Umstellung VariantNames auf Multiselect mit VariantProperty

## Version 5.4.0 [2021-07-23]
- Erweiterung LocalizedEntityTrait
  - long-description-1
  - long-description-2
- Erweiterung Felder ArticleGroup
  - title-alt
  - long-description-1
  - long-description-2
  - usergroup-rights-buyable
  - usergroup-rights-viewable

## Version 5.3.2 [2021-07-21]
- Logs entfernt

## Version 5.3.1 [2021-07-20]
- Fix: BaseUnitAmount

## Version 5.3.0 [2021-07-09]
- Refactoring (Traits, AbstractObject)
- neuer Command: iManIntegrationCommand:getQueueFiles

## Version 5.2.0 [2021-07-02]
- ProductRecommendation an Category

## Version 5.1.0 [2021-06-28]
- Main/Sub-Category obsolet, nur noch Category

## Version 5.0.0 [2021-06-21]
- Re-Design, Remove Pimcore-Bundle

## Version 4.56.2 [2021-06-10]
- Fix: Werte aus Numeric-Felder an Setter-Methoden mit Parameter-Typisierung

## Version 4.56.1 [2021-06-01]
- Fix: add UND set-Methoden bei unbekannten Feldtypen auf NULL prüfen

## Version 4.55.0 [2021-05-18]
- Fix: Attribute unit-id nicht setzen, wenn keine Einheit am Feldtyp QuantityValue definiert wurde.

## Version 4.54.0 [2021-05-18]
- Fix: Attribute unit und unit-id dann setzen, wenn keine Einheit am Feldtyp QuantityValue definiert wurde.

## Version 4.53.0 [2021-05-17]
- QuantityValue innerhalb Objektbausteine

## Version 4.52.0 [2021-05-11]
- Neue Felder an ArticleGroup
    - is-best-price

## Version 4.51.0 [2021-04-27]
- Neue Felder an ArticleGroup
    - is-requestable
    - is-in-stock

## Version 4.50.0 [2021-04-21]
- RendererEvent @c4s.customrenderer

## Version 4.49.0 [2021-04-20]
- Typenbehandlung für Zahlenwerte innerhalb Attributes: integer|float
- Wenn keine Zahl am Attributfeld definiert, wird auch nichts ausgeleitet (war vorher 0)

<attribute name="sd2plus10" type="numeric">1.55</attribute>
<attribute name="sdanzahlseitenteile" type="numeric">16</attribute>
<attribute name="sdanzpersbiertisch" type="numeric"/>

## Version 4.48.0 [2021-04-12]
- Neues Feld am Artikel: <amount-step>

## Version 4.47.0 [2021-04-12]
- Objektbausteine über <attributes>-Knoten automatisch ausleiten?
- C4S_PROCESS_START UND C4S_PROCESS_END resetten, wenn Objekt neu publiziert wurde

## Version 4.46.0 [2021-04-08]
- Refactoring ArticleConfiguration => Configuration
    - event.article-configuration_entity => event.configuration_entity
    - article-configuration.concrete.validator => event.configuration_validator
- Neuer <configuration>-Knoten für ArtikelGruppen

## Version 4.45.0 [2021-03-25]
- getFolderAssetsIds: gibt alle Ordner-IDs zurück, in dem das Asset liegt
- getLocalizedAttributes, setLocalizedAttributes auskommentiert

## Version 4.44.0 [2021-03-23]
- Neue Felder versions_iman
    - C4S_OBJECT_EDITED
    - C4S_PROCESS_START
    - C4S_PROCESS_END

> Plugin reaktivieren

## Version 4.43.0 [2021-03-19]
- Ausleitungskonfiguration: Erlaubte Objekt-Klassen

## Version 4.42.0 [2021-02-24]
- Error-Log enthält VersionID u. ObjectID
- Nur sichtbare Felder am Objektbaustein ausleiten
- Bugix: setUsergroupRights (Countries)

## Version 4.41.0 [2021-02-16]
- Refactoring getCurrentArticleBaseHydrator, getCurrentMaterialBaseHydrator
- Neue Events getCurrentArticleBaseHydrator => 'hydrator.article.event.get.current', getCurrentMaterialBaseHydrator => 'hydrator.material.event.get.current'
- Refactoring getObjectSubscriber()

## Version 4.40.0 [2021-02-04]
- Bugfix: Unveröffentlichte Objekte ausleiten
- kleineres Refactoring (===)

## Version 4.39.0 [2021-02-04]
- Schreibt Fehlermeldungen an das Feld C4S_PROCESS_ERROR_MSG in versions_iman
- Nur veröffentlichte Options über den OptionsProvider anzeigen
- kleineres Refactoring (u.a. Auslagerung setMetaData())

> Plugin reaktivieren

## Version 4.38.0 [2021-01-25]
- CategoryMainEntity und CategorySubEntity verschoben

## Version 4.37.0 [2021-01-22]
- Einführung ObjectBrickAttributesHydrator (dynamische Ausleitung aller Felder über referenzierte Objektbausteine per <attributes>-Knoten)

## Version 4.36.1 [2021-01-19]
- Metadaten: Description und Title angepasst

## Version 4.36.0 [2021-01-19]
- MetaDataEntityTrait für alle Entity-Klassen (Verlagerung in AbstractEntity)

## Version 4.35.1 [2021-01-14]
- Fix parseObjectBrick: LocalizedField auch setzen, wenn Wert NULL

## Version 4.35.0 [2021-01-14]
- CS-Fix
- Attributes für Article
- renewObjectData()
- Daten von Objektbausteinen ermitteln (getObjectBrickValues)

## Version 4.34.1 [2020-12-30]
- Bufix: EntityParser: in_array check $oObject if null

## Version 4.34.0 [2020-12-23]
- Bugfix ChannelRelations
- Betreff Mailversand
- VersionsLoader über vid

## Version 4.33.1 [2020-12-22]
- Bugfix

## Version 4.33.0 [2020-12-22]
- getClassName über Concrete Object auslesen für validator-Event
- Bedingung für setArticleConfigurationEntity() angepasst

## Version 4.32.1 [2020-12-22]
- Parameter $blIsPublished für getObjectIds()

## Version 4.32.0 [2020-12-18]
- getHydratedObjects, addHydratedObject (Umstellung SPRINTIS, RENOLIT notwendig)
- article-type am BaseEntity (Article)

## Version 4.31.0 [2020-12-11]
- Bugfix
- CS-Fix

## Version 4.30.0 [2020-12-11]
- kleinere Anpassungen (Refactoring)
- is-sale für Kategorien
- EventSubscriber für ChannelRelations am Material
- hasConfigArticleType() für ArticleConfiguration. Muss gesetzt sein, für Ausleitung

## Version 4.29.0 [2020-12-08]
- ShopEntity mit Suffix-Parameter
- VariantAttributes (ChannelRelation) initial NULL

## Version 4.28.1 [2020-12-04]
- Fixes

## Version 4.28.0 [2020-12-02]
- Refactoring, CS-Fix

## Version 4.27.1 [2020-11-12]
- Bugfix: addEntity

## Version 4.27.0 [2020-11-12]
- Ausleitung gelöschter Objekte

## Version 4.26.1 [2020-11-05]
- Typo-Fix

## Version 4.26.0 [2020-11-03]
- Ausleitung von Artikeln, wenn zugehöriges Material unveröffentlicht ist (über Plugin-Konfiguration)
- Ausleitung, wenn Objekt unveröffentlicht wird
- FetchMode zum holen der Objekt-Versionen aus versions_iman (FiLo, FiFo, über Plugin-Konfiguration)

> iMan-Integration - Konfiguration speichern

## Version 4.25.0 [2020-10-08]
- Refactoring, TraitHydratorEntities

## Version 4.24.1 [2020-10-01]
- Übernahme aller Routen-Actions im SearchController

## Version 4.24.0 [2020-09-30]
- Überschreiben der Pimcore Search-Controller zur Suche mittels MySql-Like
- Aktivierung über neue Konfiguration "Suche mittels LIKE %...% ausführen?"

## Version 4.23.0 [2020-09-25]
- Ausleitung Article-Configuration
- Refactoring

## Version 4.22.0 [2020-09-22]
- Neues Event: hydrator.<objectclasses>.event.metadata_entity
- Refactoring

## Version 4.21.0 [2020-09-21]
- Nur Eintrag in iman_version erstellen, wenn Objekt veröffentlicht wurde
- Unveröffentlichte Objekte, die der Cron noch nicht abgeholt hat, werden mit Fehler 9 markiert

## Version 4.20.0 [2020-09-11]
- Neues Event: hydrator.article.event.validator

## Version 4.19.0 [2020-09-10]
- VersionValidation angepasst

## Version 4.18.0 [2020-09-09]
- Speichert auch die Object-Klasse in die iman_version

> Plugin neu installieren

## Version 4.17.0 [2020-09-08]
- root-Metadaten bei Kategorie-Ausleitung

## Version 4.16.0 [2020-09-07]
- ArticleGroup: meta-tag

## Version 4.15.0 [2020-08-18]
- Refactoring Main/SubCategory

## Version 4.14.1 [2020-08-18]
- var_dumps entfernt

## Version 4.14.0 [2020-08-18]
- OptionProvider für dynamische Auswahltypen

## Version 4.13.0 [2020-07-03]
- Umstellung $_SESSION auf $this->_oContainer->get('session');

## Version 4.12.1 [2020-07-02]
- Bugfix article.yml

## Version 4.12.0 [2020-07-02]
- Refactoring
- TODO: Umstellung $_SESSION

## Version 4.11.0 [2020-06-25]
- postSave - Versionhandling, wenn Objekt kopiert wurde

## Version 4.10.0 [2020-06-24]
- Bugfix

## Version 4.9.1 [2020-06-23]
- Bugfix

## Version 4.9.0 [2020-06-23]
- Umbenennung C4S-Felder
- Flag an Metadata-Entity: is-deleted, is-first-published

## Version 4.8.0 [2020-06-19]
- Löschen von Objekten
- Refactoring

## Version 4.7.0 [2020-06-19]
- Refactoring

## Version 4.6.0 [2020-06-19]
- Refactoring

## Version 4.5.0 [2020-05-26]
- Refactoring

## Version 4.4.0 [2020-05-15]
- Flag corrupted versions

## Version 4.3.0 [2020-05-14]
- Standardfelder sapMaterial aufgenommen (BaseEntity, ShopEntity)

## Version 4.2.0 [2020-05-13]
- flagVersion
- flagIMan

## Version 4.1.0 [2020-05-13]
- Refactoring Pimcore 6.x

## Version 4.0.0 [2020-05-06]
- Refactoring Pimcore 6.x

## Version 3.0.0 [2020-03-26]
- Ausleitungen werden bereits als "erledigt" geflagt, sobald diese ermittelt sind. Damit soll verhindert werden, dass 
  Nebenläufigkeiten entstehen, die durch zu kurze Cron-Zyklen bzw. lange Abarbeitungszeiten verursacht werden können.
  Erst nach erfolgreichem Schreiben in die Ausleitungsdatei wird das Flag in C4SBLSENDTOIMAN gesetzt.
  => neue Spalte in versions_iman C4SBLINPROCESS
- FileLogger in Hydrator-Klassen nutzbar
- Optimierung bei hinzufügen der Artikel (als Index wird nun die ID verwendet)
- Weitere Log-Einträge hinzugefügt. u.a. Start-/ und Endzeit
  
  > C4S - iManIntegrationBundle neu installieren über "Erweiterungen verwalten"

## Version 2.17.1 [2020-03-18]
- Prüfung ob Methode getItems bei Objektbausteinen existiert

## Version 2.17.0 [2020-03-16]
- Konkatiniert nur, wenn auch Array-Elemente vorhanden sind (Prüfung per count => concatUserGroupRightsBuyable)

## Version 2.16.0 [2020-03-11]
- Send Error-Mail by critical-Level

## Version 2.15.3 [2020-02-24]
- Bugfix "getSubObject" und "getSubObjects"

## Version 2.15.2 [2020-02-24]
- Bugfix "getSubObject"

## Version 2.15.1 [2020-02-24]
- Neue Methode "getSubObject" um nächste Sub-Kategorie eines Artikels zu ermitteln

## Version 2.15.0 [2020-02-21]
- Neue Methode "concatUserGroupRightsBuyable" in den Base-Entities (ArticleGroup, PimArticle, SapArticle)
- BaseEntitySubscriber für ChannelRelations (SapArticle)
- Neue Parser-Methode "getObjectBrickValues"
- Neue Methode "getSubObjects" um alle Sub-Kategorien eines Artikels zu ermitteln

## Version 2.14.0 [2020-02-17]
- Parse ObjectBrick

## Version 2.13.3 [2020-02-14]
- PimArticle (RelationArticles an ArticleGroup)

## Version 2.13.2 [2020-02-12]
- PimArticle (BaseEntity: title, search-keys)

## Version 2.13.1 [2020-02-11]
- PimArticle

## Version 2.13.0 [2020-01-31]
- PimArticle

## Version 2.12.0 [2019-12-10]
- Neue Methode sendErrorMail in Logger

## Version 2.11.0 [2019-12-03]
- Exception-Logging: Eintrag in Anwendungs-Logger und Mail an Debug-Empfänger (wenn DEBUG=true)

## Version 2.10.1 [2019-12-03]
- FileLogger für den Installer entfernt

## Version 2.10.0 [2019-11-29]
- FileLogger

## Version 2.9.0 [2019-11-28]
- Konfiguration über DB-Settings

## Version 2.8.1 [2019-10-30]
- Logging von version-Flagging

## Version 2.8.0 [2019-10-28]
- Short u. Log-Description am SapArticle

## Version 2.7.0 [2019-10-24]
- Ausleitung statusinfo wird über 2. separaten Cron gesteuert
- Logging von weiteren ausleitungsrelevanten Informationen

## Version 2.6.0 [2019-10-15]
- Ausleitung statusinfo
- Logging von ausleitungsrelevanten Informationen

## Version 2.5.0 [2019-10-14]
- Neuer Ausleitungsstatus: 6 (Version not found)

## Version 2.4.0 [2019-10-14]
- Ausleitung Statusinfo

## Version 2.3.0 [2019-10-08]
- Position-Feld für Videos aufgenommen

## Version 2.2.0 [2019-09-26]
- Version in iman_versions schreiben bei Massenausleitung

## Version 2.1.0 [2019-09-24]
- Bugfix: Ausleitungen von Videos (Video_1_ID => Video_1)

## Version 2.0.0 [2019-09-13]
- Ausleitungen können über separate Tabelle abgefragt werden.

## Version 1.7.0 [2019-07-15]
- ArticleGroup => Multi-ID-Field Video

## Version 1.6.0 [2019-07-15]
- Transfer Assets to remote system

## Version 1.5.0 [2019-07-12]
- Bugfix: $oArticleHydrator->hydrate($oSapArticle, "articlegroup");
- Neue Methode: cleanFilePath($sFilePathName) und Refactoring: getClassNameFromFile, getClassNamespaceFromFile, getClassObjectFromFile, getClassFullNameFromFile

## Version 1.4.0 [2019-07-09]
- Limit für Versions-Datensätze über Konfiguration (Default 0 = alle Datensätze)

## Version 1.3.0 [2019-07-04]
- Version nur bei Fehlern vom Type E_ERROR markieren
- Fehler, die nicht vom Fehlertyp: E_(USER_)NOTICE, E_(USER_)WARNING, E_(USER_)DEPRECATED sind, werden geloggt

## Version 1.2.0 [2019-06-20]
- EntityParser: _set-Methode Prüfung auf is_null
- Anpassung Logger

## Version 1.1.0 [2019-06-12]
- Neue Konfiguration (executionTime): Max. Zeit (Sekunden) für das Auslesen eines Version-Datensatzes (bei Überschreitung wird der Datensatz als Fehler (5) gekennzeichnet und nicht wieder ausgeleitet)
- setFailedFlag => 5, wenn Maximum execution time (executionTime) bei Ausleitung einer Version überschritten wird
- Felder für base-data (getUsergroupRightsBuyable, getUsergroupRightsViewable) für abhängige SapArticle am SapMaterial

## Version 1.0.0 [2019-05-27]
- set_time_limit(20) für das hydrisieren eines Version-Datensatzes
- register_shutdown_function - Fehlerbehandlung bei Exception
- Mail-Versand bei Exception

## Version 0.61.0 [2019-05-17]
- Mehrsprachige Videos

## Version 0.60.3 [2019-04-24]
- iMan-Logger, Status "info"
- Logging, wenn Saparticle nicht am Shop hängt

## Version 0.60.2 [2019-04-24]
- iMan-Logger, wenn Response erfolgreich

## Version 0.60.1 [2019-04-24]
- iMan-Logger, wenn Response erfolgreich

## Version 0.60.0 [2019-04-24]
- Anpassungen iMan-Response

## Version 0.59.0 [2019-04-24]
- Subscriber für FileWriter:write()

## Version 0.58.0 [2019-04-24]
- Pfad für Ausleitungsdateien konfigurierbar

## Version 0.57.2 [2019-04-05]
- return-Wert (bool) getEntityValue rausgenommen

## Version 0.57.1 [2019-03-27]
- setProcessType => sapmaterial
- PimRequest => type

## Version 0.57.0 [2019-03-12]
- getChildren() => unpublished = true
- Multiselect-Werte am Entity setzen, auch wenn keine Werte selektiert wurden (leerer String)

## Version 0.56.0 [2019-03-12]
- Tool::getRootCategory => Tool::getRootObject
- EntityParser->_setEntityValue() => case "multiselect"
- ArticleGroup: usergroup-rights-buyable, usergroup-rights-viewable
- SapArticle, wenn keine Variante: usergroup-rights-buyable, usergroup-rights-viewable

## Version 0.55.0 [2019-03-06]
- LocalizedValues => array
- webserviceUrl: <empty>

## Version 0.54.2 [2019-03-01]
- ProgressBar

## Version 0.54.1 [2019-02-28]
- hasChannelRelations
- Refactoring

## Version 0.54.0 [2019-02-27]
- Refactoring

## Version 0.53.1 [2019-02-22]
- Bugfix: aetSalesUnit => setSalesUnit

## Version 0.53.0 [2019-02-22]
- ArtikelGruppe

## Version 0.52.2 [2019-02-21]
- Nach Speichern der Konfiguration Cache löschen

## Version 0.52.1 [2019-02-18]
- Konfiguration Webservice iMan

## Version 0.52.0 [2019-02-16]
- Channel Relations
- Refactoring

## Version 0.51.0 [2019-02-14]
- Refactoring: ArticleGroups

## Version 0.50.0 [2019-02-13]
- setFailed (2|3|4)

## Version 0.49.0 [2019-02-13]
- Refactoring

## Version 0.48.1 [2019-02-12]
- flagVersion: true // Default

## Version 0.48.0 [2019-02-12]
- Refactoring

## Version 0.47.0 [2019-02-12]
- Refactoring

## Version 0.46.0 [2019-02-11]
- Refactoring
- Level Kategorie

## Version 0.45.1 [2019-02-11]
- Bugfix: Duplicate Kategorien

## Version 0.45.0 [2019-02-11]
- Refactoring
- Bugfix: Duplicate Articles

## Version 0.44.0 [2019-02-11]
- Refactoring

## Version 0.43.0 [2019-02-08]
- Refactoring

## Version 0.42.1 [2019-02-08]
- Bugfix: setEntityValue

## Version 0.42.0 [2019-02-08]
- Refactoring

## Version 0.41.0 [2019-02-07]
- Refactoring

## Version 0.40.0 [2019-02-07]
- Refactoring

## Version 0.39.0 [2019-02-07]
- Refactoring

## Version 0.38.1 [2019-02-06]
- Bugfix: getIsStock => getInStock

## Version 0.38.0 [2019-02-05]
- Refactoring
- Article: is-new, is-not-buyable, is-searchable, is-hidden

## Version 0.37.0 [2019-02-05]
- Refactoring
- FileWriterEntity => BatchProcess
- CrossSelling => Article
- Quality, DesignGenre, Dekoverbundpartner => Base

## Version 0.36.0 [2019-02-05]
- Refactoring
- FileWriterEntity
- Bugfix: Material am Artikel

## Version 0.35.0 [2019-02-05]
- Refactoring
- Bugfix: Quality, DesignGenre, Dekoverbundpartner

## Version 0.34.0 [2019-02-05]
- Refactoring
- Article Configuration

## Version 0.33.0 [2019-02-04]
- Refactoring

## Version 0.32.0 [2019-02-04]
- Refactoring
- Varianten

## Version 0.31.0 [2019-02-04]
- Refactoring
- Varianten

## Version 0.30.0 [2019-02-01]
- Refactoring

## Version 0.29.0 [2019-02-01]
- Refactoring
- Artikelausleitung (saparticle, pimarticle, articlegroup)

## Version 0.28.0 [2019-01-29]
- Refactoring
- Artikelausleitung (saparticle, pimarticle, articlegroup)

## Version 0.27.0 [2019-01-24]
- Refactoring

## Version 0.26.1 [2019-01-23]
- getValue (image, document) cast to string

## Version 0.26.0 [2019-01-22]
- clone Categories
- addLocalizedFile => Thumb

## Version 0.25.0 [2019-01-22]
- Refactoring

## Version 0.24.0 [2019-01-22]
- Refactoring

## Version 0.23.0 [2019-01-21]
- MetaDataEntity: setClass, getClass
- Remove Filter-Attributes

## Version 0.22.1 [2019-01-21]
- Shop-Entity: getIsShopMandatoryRelevant_md

## Version 0.22.0 [2019-01-18]
- VkBur, VkGrp
- Änderung in _addLocalizedField: Feld nicht ausleiten, wenn visible

## Version 0.21.0 [2019-01-18]
- Refactoring

## Version 0.20.0 [2019-01-18]
- Refactoring

## Version 0.19.0 [2019-01-17]
- Refactoring

## Version 0.18.2 [2019-01-17]
- Dateinamen mit Timestamp (sapmaterial_1547711950.xml)

## Version 0.18.1 [2019-01-16]
- Anpassung Entity-Index

## Version 0.18.0 [2019-01-16]
- Refactoring

## Version 0.17.0 [2019-01-16]
- Refactoring

## Version 0.16.0 [2019-01-16]
- Tag v.0.16.0 gelöscht

## Version v.0.16.0 [2019-01-16]
- Refactoring

## Version 0.15.1 [2019-01-10]
- Bugfix: DynamicDropdown

## Version 0.15.0 [2019-01-10]
- Refactoring

## Version 0.14.0 [2019-01-09]
- Refactoring

## Version 0.13.2 [2019-01-08]
- Refactoring

## Version 0.13.1 [2019-01-07]
- //use FileWriterEntityTrait; => AbstractCategoryEntity.php

## Version 0.13.0 [2019-01-07]
- $oSerializerContext->setSerializeNull(false)
- Neuer Konfigurationsparameter: writeAllEntityAttributes

## Version 0.12.1 [2019-01-04]
- Anpassungen addLocalizedValue

## Version 0.12.0 [2019-01-04]
- Refactoring

## Version 0.11.1 [2019-01-04]
- Refactoring

## Version 0.11.0 [2019-01-02]
- Refactoring

## Version 0.10.0 [2019-01-01]
- Refactoring

## Version 0.9.0 [2018-12-21]
- Refactoring

## Version 0.8.1 [2018-12-20]
- Refactoring

## Version 0.8.0 [2018-12-19]
- Pimcore-Object Material => SapMaterial
- Refactoring
- Services => public

## Version 0.7.1 [2018-12-19]
- Anpassung Entity Metadaten

## Version 0.7.0 [2018-12-19]
- Refactoring
- EventDispatcher: HydratorEvent

## Version 0.6.0 [2018-12-18]
- Refactoring

## Version 0.5.2 [2018-12-17]
- Refactoring

## Version 0.5.1 [2018-12-17]
- Refactoring
- max-amount

## Version 0.5.0 [2018-12-12]
- JMS/Serializer 1.13.*

## Version 0.4.0 [2018-12-12]
- Refactoring
- JMS/Serializer 2.*

## Version 0.3.0 [2018-12-12]
- Refactoring

## Version 0.2.2 [2018-12-11]
- Refactoring _concatMasterEntityWithCustomizedEntity

## Version 0.2.1 [2018-12-11]
- ThicknessValue, ThicknessUnit raus
- MaterialStatusGlobal => StatusGlobal

## Version 0.2.0 [2018-12-07]
- No shared srvices: shared: false
- getTitle, getDescription, getLongDescription

## Version 0.1.2 [2018-12-07]
- getThumb, getIcon

## Version 0.1.1 [2018-12-05]
- Anpassung Sprachdatei

## Version 0.1.0 [2018-11-30]
- Refactoring
- Methoden über iManIntegration<KUNDE>Bundle überladen

## Version 0.0.19 [2018-11-16]
- Refactoring

## Version 0.0.18 [2018-11-16]
- Refactoring

## Version 0.0.17 [2018-11-16]
- Refactoring

## Version 0.0.16 [2018-11-16]
- Konfiguration über GUI

## Version 0.0.15 [2018-11-16]
- Konfiguration über GUI

## Version 0.0.14 [2018-11-14]
- Refactoring

## Version 0.0.13 [2018-11-13]
- Refactoring

## Version 0.0.12 [2018-11-09]
- Refactoring

## Version 0.0.11 [2018-11-08]
- Refactoring

## Version 0.0.10 [2018-11-08]
- Refactoring

## Version 0.0.9 [2018-11-07]
- Refactoring + AbstractEntity + MetaData + UpSelling

## Version 0.0.8 [2018-11-07]
- Refactoring + SeoEntity

## Version 0.0.7 [2018-11-02]
- Refactoring

## Version 0.0.6 [2018-11-02]
- Refactoring

## Version 0.0.5 [2018-11-02]
- Refactoring

## Version 0.0.4 [2018-11-02]
- Refactoring

## Version 0.0.3 [2018-11-01]
- Dateien verschoben

## Version 0.0.2 [2018-11-01]
- composer.json

## Version 0.0.1 [2018-11-01]
- Changelog, Versionierung