Subversion-Projekte lars-tiefland.ci

Revision

Revision 2332 | Revision 2334 | 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: 2333 $
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
		}
2328 lars 80
		trigger_error($sql);
2331 lars 81
		trigger_error(var_export($res,true));
2321 lars 82
		if ($res)
83
		{
2333 lars 84
			echo "Daten wurden erfolgreich geändert!";
2321 lars 85
		}
86
		else
87
		{
2333 lars 88
			echo "Leider ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal!";
2321 lars 89
		}
2243 lars 90
	}
2283 lars 91
 
2280 lars 92
	public function export($id)
93
	{
2309 lars 94
		$aColumns = array("exported");
2314 lars 95
		$sIndexColumn = "exported";
2313 lars 96
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2317 lars 97
		if (isset($_GET['iSortCol_0'])) {
98
			$sOrder = "ORDER BY  ";
99
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
100
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
101
					"true") {
102
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
103
                                    " . $this->input->get('sSortDir_' . $i) .
104
						", ";
105
				}
106
			}
107
 
108
			$sOrder = substr_replace($sOrder, "", -2);
109
			if ($sOrder == "ORDER BY") {
110
				$sOrder = "";
111
			}
112
		}
2286 lars 113
		$sQuery = "SELECT DISTINCT
114
                    exported
115
                FROM
116
                    artikel_to_Bestellung ab
117
                JOIN
118
                    bestellung_logistiker bl
119
                ON
120
                    bl.logistiker=$id
121
                AND
122
                    bl.bestellung = ab.Bestellung
123
                WHERE
124
                    exported
2283 lars 125
 
2314 lars 126
                " . $sWhere . "
127
                " . $sOrder . "
128
                LIMIT " . $sLimit . "
2286 lars 129
            ";
2310 lars 130
		trigger_error($sQuery);
2288 lars 131
		$rResult = $GLOBALS['order_db']->query($sQuery);
2286 lars 132
 
133
		/* Data set length after filtering */
134
		$sQuery = "
135
                        SELECT FOUND_ROWS() AS total
136
                ";
2288 lars 137
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2312 lars 138
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2286 lars 139
		$iFilteredTotal = $aResultFilterTotal["total"];
140
 
141
		/* Total data set length */
142
		$sQuery = "
143
                        SELECT
144
                    COUNT(" . $sIndexColumn . ") AS total
145
                FROM
146
                    artikel_to_Bestellung ab
147
                JOIN
148
                    bestellung_logistiker bl
149
                ON
150
                    bl.logistiker=$id
151
                AND
152
                    bl.bestellung = ab.Bestellung
153
                WHERE
154
                    exported
155
                ";
2288 lars 156
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2315 lars 157
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2286 lars 158
		$iTotal = $aResultTotal["total"];
159
 
160
 
161
		/*
162
		* Output
163
		*/
164
		$output = array(
2316 lars 165
			"sEcho" => intval($this->input->get('sEcho')),
2286 lars 166
			"iTotalRecords" => $iTotal,
167
			"iTotalDisplayRecords" => $iTotal,
168
			"aaData" => array());
169
 
170
		$sql = "SELECT
171
                    export_script
172
                FROM
173
                    logistiker
174
                WHERE
175
                    id = " . $id . "
176
            ";
2288 lars 177
		$res = $GLOBALS['order_db']->query($sql);
2286 lars 178
		$nrow = $res->unbuffered_row('array');
179
		if (strstr($nrow["export_script"], "=")) {
180
			$qs = explode(";", $nrow["export_script"]);
181
			foreach ($qs as $val) {
182
				list($key, $wert) = explode("=", $val);
183
				if ($key == "mode") {
184
					$qsArr[] = "mode=" . $wert;
185
				} elseif (is_null($wert)) {
186
					$script = $key;
187
				} elseif (!stristr($key, "status") && $wert) {
188
					$qsArr[] = "$key=" . $wert;
189
				}
190
			}
191
			$qs = implode("&", $qsArr);
192
		} else {
193
			list($script, $mode) = explode(";", $nrow["export_script"]);
194
			$qs = "mode=" . $mode;
195
		}
