2 namespace Stock\Utility;
4 use \Doctrine\ORM\EntityManager;
11 * @var \Doctrine\ORM\EntityManager
17 * @param \Doctrine\ORM\EntityManager $em
19 public function __construct(EntityManager $em)
25 * Retrieve database table entry id from search parameters.
26 * @param string $entityName
27 * @param array $search
30 public function getId($entityName, $search)
33 ->getRepository($entityName)
35 return !is_null($item)
41 * Retrieve database table entry from search parameters.
42 * @param string $entityName
43 * @param array $search
46 public function getEntry($entityName, $search)
49 ->getRepository($entityName)
51 return !is_null($item)
57 * Create database table entry.
58 * @param string $entityName
62 public function createEntry($entityName, array $data)
64 $item = new $entityName();
65 //if($item instanceof \Stock\Entity\Make) {Debug::errorLog("entity", 'stock\entity\make');}
66 $item->fromArray($data);
67 $this->em->persist($item);
73 * Update database table entry.
74 * @param string $entityName
78 public function updateEntry($entityName, $id, array $data)
81 ->getRepository($entityName)
88 * Establish new synchronization version to use.
89 * @param string $tableName
92 public function getLatestSynchVersion($tableName)
94 $versions = $this->em->createQuery(
95 "SELECT MAX(versionedTable.createVersion) AS createVersion,"
96 . " MAX(versionedTable.updateVersion) AS updateVersion "
97 . "FROM $tableName versionedTable"
100 return $versions[0]['createVersion'] > $versions[0]['updateVersion']
101 ? (int)$versions[0]['createVersion']
102 : (int)$versions[0]['updateVersion'];