Git Repository Public Repository

namibia

URLs

Copy to Clipboard
 
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
namespace Stock\Utility;

use \Doctrine\ORM\EntityManager;
use Utility\Debug;

class ImportUtility
{

	/**
	 * @var \Doctrine\ORM\EntityManager
	 */
	protected $em;


	/**
	 * @param \Doctrine\ORM\EntityManager $em
	 */
	public function __construct(EntityManager $em)
	{
		$this->em = $em;
	}

	/**
	 * Retrieve database table entry id from search parameters.
	 * @param string $entityName
	 * @param array  $search
	 * @return mixed
	 */
	public function getId($entityName, $search)
	{
		$item = $this->em
			->getRepository($entityName)
			->findOneBy($search);
		return !is_null($item)
			? $item->id
			: false;
	}

	/**
	 * Retrieve database table entry from search parameters.
	 * @param string $entityName
	 * @param array  $search
	 * @return mixed
	 */
	public function getEntry($entityName, $search)
	{
		$item = $this->em
			->getRepository($entityName)
			->findOneBy($search);
		return !is_null($item)
			? $item
			: false;
	}

	/**
	 * Create database table entry.
	 * @param string $entityName
	 * @param array  $data
	 * @return mixed
	 */
	public function createEntry($entityName, array $data)
	{
		$item = new $entityName();
		//if($item instanceof \Stock\Entity\Make) {Debug::errorLog("entity", 'stock\entity\make');}
		$item->fromArray($data);
		$this->em->persist($item);
		$this->em->flush();
		return $item->id;
	}

	/**
	 * Update database table entry.
	 * @param string  $entityName
	 * @param integer $id
	 * @param array   $data
	 */
	public function updateEntry($entityName, $id, array $data)
	{
		$this->em
			->getRepository($entityName)
			->find($id)
			->fromArray($data);
		$this->em->flush();
	}

	/**
	 * Establish new synchronization version to use.
	 * @param  string $tableName
	 * @return integer
	 */
	public function getLatestSynchVersion($tableName)
	{
		$versions = $this->em->createQuery(
			"SELECT MAX(versionedTable.createVersion) AS createVersion,"
			. " MAX(versionedTable.updateVersion) AS updateVersion "
			. "FROM $tableName versionedTable"
		)
			->getScalarResult();
		return $versions[0]['createVersion'] > $versions[0]['updateVersion']
			? (int)$versions[0]['createVersion']
			: (int)$versions[0]['updateVersion'];
	}

}

Commits for namibia/module/Stock/src/Stock/Utility/ImportUtility.php

Diff revisions: vs.
Revision Author Commited Message
df0489 ... Mark Fri 14 Oct, 2016 10:01:00 +0000

initial commit