196
		while ($aRow = $rResult->unbuffered_row('array')) {
197
			$aRow['exported'] = '<a href="/Warenwirtschaft/' . $script . '?time=' . $aRow['exported'] .
198
				'&id=' . $id . '&' . $qs . '" target="_blank">' . date('d.m.Y H:i:s', strtotime
199
				($aRow['exported'])) . '</a>';
200
			$row = array();
201
			for ($i = 0; $i < count($aColumns); $i++) {
202
				if ($aColumns[$i] == "version") {
203
					/* Special output formatting for 'version' column */
204
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
205
				} else
206
					if ($aColumns[$i] != ' ') {
207
						/* General output */
208
						$row[] = $aRow[$aColumns[$i]];
209
					}
210
			}
211
			$output['aaData'][] = $row;
212
		}
213
 
214
		return json_encode($output);
2280 lars 215
	}
2283 lars 216
 
2280 lars 217
	public function tracking($id)
218
	{
2303 lars 219
		$aColumns = array(
220
			'paketnummer',
221
			'datum',
222
			'bestellung',
223
			);
2305 lars 224
		if (isset($_GET['iSortCol_0'])) {
225
			$sOrder = "ORDER BY  ";
226
			for ($i = 0; $i < intval($this->input->get('iSortingCols')); $i++) {
227
				if ($this->input->get('bSortable_' . intval($this->input->get('iSortCol_' . $i))) ==
228
					"true") {
229
					$sOrder .= $aColumns[intval($this->input->get('iSortCol_' . $i))] . "
2306 lars 230
                                    " . $this->input->get('sSortDir_' . $i) .
231
						", ";
2305 lars 232
				}
233
			}
234
 
235
			$sOrder = substr_replace($sOrder, "", -2);
236
			if ($sOrder == "ORDER BY") {
237
				$sOrder = "";
238
			}
239
		}
2285 lars 240
		$sWhere = "";
2287 lars 241
		if ($this->input->get('sSearch') != "") {
2285 lars 242
			$sWhere = "WHERE (";
243
			for ($i = 0; $i < count($aColumns); $i++) {
244
				if ($aColumns[$i] == "datum") {
245
					$a = " from_unixtime(datum) ";
2288 lars 246
					$sWhere .= $a . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch')) .
2285 lars 247
						"%' OR ";
248
				} else {
2295 lars 249
					$sWhere .= $aColumns[$i] . " LIKE '%" . $GLOBALS['order_db']->escape($this->
250
						input->get('sSearch')) . "%' OR ";
2285 lars 251
				}
252
 
253
			}
254
			$sWhere = substr_replace($sWhere, "", -3);
255
			$sWhere .= ')';
2280 lars 256
		}
2285 lars 257
 
258
		/* Individual column filtering */
259
		for ($i = 0; $i < count($aColumns); $i++) {
2287 lars 260
			if ($this->input->get('bSearchable_' . $i) == "true" && $this->input->get('sSearch_' .
261
				$i) != '') {
2285 lars 262
				if ($sWhere == "") {
263
					$sWhere = "WHERE ";
264
				} else {
265
					$sWhere .= " AND ";
266
				}
267
				if ($aColumns[$i] == "datum") {
268
					$r = " from_unixtime(datum) ";
2288 lars 269
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 270
						$i)) . "%' ";
2285 lars 271
				} else {
2288 lars 272
					$sWhere .= $r . " LIKE '%" . $GLOBALS['order_db']->escape($this->input->get('sSearch_' .
2287 lars 273
						$i)) . "%' ";
2285 lars 274
				}
275
 
276
			}
277
		}
278
 
279
		if (empty($sWhere)) {
280
			$sWhere = " where bp.logistiker=l.id AND l.id = $id ";
281
		} else {
282
			$sWhere = " $sWhere and bp.logistiker=l.id AND l.id = $id ";
283
		}
