Subversion-Projekte lars-tiefland.ci

Revision

Revision 2334 | Revision 2349 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2243 lars 1
<?php
2
 
3
/**
4
 *
5
 * @package WebanOS CI
6
 * @author Lars Tiefland <ltiefland@gmail.com>
7
 * @copyright 2016
8
 * @version $Rev: 2348 $
9
 */
10
 
11
class Logistiker_model extends CI_Model
12
{
13
	public function __construct()
14
	{
15
		parent::__construct();
16
	}
17
 
18
	public function get_list($start = 0)
19
	{
2244 lars 20
		$sql = "SELECT
21
				*
22
			FROM
23
				logistiker
24
		";
2247 lars 25
		$res = $this->db->query($sql);
2244 lars 26
		while ($row = $res->unbuffered_row('array')) {
27
			$logistiker[] = $row;
28
		}
29
		return $logistiker;
2243 lars 30
	}
31
 
32
	public function get($id)
33
	{
2244 lars 34
		$sql = "SELECT
35
				*
36
			FROM
37
				logistiker
38
			WHERE
39
				id=" . $id . "
40
		";
2247 lars 41
		$res = $this->db->query($sql);
2244 lars 42
		$logistiker = $res->unbuffered_row('array');
43
		return $logistiker;
2243 lars 44
	}
45
 
2327 lars 46
	public function save($daten)
2243 lars 47
	{
2330 lars 48
		if (!$this->input->post('id'))
2321 lars 49
		{
50
			$sql = "
51
				INSERT INTO
52
					logistiker
53
				SET
54
			";
55
			foreach ($daten as $key => $value)
56
			{
57
				$felder[] = $key."=".$GLOBALS["order_db"]->escape($value);
58
			}
59
			$sql .= implode(",", $felder);
60
			$res = $this->db->query($sql);
61
			$id = $this->db->insert_id();
62
		}
63
		else
64
		{
65
			$sql = "UPDATE
66
					logistiker
67
				SET
68
			";
69
			foreach ($daten as $key => $value)
70
			{
71
				$felder[] = $key."=".$GLOBALS["order_db"]->escape($value);
72
			}
73
			$sql .= implode(",", $felder);
74
			$sql .= "
75
				WHERE
2330 lars 76
					id=".$this->input->post('id')."
2321 lars 77
			";
78
			$res = $this->db->query($sql);
79
		}
80
		if ($res)
81
		{
2333 lars 82
			echo "Daten wurden erfolgreich geändert!";
2321 lars 83
		}
84
		else
85
		{
2333 lars 86
			echo "Leider ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal!";
2321 lars 87
		}
2243 lars 88
	}
2348 lars 89
 
90
	public function del($id)
91
	{
92
		$sql = "DELETE FROM
93
				logistiker
94
			WHERE
95
				id=".$id."
96
		";
97
		$res = $this->db->query($sql);
98
		if ($res)
99
		{
100
			echo "Hersteller wurde erfolgreich gelöscht!";
101
		}
102
		else
103
		{
104
			echo "Leider ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal!";
105
		}
106
	}
2283 lars 107
 
2280 lars 108
	public function export($id)
109
	{
2309 lars 110
		$aColumns = array("exported");
2314 lars 111
		$sIndexColumn = "exported";
2313 lars 112
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2317 lars 113
		if (isset($_GET['iSortCol_0'])) {
114
			$sOrder = "ORDER BY  ";
115
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
116
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
117
					"true") {
118
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
119
                                    " . $this->input->get('sSortDir_' . $i) .
120
						", ";
121
				}
122
			}
123
 
124
			$sOrder = substr_replace($sOrder, "", -2);
125
			if ($sOrder == "ORDER BY") {
126
				$sOrder = "";
127
			}
128
		}
2286 lars 129
		$sQuery = "SELECT DISTINCT
130
                    exported
131
                FROM
132
                    artikel_to_Bestellung ab
133
                JOIN
134
                    bestellung_logistiker bl
135
                ON
136
                    bl.logistiker=$id
137
                AND
138
                    bl.bestellung = ab.Bestellung
139
                WHERE
140
                    exported
2283 lars 141
 
2314 lars 142
                " . $sWhere . "
143
                " . $sOrder . "
144
                LIMIT " . $sLimit . "
2286 lars 145
            ";
2310 lars 146
		trigger_error($sQuery);
2288 lars 147
		$rResult = $GLOBALS['order_db']->query($sQuery);
2286 lars 148
 
149
		/* Data set length after filtering */
150
		$sQuery = "
151
                        SELECT FOUND_ROWS() AS total
