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,161 @@
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 ModuleTicketDetails extends ModuleVoucher
15
+{
16
+	/**
17
+	 * Template
18
+	 * @var string
19
+	 */
20
+	protected $strTemplate = 'mod_oxticket_details';
21
+
22
+	protected $blnHide = false;
23
+
24
+	/**
25
+	 * Parse the template
26
+	 * @return string
27
+	 */
28
+	public function generate()
29
+	{
30
+		if (TL_MODE == 'BE')
31
+		{
32
+			/** @var \BackendTemplate|object $objTemplate */
33
+			$objTemplate = new \BackendTemplate('be_wildcard');
34
+
35
+			$objTemplate->wildcard = '### ' . utf8_strtoupper($GLOBALS['TL_LANG']['FMD']['oxticket_details'][0]) . ' ###';
36
+			$objTemplate->title = $this->headline;
37
+			$objTemplate->id = $this->id;
38
+			$objTemplate->link = $this->name;
39
+			$objTemplate->href = 'contao/main.php?do=themes&amp;table=tl_module&amp;act=edit&amp;id=' . $this->id;
40
+
41
+			return $objTemplate->parse();
42
+		}
43
+
44
+		$this->importOxDbInstance();
45
+
46
+		$strBuffer = parent::generate();
47
+
48
+		if (!$this->blnHide)
49
+		{
50
+			return $strBuffer;
51
+		}
52
+	}
53
+
54
+
55
+	/**
56
+	 * Compile the current element
57
+	 */
58
+	protected function compile()
59
+	{
60
+		if (\Input::get('ticket_select') || \Input::post('FORM_SUBMIT') == 'eSM_oxTicket_details')
61
+		{
62
+			$objSQL = $this->oxDB->prepare("SELECT OXID FROM oxarticles WHERE OXID = ?");
63
+			if (\Input::post('FORM_SUBMIT') == 'eSM_oxTicket_details')
64
+			{
65
+				$objTicket = $objSQL->execute(strtolower(\Input::post('OXID')));
66
+			} else
67
+			{
68
+				$objTicket = $objSQL->execute(strtolower(\Input::get('ticket_select')));
69
+			}
70
+
71
+			if ($objTicket->numRows < 1 || $objTicket->numRows > 1)
72
+			{
73
+				if (\Input::get('ticket_select'))
74
+				{
75
+					$this->Template->noTicket = sprintf($GLOBALS['TL_LANG']['MSC']['oxTicket']['noTicket'], \Input::get('ticket_select'));
76
+				}
77
+				return;
78
+			}
79
+
80
+			$objTicket = new TicketHandler($objTicket->OXID);
81
+
82
+
83
+			// Update voucher
84
+			if (\Input::post('FORM_SUBMIT') == 'eSM_oxTicket_details')
85
+			{
86
+
87
+				if (!\Validator::isNatural(\Input::post('ticket_sellamount')) || \Input::post('ticket_sellamount') < 1)
88
+				{
89
+					$strMessage = $GLOBALS['TL_LANG']['MSC']['oxTicket']['not_a_natural'];
90
+					$strType = 'error';
91
+				} else if (\Input::post('ticket_sellamount') > $objTicket->oxstock) {
92
+					$strMessage = sprintf($GLOBALS['TL_LANG']['MSC']['oxTicket']['stock_is_less'],\Input::post('ticket_sellamount'));
93
+					$strType = 'error';
94
+				} else {
95
+					$objTicket->reduceStock(\Input::post('ticket_sellamount'));
96
+					$strMessage = sprintf($GLOBALS['TL_LANG']['MSC']['oxTicket']['ticket_confirm'],\Input::post('ticket_sellamount'),$objTicket->oxstock);
97
+					$strType = 'confirm';
98
+				}
99
+
100
+				$this->setMessage($strMessage, $strType);
101
+				$this->reload();
102
+			}
103
+
104
+			// Template Vars
105
+			$blnInvalid = false;
106
+			if (!$objTicket->isBuyable())
107
+			{
108
+				$blnInvalid = true;
109
+				if ($objTicket->oxstock <= 0)
110
+				{
111
+					$strInvalid = $GLOBALS['TL_LANG']['MSC']['oxTicket']['outofstock'];
112
+				} else if (!$objTicket->isActiveTime()) {
113
+					$strInvalid = $GLOBALS['TL_LANG']['MSC']['oxTicket']['notActiveTime'];
114
+				} else if (!$objTicket->oxactive) {
115
+					$strInvalid = $GLOBALS['TL_LANG']['MSC']['oxTicket']['notActive'];
116
+				} else {
117
+					$strInvalid = $GLOBALS['TL_LANG']['MSC']['oxTicket']['notBuyable'];
118
+				}
119
+			}
120
+			$arrData = array
121
+			(
122
+				'titleDetails'      => $GLOBALS['TL_LANG']['MSC']['oxTicket']['detailsTitle'],
123
+				'titleSell'         => $GLOBALS['TL_LANG']['MSC']['oxTicket']['sellTitle'],
124
+
125
+				'lblTitle'          => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblTitle'],
126
+				'lblShortDesc'      => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblShortDesc'],
127
+				'lblActiveFrom'     => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblActiveFrom'],
128
+				'lblActiveTo'       => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblActiveTo'],
129
+				'lblSellTo'         => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblSellTo'],
130
+				'lblStock'          => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblStock'],
131
+				'lblPrice'          => $GLOBALS['TL_LANG']['MSC']['oxTicket']['lblPrice'],
132
+
133
+				'ticketOxid'        => $objTicket->oxid,
134
+				'ticketTitle'       => ($objTicket->isVariant() ? $objTicket->oxparenttitle.' '.$objTicket->oxvarselect : $objTicket->oxtitle),
135
+				'ticketShortDesc'   => ($objTicket->isVariant() && !$objTicket->oxshortdesc ? $objTicket->oxparentshortdesc : $objTicket->oxshortdesc),
136
+				'activeFrom'        => (!is_null($objTicket->oxactivefrom) ? \Date::parse(\Date::getNumericDatimFormat(),$objTicket->oxactivefrom) : ''),
137
+				'activeTo'          => (!is_null($objTicket->oxactiveto) ? \Date::parse(\Date::getNumericDatimFormat(),$objTicket->oxactiveto) : ''),
138
+				'sellTo'            => (!is_null($objTicket->oxesselluntil) ? \Date::parse(\Date::getNumericDatimFormat(),$objTicket->oxesselluntil) : ''),
139
+				'ticketStock'       => $objTicket->oxstock,
140
+				'ticketPrice'       => $this->getFormattedNumber($objTicket->oxprice),
141
+
142
+				'submitLabel'       => $GLOBALS['TL_LANG']['MSC']['oxTicket']['sellSubmitLabel'],
143
+				'valueLabel'        => $GLOBALS['TL_LANG']['MSC']['oxTicket']['valueLabel'],
144
+
145
+				'invalid'           => $blnInvalid,
146
+				'invalidStatus'     => $strInvalid,
147
+
148
+				'messages'          => $this->getMessages(),
149
+			);
150
+
151
+			$this->Template->setData($arrData);
152
+		} else
153
+		{
154
+
155
+			$this->blnHide = true;
156
+		}
157
+
158
+
159
+	}
160
+
161
+}
0 162
\ No newline at end of file