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
<?php
namespace PriceGuide\Service;



/**
 * Manage Offer data.
 * @author andre.fourie
 */
class Offer extends \PriceGuide\DataBin\Offer
{


	/**
	 * ExecuteAfter: Create, Update.
	 * Change job status if needed and update stock entry with offer data.
	 * @param array $meta
	 * @param object|null $jobRecord
	 * @param object|null $record
	 * @param \Workspace\Utility\ServiceInputParams $contract
	 * @return array
	 */
	public function updateStatusAndStock($meta, $jobRecord, $record, \Workspace\Utility\ServiceInputParams $contract)
	{
		#-> State change on first offer received.
		('Open4Offers' == $jobRecord->jobState)
			&& $this->workflowNode->changeState('This.UpdateableOffers');

		#-> Get offer statistics.
		$stats = $this->em->createQuery(
				 'SELECT COUNT(offer.id) AS numOffres, MAX(offer.amount) AS maxOffer '
				.'FROM \PriceGuide\Entity\Offer offer '
				.'WHERE IDENTITY(offer.priceGuideStock) = :jobId'
				)
				->setParameter('jobId', $jobRecord->id)
				->getSingleResult();

		#-> Update stock item with statistics.
		$stockService = new \Stock\Service\Stock();
		$stockService->setWorkflow(new \Stock\Workflow());
		$stockService->update($jobRecord->stock->id, array(
				'numberOfOffers' => $stats['numOffres'],
				'highestOffer'   => $stats['maxOffer']
		));
	}

	/**
	 * ExecuteAfter: Archive.
	 * Change status to Archived.
	 * @param array $meta
	 * @param object|null $jobRecord
	 * @param object|null $record
	 * @param \Workspace\Utility\ServiceInputParams $contract
	 * @return array
	 */
	public function archive($meta, $jobRecord, $record, \Workspace\Utility\ServiceInputParams $contract)
	{
		#-> Change status of offer.
		$record->previousStatus = $record->status;
		$record->status = 'Archived';
		$this->em->flush();
	}

	/**
	 * ExecuteAfter: Unarchive.
	 * Change status to previous status.
	 * @param array $meta
	 * @param object|null $jobRecord
	 * @param object|null $record
	 * @param \Workspace\Utility\ServiceInputParams $contract
	 * @return array
	 */
	public function unarchive($meta, $jobRecord, $record, \Workspace\Utility\ServiceInputParams $contract)
	{
		#-> Change status of offer.
		$record->status = $record->previousStatus;
		$record->previousStatus = 'Archived';
		$this->em->flush();
	}



}

Commits for namibiamodule/PriceGuide/src/PriceGuide/Service/Offer.php

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

initial commit