152
                ";
2288 lars 153
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2312 lars 154
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2286 lars 155
		$iFilteredTotal = $aResultFilterTotal["total"];
156
 
157
		/* Total data set length */
158
		$sQuery = "
159
                        SELECT
160
                    COUNT(" . $sIndexColumn . ") AS total
161
                FROM
162
                    artikel_to_Bestellung ab
163
                JOIN
164
                    bestellung_logistiker bl
165
                ON
166
                    bl.logistiker=$id
167
                AND
168
                    bl.bestellung = ab.Bestellung
169
                WHERE
170
                    exported
171
                ";
2288 lars 172
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2315 lars 173
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2286 lars 174
		$iTotal = $aResultTotal["total"];
175
 
176
 
177
		/*
178
		* Output
179
		*/
180
		$output = array(
2316 lars 181
			"sEcho" => intval($this->input->get('sEcho')),
2286 lars 182
			"iTotalRecords" => $iTotal,
183
			"iTotalDisplayRecords" => $iTotal,
184
			"aaData" => array());
185
 
186
		$sql = "SELECT
187
                    export_script
188
                FROM
189
                    logistiker
190
                WHERE
191
                    id = " . $id . "
192
            ";
2288 lars 193
		$res = $GLOBALS['order_db']->query($sql);
2286 lars 194
		$nrow = $res->unbuffered_row('array');
195
		if (strstr($nrow["export_script"], "=")) {
196
			$qs = explode(";", $nrow["export_script"]);
197
			foreach ($qs as $val) {
198
				list($key, $wert) = explode("=", $val);
199
				if ($key == "mode") {
200
					$qsArr[] = "mode=" . $wert;
201
				} elseif (is_null($wert)) {
202
					$script = $key;
203
				} elseif (!stristr($key, "status") && $wert) {
204
					$qsArr[] = "$key=" . $wert;
205
				}
206
			}
207
			$qs = implode("&", $qsArr);
208
		} else {
209
			list($script, $mode) = explode(";", $nrow["export_script"]);
210
			$qs = "mode=" . $mode;
211
		}
212
		while ($aRow = $rResult->unbuffered_row('array')) {
213
			$aRow['exported'] = '<a href="/Warenwirtschaft/' . $script . '?time=' . $aRow['exported'] .
214
				'&id=' . $id . '&' . $qs . '" target="_blank">' . date('d.m.Y H:i:s', strtotime
215
				($aRow['exported'])) . '</a>';
216
			$row = array();
217
			for ($i = 0; $i < count($aColumns); $i++) {
218
				if ($aColumns[$i] == "version") {
219
					/* Special output formatting for 'version' column */
220
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
221
				} else
222
					if ($aColumns[$i] != ' ') {
223
						/* General output */
224
						$row[] = $aRow[$aColumns[$i]];
225
					}
226
			}
227
			$output['aaData'][] = $row;
228
		}
229
 
230
		return json_encode($output);
2280 lars 231
	}
2283 lars 232
 
2280 lars 233
	public function tracking($id)
234
	{
2303 lars 235
		$aColumns = array(
236
			'paketnummer',
237
			'datum',
238
			'bestellung',
239
			);
2305 lars 240
		if (isset($_GET['iSortCol_0'])) {
241
			$sOrder = "ORDER BY  ";
242
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
243
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
244
					"true") {
245
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
2306 lars 246
                                    " . $this->input->get('sSortDir_' . $i) .
247
						", ";
2305 lars 248
				}
249
			}
250
 
251
			$sOrder = substr_replace($sOrder, "", -2);
252
			if ($sOrder == "ORDER BY") {
253
				$sOrder = "";
254
			}
255
		}
2285 lars 256
		$sWhere = "";
2287 lars 257
		if ($this->input->get('sSearch') != "") {
2285 lars 258
			$sWhere = "WHERE (";
259
			for ($i = 0; $i < count($aColumns); $i++) {
260
				if ($aColumns[$i] == "datum") {
261
					$a = " from_unixtime(datum) ";
2288 lars 262
					$sWhere .= $a . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch')) .
2285 lars 263
						"%' OR ";
264
				} else {
2295 lars 265
					$sWhere .= $aColumns[$i] . " LIKE '%" . $GLOBALS['order_db']->escape($this->
266
						input->get('sSearch')) . "%' OR ";
2285 lars 267
				}
268
 
269
			}
270
			$sWhere = substr_replace($sWhere, "", -3);
271
			$sWhere .= ')';
2280 lars 272
		}
2285 lars 273
 
274
		/* Individual column filtering */
