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;
 }
Beispiel #2
0
 /**
  * @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;
 }