public function getMontantCompte(PersistentCollection $transactions) { $total = 0; ### PENSER A METTRE LES TRANSACTIONS EN ORDRE DE DATE foreach (array_reverse($transactions->toArray(), true) as $key => $tra) { $type = $tra->getType(); if ($type == "deb") { $total -= $tra->getMontant(); } elseif ($type == "cre") { $total += $tra->getMontant(); } else { // $type == "aju" && $type == "ini" $total = $tra->getMontant(); } } return $total; }
/** * @param PersistentCollection $collection */ protected function calculateCollectionData(PersistentCollection $collection) { $ownerEntity = $collection->getOwner(); $ownerEntityClassName = $this->getEntityClassName($ownerEntity); if ($this->checkAuditable($ownerEntityClassName)) { $meta = $this->getConfig($ownerEntityClassName); $collectionMapping = $collection->getMapping(); if (isset($meta->propertyMetadata[$collectionMapping['fieldName']])) { $method = $meta->propertyMetadata[$collectionMapping['fieldName']]->method; // calculate collection changes $newCollection = $collection->toArray(); $oldCollection = $collection->getSnapshot(); $oldData = array_reduce($oldCollection, function ($result, $item) use($method) { return $result . ($result ? ', ' : '') . $item->{$method}(); }); $newData = array_reduce($newCollection, function ($result, $item) use($method) { return $result . ($result ? ', ' : '') . $item->{$method}(); }); $entityIdentifier = $this->getEntityIdentifierString($ownerEntity); $fieldName = $collectionMapping['fieldName']; $this->collectionLogData[$ownerEntityClassName][$entityIdentifier][$fieldName] = array('old' => $oldData, 'new' => $newData); } } }
/** * @param PersistentCollection $collection */ protected function calculateCollectionData(PersistentCollection $collection) { $ownerEntity = $collection->getOwner(); if ($this->hasConfig(get_class($ownerEntity))) { $meta = $this->getConfig(get_class($ownerEntity)); $collectionMapping = $collection->getMapping(); if (isset($meta->propertyMetadata[$collectionMapping['fieldName']])) { $method = $meta->propertyMetadata[$collectionMapping['fieldName']]->method; $newCollection = $collection->toArray(); $oldCollection = $collection->getSnapshot(); $oldData = array_reduce($oldCollection, function ($result, $item) use($method) { return $result . ($result ? ', ' : '') . $item->{$method}(); }); $newData = array_reduce($newCollection, function ($result, $item) use($method) { return $result . ($result ? ', ' : '') . $item->{$method}(); }); $this->collectionLogData[$collectionMapping['fieldName']] = array('old' => $oldData, 'new' => $newData); } } }
/** * @param PersistentCollection $modelData * @param array $requestData * @return array */ private function getPreparedCollection(PersistentCollection $modelData, array $requestData) { $modelPositions = array_flip(array_map(function ($item) { if (method_exists($item, 'getId')) { return $item->getId(); } }, $modelData->toArray())); $items = []; $newItems = []; foreach ($requestData as $item) { $itemId = isset($item['id']) ? $item['id'] : null; if ($itemId) { $modelPosition = isset($modelPositions[$itemId]) ? $modelPositions[$itemId] : null; if ($modelPosition !== null) { $items[$modelPosition] = $item; } } else { $newItems[] = $item; } } foreach ($newItems as $newItem) { $items[] = $newItem; } return $items; }