275
		for ($i = 0; $i < count($aColumns); $i++) {
2287 lars 276
			if ($this->input->get('bSearchable_' . $i) == "true" && $this->input->get('sSearch_' .
277
				$i) != '') {
2285 lars 278
				if ($sWhere == "") {
279
					$sWhere = "WHERE ";
280
				} else {
281
					$sWhere .= " AND ";
282
				}
283
				if ($aColumns[$i] == "datum") {
284
					$r = " from_unixtime(datum) ";
2288 lars 285
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 286
						$i)) . "%' ";
2285 lars 287
				} else {
2288 lars 288
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 289
						$i)) . "%' ";
2285 lars 290
				}
291
 
292
			}
293
		}
294
 
295
		if (empty($sWhere)) {
296
			$sWhere = " where bp.logistiker=l.id AND l.id = $id ";
297
		} else {
298
			$sWhere = " $sWhere and bp.logistiker=l.id AND l.id = $id ";
299
		}
2297 lars 300
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2285 lars 301
		$sQuery = "SELECT
302
                    SQL_CALC_FOUND_ROWS
303
                    bp.*,
304
                    l.kname,
305
                    l.trackinglink
306
                FROM
307
                    logistiker l,
308
                    bestellung_paketnummern bp
2297 lars 309
                    " . $sWhere . "
310
                    " . $sOrder . "
2298 lars 311
					LIMIT " . $sLimit . "
2285 lars 312
                ";
313
		//echo $sQuery;
2288 lars 314
		$rResult = $GLOBALS['order_db']->query($sQuery);
2285 lars 315
 
316
		/* Data set length after filtering */
317
		$sQuery = "
318
                        SELECT FOUND_ROWS() AS total
319
                ";
2288 lars 320
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2289 lars 321
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2285 lars 322
		$iFilteredTotal = $aResultFilterTotal["total"];
323
 
324
		/* Total data set length */
325
		$sQuery = "
326
                        SELECT
2292 lars 327
                    COUNT(bp.id) AS total
2285 lars 328
                FROM
329
                    logistiker l,
330
                    bestellung_paketnummern bp
331
                WHERE
332
                    bp.logistiker=l.id
333
                AND
334
                    l.id = $id
335
                ";
336
 
337
 
2288 lars 338
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2294 lars 339
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2285 lars 340
		$iTotal = $aResultTotal["total"];
341
 
342
 
343
		/*
344
		* Output
345
		*/
346
		$output = array(
2286 lars 347
			"sEcho" => intval($this->input->get('sEcho')),
2285 lars 348
			"iTotalRecords" => $iTotal,
349
			"iTotalDisplayRecords" => $iFilteredTotal,
350
			"aaData" => array());
351
 
352
		while ($aRow = $rResult->unbuffered_row('array')) {
353
			//$aRow['datum'] = strtotime($aRow['datum']);
354
			$aRow['datum'] = date('d.m.Y', $aRow['datum']);
2308 lars 355
			$aRow['bestellung'] = ' <a target="_blank" href="/backend/order/edit/' . $aRow['bestellung'] .
2307 lars 356
				'">zum Vorgang</a>';
2285 lars 357
 
358
			$url = $aRow["trackinglink"];
359
			if (stristr($url, "%")) {
360
				$tag = date("d", $row_p["datum"]);
361
				$monat = date("m", $row_p["datum"]);
362
				$jahr = date("Y", $row_p["datum"]);
363
				$url = str_replace("%tag%", $tag, $url);
364
				$url = str_replace("%monat%", $monat, $url);
365
				$url = str_replace("%jahr%", $jahr, $url);
366
				$url = str_replace("%trackingnr%", $aRow["paketnummer"], $url);
367
			} else {
368
				$url .= $aRow["paketnummer"];
369
			}
370
 
371
 
372
			$aRow["paketnummer"] = $aRow["kname"] . ': <a href=' . $url . ' target=_blank>' .
373
				$aRow["paketnummer"] . '</a>';
374
			$row = array();
375
			for ($i = 0; $i < count($aColumns); $i++)
376
				if ($aColumns[$i] == "version") {
377
					/* Special output formatting for 'version' column */
378
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
379
				} else
380
					if ($aColumns[$i] != ' ') {
381
						/* General output */
382
						$row[] = $aRow[$aColumns[$i]];
383
					}
2304 lars 384
			$output['aaData'][] = $row;
2285 lars 385
		}
386
 
387
		return json_encode($output);
2280 lars 388
	}
2285 lars 389
 
2243 lars 390
}
391
 
392
?>