Browse code

Remove deprecated fields in queries

Benjamin Roth authored on07/09/2015 15:08:32
Showing1 changed files
... ...
@@ -33,7 +33,7 @@ class VoucherHandler extends Voucher
33 33
 	{
34 34
 		$this->oxDB = Voucher::getOxDbInstance();
35 35
 
36
-		$objSQL = $this->oxDB->prepare("SELECT vs.oxid as 'OXSERIEID', vs.OXSERIENR, vs.OXSERIEDESCRIPTION, vs.OXDISCOUNT AS 'OXSERIEDISCOUNT', vs.OXSTARTDATE, vs.OXRELEASEDATE, UNIX_TIMESTAMP(vs.OXBEGINDATE) as 'OXBEGINDATE', UNIX_TIMESTAMP(vs.OXENDDATE) as 'OXENDDATE', v.OXID, UNIX_TIMESTAMP(v.OXDATEUSED) as 'OXDATEUSED', v.OXORDERID, v.OXUSERID, v.OXVOUCHERNR, v.OXDISCOUNT FROM oxvouchers as v, oxvoucherseries as vs WHERE vs.OXID = v.OXVOUCHERSERIEID AND v.OXID = ?");
36
+		$objSQL = $this->oxDB->prepare("SELECT vs.oxid as 'OXSERIEID', vs.OXSERIENR, vs.OXSERIEDESCRIPTION, vs.OXDISCOUNT AS 'OXSERIEDISCOUNT', UNIX_TIMESTAMP(vs.OXBEGINDATE) as 'OXBEGINDATE', UNIX_TIMESTAMP(vs.OXENDDATE) as 'OXENDDATE', v.OXID, UNIX_TIMESTAMP(v.OXDATEUSED) as 'OXDATEUSED', v.OXORDERID, v.OXUSERID, v.OXVOUCHERNR, v.OXDISCOUNT FROM oxvouchers as v, oxvoucherseries as vs WHERE vs.OXID = v.OXVOUCHERSERIEID AND v.OXID = ?");
37 37
 
38 38
 		$objResult = $objSQL->execute($strOxId);
39 39
 
Browse code

Initial commit

Benjamin Roth authored on07/09/2015 15:02:25
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,129 @@
1
+<?php
2
+
3
+/**
4
+ * eSales Media oxVoucher for Contao Open Source CMS
5
+ *
6
+ * Copyright (c) 2015 eSales Media
7
+ *
8
+ * @author  Benjamin Roth [benjamin@esales-media.de]
9
+ * @license proprietary
10
+ */
11
+
12
+namespace eSM_oxVoucher;
13
+
14
+class VoucherHandler extends Voucher
15
+{
16
+
17
+	/**
18
+	 * Oxid Database Object
19
+	 * @var \Database|null
20
+	 */
21
+	protected $oxDB = null;
22
+
23
+	/**
24
+	 * voucher database result array
25
+	 * @var Array
26
+	 */
27
+	protected $arrVoucher = array();
28
+
29
+	/**
30
+	 * Import Oxid database instance
31
+	 */
32
+	public function __construct($strOxId)
33
+	{
34
+		$this->oxDB = Voucher::getOxDbInstance();
35
+
36
+		$objSQL = $this->oxDB->prepare("SELECT vs.oxid as 'OXSERIEID', vs.OXSERIENR, vs.OXSERIEDESCRIPTION, vs.OXDISCOUNT AS 'OXSERIEDISCOUNT', vs.OXSTARTDATE, vs.OXRELEASEDATE, UNIX_TIMESTAMP(vs.OXBEGINDATE) as 'OXBEGINDATE', UNIX_TIMESTAMP(vs.OXENDDATE) as 'OXENDDATE', v.OXID, UNIX_TIMESTAMP(v.OXDATEUSED) as 'OXDATEUSED', v.OXORDERID, v.OXUSERID, v.OXVOUCHERNR, v.OXDISCOUNT FROM oxvouchers as v, oxvoucherseries as vs WHERE vs.OXID = v.OXVOUCHERSERIEID AND v.OXID = ?");
37
+
38
+		$objResult = $objSQL->execute($strOxId);
39
+
40
+		if ($objResult->numRows)
41
+		{
42
+			$this->arrVoucher = $objResult->row();
43
+		}
44
+
45
+		parent::__construct();
46
+	}
47
+
48
+	function __get($name)
49
+	{
50
+		if ($this->arrVoucher[strtoupper($name)])
51
+		{
52
+			return $this->arrVoucher[strtoupper($name)];
53
+		}
54
+		return null;
55
+	}
56
+
57
+
58
+	public function isValid()
59
+	{
60
+		if ((is_null($this->oxorderid) || $this->oxorderid == '') && (is_null($this->oxdateused)) AND $this->getRemainingVal() > 0 && $this->isValidTime())
61
+		{
62
+			return true;
63
+		}
64
+		return false;
65
+	}
66
+
67
+	public function isValidTime()
68
+	{
69
+		$Today = new \Date();
70
+		if ((is_null($this->oxbegindate) || $this->oxbegindate <= $Today->tstamp) && (is_null($this->oxenddate) || $this->oxenddate >= $Today->tstamp))
71
+		{
72
+			return true;
73
+		}
74
+		return false;
75
+	}
76
+
77
+
78
+	public function getUsedVal()
79
+	{
80
+		// Voucher remaining value
81
+		$objSQL = $this->oxDB->prepare("SELECT SUM(OXDISCOUNT) as 'USEDDISCOUNT' FROM oxvouchers_usage WHERE OXDATEUSED > 0 AND OXVOUCHERID = ?");
82
+		$objResult = $objSQL->execute($this->oxid);
83
+
84
+		if ($objResult->numRows < 1)
85
+		{
86
+			$fUsedVal = 0.00;
87
+		} else {
88
+			$fUsedVal = floatval($objResult->USEDDISCOUNT);
89
+		}
90
+
91
+		return $fUsedVal;
92
+	}
93
+
94
+	public function getRemainingVal()
95
+	{
96
+		return $this->oxseriediscount - $this->getUsedVal();
97
+	}
98
+
99
+	public function deductValue($fVal)
100
+	{
101
+		$fRemainingVal = $this->getRemainingVal();
102
+		if ($fVal > $fRemainingVal)
103
+		{
104
+			$fVal = $fRemainingVal;
105
+		}
106
+
107
+		$arrData = array
108
+		(
109
+			'OXVOUCHERID'   => \Input::post('OXID'),
110
+			'OXDATEUSED'    => date('Y-m-d'),
111
+			'OXORDERID'     => '_BARVERKAUF_',
112
+			'OXDISCOUNT'    => $fVal,
113
+		);
114
+		$objSQL = $this->oxDB->prepare("INSERT INTO oxvouchers_usage %s");
115
+		$objSQL->set($arrData)->execute();
116
+
117
+		if ($fVal == $fRemainingVal)
118
+		{
119
+			$arrData = array
120
+			(
121
+				'OXDATEUSED'    => date('Y-m-d'),
122
+				'OXORDERID'     => '_BARVERKAUF_',
123
+				'OXDISCOUNT'    => $this->oxseriediscount,
124
+			);
125
+			$objSQL = $this->oxDB->prepare("UPDATE oxvouchers %s WHERE OXID = ?");
126
+			$objSQL->set($arrData)->execute($this->oxid);
127
+		}
128
+	}
129
+}
0 130
\ No newline at end of file