Subversion-Projekte lars-tiefland.ci

Revision

Revision 1995 | Revision 2002 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
514 lars 1
<?php
2
 
3
/**
4
 * @author Lars Tiefland
5
 * @copyright 2016
6
 */
7
 
520 lars 8
/**
9
 * Order
10
 *
11
 * Abwicklung des Bestellvorgangs
12
 * Prüfung der einzelnen Formularfelder
13
 *
525 lars 14
 * @package WebanOS CI
15
 * @author Lars Tiefland
16
 * @copyright 2016
17
 * @version $Id: Order.php 1996 2017-02-01 19:37:50Z lars $
520 lars 18
 * @access public
19
 */
514 lars 20
class Order extends CI_Controller
21
{
520 lars 22
	/**
23
	 * Order::__construct()
24
	 *
25
	 * @return
26
	 */
514 lars 27
	public function __construct()
28
	{
29
		parent::__construct();
688 lars 30
		if (!isset($_SESSION['SHOP']['buy']['Persdata']))
31
		{
32
			$_SESSION['SHOP']['buy']['Persdata'] = array();
33
		}
34
		if (!isset($_SESSION['SHOP']['BASKET']))
35
		{
36
			$_SESSION['SHOP']['BASKET'] = array();
37
		}
38
 
514 lars 39
		$GLOBALS['order_db'] = $this->load->database('order_db', TRUE);
40
		$GLOBALS['db_red'] = $this->load->database('db_red', TRUE);
575 lars 41
		$anreden = array(
576 lars 42
			$GLOBALS['langstrings']['buy']['mr'] => $GLOBALS['langstrings']['buy']['mr'],
43
			$GLOBALS['langstrings']['buy']['mrs'] => $GLOBALS['langstrings']['buy']['mrs'],
575 lars 44
			);
45
		$this->smarty->assign('anreden', $anreden);
514 lars 46
		$this->load->model('Order_model', 'order');
675 lars 47
		$this->load->model('artikel_model', 'artikel');
514 lars 48
		$versand_laender = getVersandLaender();
49
		$this->smarty->assign('Laender', $versand_laender);
50
	}
51
 
520 lars 52
	/**
53
	 * Order::index()
54
	 *
55
	 * @return
56
	 */
684 lars 57
	public function index($bStep = 1)
514 lars 58
	{
712 lars 59
		$thirdPartyMethods = array();
514 lars 60
		$step = $this->input->post('step');
61
		if (!$step)
62
		{
684 lars 63
			$step = $bStep;
514 lars 64
		}
690 lars 65
		$this->update_versand();
646 lars 66
		switch ($this->input->post('action'))
514 lars 67
		{
646 lars 68
			case "Persdata":
674 lars 69
				$req_error = true;
641 lars 70
				if ($this->input->post('Persdata'))
640 lars 71
				{
641 lars 72
					$userData = $this->input->post('Persdata');
73
					if ($this->input->post('Lieferadresse') === "false")
629 lars 74
					{
641 lars 75
						$userData['liefer_Anrede'] = $userData['Anrede'];
76
						$userData['liefer_Vorname'] = $userData['Vorname'];
77
						$userData['liefer_Nachname'] = $userData['Nachname'];
78
						$userData['liefer_Firma'] = $userData['Firma'];
79
						$userData['liefer_Strasse'] = $userData['Strasse'];
80
						$userData['liefer_Hausnummer'] = $userData['Hausnummer'];
81
						$userData['liefer_PLZ'] = $userData['PLZ'];
82
						$userData['liefer_Ort'] = $userData['Ort'];
83
						$userData['liefer_email'] = $userData['email'];
84
						$userData['liefer_Telefon'] = $userData['Telefon'];
85
					}
663 lars 86
					elseif ($this->input->post('Lieferadresse') === "true")
87
					{
664 lars 88
						if ($this->form_validation->run('liefer') === false)
663 lars 89
						{
90
							$errormsg_liefer["liefer_Vorname"] = form_error('Persdata[liefer_Vorname]');
91
							$errormsg_liefer["liefer_Nachname"] = form_error('Persdata[liefer_Nachname]');
92
							$errormsg_liefer["liefer_Strasse"] = form_error('Persdata[liefer_Strasse]');
93
							$errormsg_liefer["liefer_Hausnummer"] = form_error('Persdata[liefer_Hausnummer]');
94
							$errormsg_liefer["liefer_PLZ"] = form_error('Persdata[liefer_PLZ]');
95
							$errormsg_liefer["liefer_Ort"] = form_error('Persdata[liefer_Ort]');
96
							$this->smarty->assign('errormsg_liefer', $errormsg_liefer);
97
							unset($_GET['subStep']);
98
						}
99
					}
742 lars 100
					elseif ($this->input->post('Lieferadresse') == "packstation")
101
					{
102
						if ($this->form_validation->run('packstation') === false)
103
						{
745 lars 104
							$errormsg_liefer["liefer_Vorname_pst"] = form_error('Persdata[liefer_Vorname_pst]');
105
							$errormsg_liefer["liefer_Nachname_pst"] = form_error('Persdata[liefer_Nachname_pst]');
106
							$errormsg_liefer["liefer_Firma_pst"] = form_error('Persdata[liefer_Firma_pst]');
107
							$errormsg_liefer["liefer_Hausnummer_pst"] = form_error('Persdata[liefer_Hausnummer_pst]');
108
							$errormsg_liefer["liefer_PLZ_pst"] = form_error('Persdata[liefer_PLZ_pst]');
109
							$errormsg_liefer["liefer_Ort_pst"] = form_error('Persdata[liefer_Ort_pst]');
742 lars 110
							$this->smarty->assign('errormsg_liefer', $errormsg_liefer);
111
							unset($_GET['subStep']);
112
						}
113
					}
641 lars 114
					$_SESSION['SHOP']['buy']['Persdata'] = $userData;
735 lars 115
					$_SESSION['SHOP']['Lieferadresse'] = $this->input->post('Lieferadresse');
689 lars 116
					$this->update_versand();
666 lars 117
					$this->form_validation->reset_validation();
641 lars 118
					if ($this->form_validation->run('guest') === false)
119
					{
120
						$errormsg_rechnung["Vorname"] = form_error('Persdata[Vorname]');
121
						$errormsg_rechnung["Nachname"] = form_error('Persdata[Nachname]');
122
						$errormsg_rechnung["Strasse"] = form_error('Persdata[Strasse]');
123
						$errormsg_rechnung["Hausnummer"] = form_error('Persdata[Hausnummer]');
124
						$errormsg_rechnung["PLZ"] = form_error('Persdata[PLZ]');
125
						$errormsg_rechnung["Ort"] = form_error('Persdata[Ort]');
126
						$errormsg_rechnung["email"] = form_error('Persdata[email]');
127
						$errormsg_rechnung["Telefon"] = form_error('Persdata[Telefon]');
128
						$this->smarty->assign('errormsg_rechnung', $errormsg_rechnung);
129
						unset($_GET['subStep']);
130
					}
131
					else
132
					{
666 lars 133
						$this->form_validation->reset_validation();
641 lars 134
						if ($this->input->post('account') == 'new')
629 lars 135
						{
641 lars 136
							if ($this->form_validation('new') === false)
137
							{
674 lars 138
								$req_error = false;
641 lars 139
							}
629 lars 140
						}
674 lars 141
						else
142
						{
143
							$req_error = false;
144
						}
629 lars 145
					}
146
				}
674 lars 147
				if (!$req_error)
148
				{
149
					$_SESSION["SHOP"]['VERSAND'] = array();
150
 
1995 lars 151
					$vItem = $this->artikel->get_artikel($_POST["Versand"], true, true);
1996 lars 152
					var_dump($vItem);
674 lars 153
					$VersandItem = array(
154
						"Menge" => 1,
155
						"ID" => $_POST['Versand'],
156
						"Versand" => true,
677 lars 157
						'preis' => $vItem['preis'],
701 lars 158
						'kurzbezeichnung' => $vItem['kurzbezeichnung'],
674 lars 159
						);
160
					$_SESSION['SHOP']['VERSAND'] = $VersandItem;
161
					$_SESSION["SHOP"]["buy"]["Versand"] = true;
162
					if ($GLOBALS["INI"]["PayPalPlus"]["aktiv"] == 1)
163
					{
164
						$customMethods = array(
165
							"vorkasse",
166
							"selbstabholung",
167
							"ratenzahlung",
168
							"nachnahme",
169
							"sofortueberweisung",
170
							);
680 lars 171
						$buy_link_base = 'https://ci.starfleethq.de/';
674 lars 172
						if ($GLOBALS["INI"]["ssl_buy"] == 1)
173
						{
174
							$buy_link_base = str_replace("http:", "https:", $buy_link_base);
175
						}
680 lars 176
						$url = $buy_link_base."/bestellen_seite_2.order";
676 lars 177
						$versandOptionen = get_versandkosten($_SESSION['SHOP']['buy']['Persdata']['liefer_Land']);
674 lars 178
						foreach ($versandOptionen as $o_id => $opt)
179
						{
180
							//admin_debug( $opt["rufname"] );
181
							$rufname = strtolower($opt["rufname"]);
182
							if ($GLOBALS["INI"]["dbConnect"]["db_is_utf8"] != 1)
183
							{
184
								$opt["kurz"] = utf8_encode($opt["kurz"]);
185
								$opt["beschr"] = utf8_encode($opt["beschr"]);
186
							}
187
							if (in_array($rufname, $customMethods))
188
							{
189
								$method = array(
190
									"redirectUrl" => $url,
191
									"methodName" => $opt["kurz"],
192
									"description" => $opt["beschr"],
193
									);
194
								$imgBase = "/images/webelemente/versand_";
195
								$imgName = $imgBase.$rufname.".jpg";
196
								$imgUrl = "https://".$_SERVER["SERVER_NAME"].$imgName;
197
								$imgNameFull = $_SERVER["DOCUMENT_ROOT"].$imgName;
198
								if ($GLOBALS["INI"]["ssl_buy"] == 1)
199
								{
200
									if (file_exists($imgNameFull))
201
									{
202
										$method["imageUrl"] = $imgUrl;
203
									}
204
								}
205
								$thirdPartyMethods[] = $method;
206
							}
207
							$payPal3rdParty = json_encode($thirdPartyMethods);
208
							require_once "module/creditcard/paypalPlus.php";
209
							$c = new paypalPlus();
210
							$apporvalUrl = $c->getCreditcardStatus(null);
679 lars 211
							$this->smarty->assign("paymentMethods", $payPal3rdParty);
212
							$this->smarty->assign("approvalUrl", $apporvalUrl);
674 lars 213
						}
214
					}
215
				}
514 lars 216
				break;
646 lars 217
			case "Versand":
1995 lars 218
				$vItem = $_SESSION['SHOP']['VERSAND'];
219
				var_dump($vItem);
1993 lars 220
				if (strtolower($vItem["short_line_1"]) == "paypal" || strtolower($vItem["short_line_1"]) ==
221
					"ratenzahlung")
222
				{
223
					if ($GLOBALS["INI"]["paypal"]["usesApi"] == 1)
224
					{
225
						require_once "module/creditcard/paypal.php";
226
						$c = new paypal();
227
						$c->getCreditcardStatus(null);
228
						//
229
					}
230
				}
646 lars 231
				break;
232
			case "execute":
644 lars 233
				if ($this->form_validation->run('execute') === false)
234
				{
235
					$step = 2;
236
					$errormsg_kontrolle = validation_errors();
237
					$this->smarty->assign('errormsg_kontrolle', $errormsg_kontrolle);
238
				}
667 lars 239
				else
240
				{
241
					$this->save();
242
				}
644 lars 243
				break;
514 lars 244
		}
245
		$_SESSION['SHOP']['buy']['step'] = $step;
246
		$this->smarty->view('buy.tpl');
247
	}
248
 
520 lars 249
	/**
250
	 * Order::save()
251
	 *
252
	 * @return
253
	 */
514 lars 254
	public function save()
255
	{
256
		$this->order->create();
257
	}
668 lars 258
 
259
	public function update_versand()
260
	{
705 lars 261
		$land = 47;
704 lars 262
		if (isset($_SESSION['SHOP']['buy']['Persdata']['liefer_Land']))
263
		{
264
			$land = $_SESSION['SHOP']['buy']['Persdata']['liefer_Land'];
265
		}
690 lars 266
		$versandOptinen = get_versandkosten($land);
669 lars 267
		if ($GLOBALS['INI']['PayPalPlus']['aktiv'] == 1)
668 lars 268
		{
269
			foreach ($versandOptinen as $opt)
270
			{
672 lars 271
				if ($opt['rufname'] == 'PayPalPlus')
668 lars 272
				{
273
					$pppVersand = $opt['ID'];
274
					break;
275
				}
276
			}
674 lars 277
			if ($this->input->get('Land') || $this->input->get('liefer'))
278
			{
279
				echo $pppVersand;
280
			}
281
			else
282
			{
283
				$this->smarty->assign("ppplusVersand", $pppVersand);
284
			}
668 lars 285
		}
286
		else
287
		{
288
			foreach ($versandOptinen as $opt)
289
			{
290
				if ($opt["rufname"] == "amazon" || $opt["rufname"] == "PayPalExpress")
291
				{
292
					continue;
293
				}
294
				elseif ($_GET["packstation"] == 1 && !stristr($opt["kurz"], "DHL"))
295
				{
296
					continue;
297
				}
298
				if ($_GET["kurier"] == 1 && $opt["express"] != 1)
299
				{
300
					continue;
301
				}
302
				if ($GLOBALS['INI']['charset'] == "utf-8" && $GLOBALS['INI']['dbConnect']['db_is_utf8'] !=
303
					1)
304
				{
305
					$opt["kurz"] = utf8_encode($opt["kurz"]);
306
					$opt['beschr'] = utf8_encode($opt['beschr']);
307
				}
308
				$opt['beschr'] = str_replace("\r\n", "<br>", $opt['beschr']);
309
 
310
				if (($_SESSION["SHOP"]["buy"]["Versand_selected"] == $opt["ID"]) || (!$_SESSION["SHOP"]["buy"]["Versand_selected"] &&
311
					$o_id == 0))
312
				{
313
					$opt["checked"] = 'checked="checked"';
314
				}
315
				$v_opt[] = $opt;
316
			}
317
			$this->smarty->assign("versandOptionen", $v_opt);
318
		}
319
	}
514 lars 320
}
321
 
233 lars 322
?>