2297 lars 284
		$sLimit = $this->input->get('iDisplayStart') . "," . $this->input->get('iDisplayLength');
2285 lars 285
		$sQuery = "SELECT
286
                    SQL_CALC_FOUND_ROWS
287
                    bp.*,
288
                    l.kname,
289
                    l.trackinglink
290
                FROM
291
                    logistiker l,
292
                    bestellung_paketnummern bp
2297 lars 293
                    " . $sWhere . "
294
                    " . $sOrder . "
2298 lars 295
					LIMIT " . $sLimit . "
2285 lars 296
                ";
297
		//echo $sQuery;
2288 lars 298
		$rResult = $GLOBALS['order_db']->query($sQuery);
2285 lars 299
 
300
		/* Data set length after filtering */
301
		$sQuery = "
302
                        SELECT FOUND_ROWS() AS total
303
                ";
2288 lars 304
		$rResultFilterTotal = $GLOBALS['order_db']->query($sQuery);
2289 lars 305
		$aResultFilterTotal = $rResultFilterTotal->unbuffered_row('array');
2285 lars 306
		$iFilteredTotal = $aResultFilterTotal["total"];
307
 
308
		/* Total data set length */
309
		$sQuery = "
310
                        SELECT
2292 lars 311
                    COUNT(bp.id) AS total
2285 lars 312
                FROM
313
                    logistiker l,
314
                    bestellung_paketnummern bp
315
                WHERE
316
                    bp.logistiker=l.id
317
                AND
318
                    l.id = $id
319
                ";
320
 
321
 
2288 lars 322
		$rResultTotal = $GLOBALS['order_db']->query($sQuery);
2294 lars 323
		$aResultTotal = $rResultTotal->unbuffered_row('array');
2285 lars 324
		$iTotal = $aResultTotal["total"];
325
 
326
 
327
		/*
328
		* Output
329
		*/
330
		$output = array(
2286 lars 331
			"sEcho" => intval($this->input->get('sEcho')),
2285 lars 332
			"iTotalRecords" => $iTotal,
333
			"iTotalDisplayRecords" => $iFilteredTotal,
334
			"aaData" => array());
335
 
336
		while ($aRow = $rResult->unbuffered_row('array')) {
337
			//$aRow['datum'] = strtotime($aRow['datum']);
338
			$aRow['datum'] = date('d.m.Y', $aRow['datum']);
2308 lars 339
			$aRow['bestellung'] = ' <a target="_blank" href="/backend/order/edit/' . $aRow['bestellung'] .
2307 lars 340
				'">zum Vorgang</a>';
2285 lars 341
 
342
			$url = $aRow["trackinglink"];
343
			if (stristr($url, "%")) {
344
				$tag = date("d", $row_p["datum"]);
345
				$monat = date("m", $row_p["datum"]);
346
				$jahr = date("Y", $row_p["datum"]);
347
				$url = str_replace("%tag%", $tag, $url);
348
				$url = str_replace("%monat%", $monat, $url);
349
				$url = str_replace("%jahr%", $jahr, $url);
350
				$url = str_replace("%trackingnr%", $aRow["paketnummer"], $url);
351
			} else {
352
				$url .= $aRow["paketnummer"];
353
			}
354
 
355
 
356
			$aRow["paketnummer"] = $aRow["kname"] . ': <a href=' . $url . ' target=_blank>' .
357
				$aRow["paketnummer"] . '</a>';
358
			$row = array();
359
			for ($i = 0; $i < count($aColumns); $i++)
360
				if ($aColumns[$i] == "version") {
361
					/* Special output formatting for 'version' column */
362
					$row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
363
				} else
364
					if ($aColumns[$i] != ' ') {
365
						/* General output */
366
						$row[] = $aRow[$aColumns[$i]];
367
					}
2304 lars 368
			$output['aaData'][] = $row;
2285 lars 369
		}
370
 
371
		return json_encode($output);
2280 lars 372
	}
2285 lars 373
 
2243 lars 374
}
375
 
376
?>